Je suis allé dans la section grid de compizconfig et j'ai personnalisé toutes les commandes de mosaïque.
Lorsque je testais les commandes, je n’ai vu aucun d’entre elles centrer efficacement l’écran.
Je suis allé dans la section de placement des fenêtres et j'ai configuré de nouvelles fenêtres pour qu'elles s'ouvrent centrées. Mais si je déplace une fenêtre du côté droit et que je veux ensuite la centrer, je ne sais pas comment faire avec une commande au clavier. Le "centre de vente" le maximisera et "restaurer" le déplacera à sa position/taille la plus récente.
pour résumer
disons que j'ai une fenêtre couvrant la moitié droite de l'écran. Je veux garder les dimensions/taille identiques, mais juste le centrer.
Le script suivant aligne le centre de la fenêtre active de l'utilisateur sur le centre de l'écran. Il est destiné à être lié à un raccourci clavier dans le menu Paramètres -> Clavier -> Raccourcis.
~/bin/center_active_window.py
. Assurez-vous qu'il dispose d'autorisations exécutables avec chmod +x ~/bin/center_active_window.py
/home/your_user_name/bin/center_active_window.py
. Cliquez sur ApplyDisabled
et attribuez-lui un raccourci clavier personnalisé à l'invite. j'utilise Ctrl+Super+C , mais vous pouvez utiliser ce que vous voulez.Egalement disponible en tant que Gist on GitHub
#!/usr/bin/env python3
# Author: Serg Kolo
# Date: Oct 3rd, 2016
# Description: Script for aligning the center of
# user's active window with the center of the monitor
# Tested on: Ubuntu 16.04
# Written for: http://askubuntu.com/q/832720/295286
from __future__ import print_function
from gi.repository import Gdk
import subprocess
def get_offset(*args):
command = ['xprop','-notype','_NET_FRAME_EXTENTS',
'-id',str(args[0])
]
out = subprocess.check_output(command)
return int(out.decode().strip().split(',')[-2])
def main():
screen = Gdk.Screen.get_default()
window = screen.get_active_window()
window.unmaximize()
window_width = window.get_width()
window_y = window.get_Origin()[-1]
print(window_y)
window_monitor = screen.get_monitor_at_window(window)
monitor_center = screen.get_monitor_geometry(window_monitor).width/2
# if centers of window and screen are aligned
# the top left corner will be at screen_center - window_width/2
new_position = monitor_center - window_width /2
# For some reason there is vertical offset necessary
# Apparently this comes form _NET_FRAME_EXTENTS value
offset = get_offset(int(window.get_xid()))
window.move(new_position,window_y-offset)
print(window.get_Origin())
if __== '__main__':
main()