logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).


L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT → ODT PDF Export

Table des matières

Déplacer un Workspace donné vers l'écran actif

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/.
~/.config/i3/switch-workspace.py
#!/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 :

~/.config/i3/config
...
bindsym $mod+minus exec ~/.config/i3/switch-workspace.py 6
...

Et avec ça:

Meta + - affiche directement le workspace 6 sur l'écran courant.

utilisateurs/captnfab/tutos/i3wm-deplacer-workspace-x-vers-ecran-actif.txt · Dernière modification: 03/08/2014 23:52 par captnfab

Pied de page des forums

Propulsé par FluxBB