web-dev-qa-db-fra.com

Placement avancé des fenêtres

[~ # ~] tldr [~ # ~] Je cherche un remplacement ubuntu de windowpad

Je sais que le placement des fenêtres peut être défini avec Ctrl-Alt-Numpad# et Ctrl-Super-arrow Mais cela ne suffit pas. J'ai CompizConfig> Parcourez plusieurs tailles

Mais je veux assigner un raccourci clavier pour faire coller une fenêtre à gauche, pleine hauteur, 1/3 de largeur. De même pour la droite. et un pour le milieu. J'ai l'habitude d'utiliser Windowpad (sur Windows) qui me permet de définir à peu près n'importe quoi. Et j'y suis tellement habitué.

Une façon de modifier cela?

Clarifier Modifier. Il ne s'agit pas d'ouvrir des fenêtres mais des fenêtres actives actuelles.

3
janw

On dirait que vous recherchez xdotool ou wmctrl . Ce sont des outils qui vous permettent de scripter diverses interactions avec l'interface graphique. Les deux peuvent être installés à partir des référentiels, vous pouvez utiliser celui que vous préférez:

Sudo apt-get install wmctrl xdotool

Mon affichage est de 1920 x 1080, donc 1/3 de largeur serait 640. Pour placer la fenêtre active sur le côté gauche de l'écran, pleine hauteur et 1/3 de largeur, je lance:

wmctrl -r :ACTIVE: -e 0,0,0,640,1080

Le format est expliqué dans man wmctrl:

-r <WIN>
     Specify a target window for an action.
-e <MVARG>
     Resize and move a window that has been specified with a -r action 
     according to the  <MVARG> argument.

 [...]

<MVARG>
     A move and resize argument has the format 'g,x,y,w,h'.  All five components  are  integers.
     The  first  value, g, is the gravity of the window, with 0 being the
     most common value (the default value for the window). [...]
     The four remaining values are a standard geometry specification: x,y 
     is the position of the top  left  corner  of  the  window, and w,h
     is the width and height of the window [...].

<WIN>
     This  argument  specifies a window that is the target of an action. [...]
     The  window name string :ACTIVE: may be used to instruct wmctrl to 
     use the currently active window for the action.

Vous pouvez également le rendre plus dynamique en détectant automatiquement la largeur. Cette commande imprime la largeur de votre affichage:

$ xrandr | grep -Po 'current\s*\K\d+'
1920

Vous pouvez donc l'intégrer dans wmctrl comme ceci:

wmctrl -r :ACTIVE: -e 0,0,0,$(($(xrandr | grep -Po 'current\s*\K\d+')/3)),1080

Maintenant, tout ce que vous avez à faire est d'assigner cette commande à un raccourci clavier à partir des paramètres Unity et tout est prêt.

2
terdon