====== 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.