====== Déplacer un Workspace donné vers l'écran actif ======
* Objet : Un script pour déplacer un Workspace vers l'écran actif sous i3
* Niveau requis : {{tag>débutant}}
* Commentaires : //i3wm n'a pas do commande ''move workspace X to active display'', nous la réalisons//
* Débutant, à savoir : [[:doc:systeme:commandes:le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-)
===== Introduction =====
Vous avez deux écrans ou plus, et lorsque vous êtes sur un écran et souhaitez aller sur un workspace X, vous souhaitez que ce workspace soit affiché sur l'écran courant et non sur l'écran sur lequel il a été déclaré.
Il n'y a pas de commande intégrée à i3 qui permette de faire ça directement, mais en utilisant les IPC, nous allons réaliser un script qui fait tout ce qu'on veut.
===== Installation =====
* Copier le script suivant dans le répertoire ''~/.config/i3/''.
#!/usr/bin/env python
from json import loads
from os import popen
from sys import argv
def ipc_query(req="command", msg=""):
ans = popen("i3-msg -t " + req + " " + msg).readlines()[0]
return loads(ans)
if __name__ == "__main__":
# Usage & checking args
if len(argv) != 2:
print "Usage: switch-workspace.py name-of-workspace"
exit(-1)
newworkspace = argv[1]
# Retrieving active display
active_display = None
old_display = None
for w in ipc_query(req="get_workspaces"):
if w['focused']:
active_display = w['output']
if w['name'] == newworkspace:
old_display = w['output']
if newworkspace.isdigit() and w['num'] == int(newworkspace):
old_display = w['output']
print w
# Pre-computing commands
if newworkspace.isdigit():
cmd_show = "workspace number " + newworkspace
else:
cmd_show = "workspace " + newworkspace
cmd_move = "move workspace to output " + active_display
# Moving workspace to active display
if active_display == old_display:
print cmd_show
print ipc_query(msg=cmd_show)
else:
cmd="'" + cmd_show + ";" + cmd_move + ";" + cmd_show + "'"
print cmd
print ipc_query(msg=cmd)
* Rendre le script exécutable
chmod u+x ~/.config/i3/switch-workspace.py
===== Utilisation =====
Pour utiliser le script, on rajoute les bindings qui vont bien dans le fichier de configuration d'i3 :
...
bindsym $mod+minus exec ~/.config/i3/switch-workspace.py 6
...
Et avec ça:
''Meta + -'' affiche directement le workspace 6 sur l'écran courant.