Position dans l'espace de travail central lors de la connexion

12

J'ai configuré le commutateur d'espace de travail 3x3 et je veux que ma position soit sur la centrale par défaut. C'est possible?

Xiè Jìléi
la source

Réponses:

7

Grâce à Marco, j'ai trouvé un moyen d'utiliser wmctrl.

Parce que les espaces de travail compiz sont en fait la fenêtre d'un seul bureau, la solution consiste donc à déplacer la fenêtre actuelle pour couvrir la région centrale du bureau.

Tout d'abord, appelez wmctrl -dpour obtenir les informations du bureau actuel:

read desktop_id _ast \
    DG_ geometry \
    VP_ viewport \
    WA_ wa_off wa_size \
    title \
    < <(LANG=C wmctrl -d | grep '*')

geom_w=${geometry%x*}
geom_h=${geometry#*x}

# The workarea size isn't accurate, because the top/bottom panel is excluded. 
viewport_w=${wa_size%x*}
viewport_h=${wa_size#*x}

rows=$((geom_w / viewport_w))
cols=$((geom_h / viewport_h))

# Fix the viewport size
viewport_w=$((geom_w / rows))
viewport_h=$((geom_h / cols))

Ensuite, calculez l'origine de la fenêtre centrale:

center_row=$((rows / 2))
center_col=$((cols / 2))

center_x=$((center_col * viewport_w))
center_y=$((center_row * viewport_h))

center_viewport=$center_x,$center_y

Et déplacez la fenêtre là-bas:

wmctrl -o $center_viewport
Xiè Jìléi
la source
6

Oui: installez wmctrl

sudo apt-get install wmctrl

et créez un fichier ~/.config/autostart/wmctrl.desktopavec les éléments suivants:

[Desktop Entry]
Name=Desktop Switcher
Exec=/usr/bin/wmctrl -s 4
Type=Application
Chipaca
la source
1
Il n'y a qu'un seul bureau dans compiz. Mais wmctrlpeut changer de fenêtre dans le bureau de toute façon. Voir ma réponse ci-dessous.
Xiè Jìléi
2
  1. Téléchargez d'abord ce script d'aidetexte alternatif pour contrôler le compiz depuis la ligne de commande. Enregistrez-le comme compiz-send.pydans votre dossier personnel.
  2. Exécutez la commande python compiz-send.py vpswitch switch_to_5_keypour vous assurer qu'elle fonctionne correctement. Il devrait vous faire basculer vers l'espace de travail central.
  3. Si cela fonctionne, créez un fichier appelé .switch_to_center_workspace.shdans votre dossier de départ et collez ce qui suit à l'intérieur:

    #!/bin/bash
    sleep 5 && python /home/user/compiz-send.py vpswitch switch_to_5_key
    

    remplacer userpar votre nom d'utilisateur.

  4. Ouvrez les applications de démarrage, Système -> Préférences -> Applications de démarrage .

  5. Cliquez sur Ajouter et dans l' entrée Command: put /home/user/.switch_to_center_workspace.sh. Mettez ce que vous voulez dans les entrées Nom: et Commentaire :.

  6. Déconnectez-vous et reconnectez-vous et vérifiez que cela fonctionne.

Isaïe
la source
Malheureusement, le script ne fonctionne pasdbus.exceptions.DBusException: org.freedesktop.DBus.Error.UnknownMethod: Method "activate" with signature "si" on interface "org.freedesktop.compiz" doesn't exist
Xiè Jìléi
@ 谢 继 雷 Remplacez la sleep 5partie du script par un nombre plus élevé, comme sleep 10pour vous assurer que compiz est déjà en cours d'exécution lorsque le script est exécuté. Vous utilisez compiz non?
Isaiah
J'essaie d'exécuter le script dans gnome-terminal et j'obtiens l'exception. J'utilise compiz 0.8.6.
Xiè Jìléi
Dans le script, il est dit que la signature de la méthode "si" n'existe pas, donc je suppose que les arguments (chaîne, int) passés à activate () peuvent ne pas corriger ..
Xiè Jìléi
2

J'allais poser la question similaire, mais pour 3 espaces de travail horizontaux et j'exécute également compiz, et la wmctrl -dsortie (par espace de travail) ressemble à ceci:

  • Dans Workspace 1: 0 * DG: 4098x768 VP: 0,0 WA: 0,24 1366x744 Workspace 1
  • Sur Workspace 2: 0 * DG: 4098x768 VP: 1366,0 WA: 0,24 1366x744 Workspace 1
  • Dans Workspace 3: 0 * DG: 4098x768 VP: 2732,0 WA: 0,24 1366x744 Workspace 1

Que j'ai simplement utilisé wmctrl -o 1366,0( valeurs VP ) pour faire du centre mon espace de travail par défaut au démarrage. Pourrait ne pas fonctionner pour tout le monde, mais juste au cas où;)

wik
la source
La commande que j'utilise dans "Système -> Préférences -> Applications de démarrage":sh -c "sleep 2;/usr/bin/wmctrl -o 1366,0
wik
... vous devrez peut-être ajuster la valeur de sommeil, par exemple, essayez 10, 15, etc.
wik
Merci pour cette note - désolé de ne pas l'avoir lu avant d'avoir lu votre réponse :)
sdaau
0

Juste une brève note - j'utilise Natty, et grâce à la réponse de @ 谢 继 雷, j'ai remarqué que ce qui suit est signalé en déplaçant le terminal dans chacun des quatre 'espaces de travail' dans Unity:

$ wmctrl -d
# top left
0  * DG: 2048x1200  VP: 0,0  WA: 0,24 1024x576  Workspace 1
# bottom left
0  * DG: 2048x1200  VP: 0,600  WA: 0,24 1024x576  Workspace 1
# top right
0  * DG: 2048x1200  VP: 1024,0  WA: 0,24 1024x576  Workspace 1
# bottom right 
0  * DG: 2048x1200  VP: 1024,600  WA: 0,24 1024x576  Workspace 1

... c'est-à-dire qu'ils ne sont ni des bureaux séparés, ni des espaces de travail - simplement la fenêtre change!

Ainsi, pour basculer entre ces quatre fenêtres, appelez simplement la wmctrl -ocommande directement avec les VPvaleurs répertoriées ci-dessus, c'est-à-dire:

wmctrl -o 0,0
wmctrl -o 0,600
wmctrl -o 1024,0
wmctrl -o 1024,600

EDIT: Ups, désolé, je viens de voir que c'est la même chose que la réponse de @ wik - fusionner / supprimer selon le cas ..

sdaau
la source