[PYTHON] Écran divisé en 3 avec keyhac

Windows a une "fonction d'accrochage" qui vous permet de diviser l'écran en deux gauche et droite (quatre si vous incluez le haut et le bas) en appuyant sur la touche Win et les touches fléchées en même temps. Cette fois, je vais étendre cette fonction avec keyhac afin qu'il puisse se casser même dans un rapport de 1: 2.

Il est recommandé pour ceux qui veulent parcourir les fenêtres côte à côte, mais la moitié est trop petite, mais il est difficile de redimensionner à chaque fois à la main.

(Image terminée ↓) fig1.png

code

Nous écrirons le contenu de la fonction configure de config.py.

def configure(keymap):

    keymap.replaceKey("(28)", 236)      #Attribuer le code virtuel 236 à la clé de conversion
    keymap.defineModifier(236, "User1") #Clé virtuellement qualifiée pour la clé de conversion"U1"Utilisé comme

    def triple_snap(position = "center", Narrow = False):
        main_monitor_info = (pyauto.Window.getMonitorInfo())[0]
        non_taskbar_area = main_monitor_info[1]
        [monitor_left, monitor_top, monitor_right,monitor_bottom] = non_taskbar_area
        monitor_width = monitor_right - monitor_left
        ratio = 3
        if Narrow:
            wnd_width = int(monitor_width / ratio)
            wnd_pos_table = {
                "center": {
                    "left": wnd_width,
                    "right": wnd_width * 2,
                },
                "left": {
                    "left": monitor_left,
                    "right": wnd_width,
                },
                "right": {
                    "left": wnd_width * 2,
                    "right": monitor_right,
                },
            }
        else:
            wnd_width = int(monitor_width / ratio) * 2
            wnd_pos_table = {
                "center": {
                    "left": int(monitor_width / ratio / 2),
                    "right": int(monitor_width / ratio / 2) + wnd_width,
                },
                "left": {
                    "left": monitor_left,
                    "right": wnd_width,
                },
                "right": {
                    "left": int(monitor_width / ratio),
                    "right": monitor_right,
                },
            }
        wnd_area = wnd_pos_table[position]
        rect = [wnd_area["left"], monitor_top, wnd_area["right"], monitor_bottom]
        wnd = keymap.getTopLevelWindow()
        if list(wnd.getRect()) == rect:
            wnd.maximize()
        else:
            if wnd.isMaximized():
                wnd.restore()
            wnd.setRect(rect)

    for k in [
        ("U1-M"  , lambda: triple_snap("center", False)),
        ("S-U1-H", lambda: triple_snap("left"  , False)),
        ("S-U1-L", lambda: triple_snap("right" , False)),
        ("C-U1-H", lambda: triple_snap("left"  , True)),
        ("C-U1-L", lambda: triple_snap("right" , True)),
        ("C-U1-M", lambda: triple_snap("center", True)),
        ("U1-H"  , "Win-Left"),
        ("U1-L"  , "Win-Right"),
    ]:
        keymap_global[k[0]] = k[1]

Image d'exécution

Utilisez la clé de conversion et M pour amener la fenêtre au centre de l'écran avec 2/3 de la largeur du moniteur. Appuyez à nouveau sur la même touche pour maximiser.

fig2.png

Si vous maintenez la touche Ctrl enfoncée en même temps, la largeur sera réduite à 1/3. fig3.png

Attribuez des accrochages gauche / droite normaux aux clés de conversion et H / L, et appuyez sur Maj pour accrocher 2/3 et Ctrl à 1/3 de largeur.


(En premier lieu, si vous pouvez le rendre multi-moniteur, tout sera résolu)

Recommended Posts

Écran divisé en 3 avec keyhac
écran et écran partagé avec connexion python et ssh au serveur distant
Changement d'écran / transition d'écran avec Tkinter
Diviser le PDF en pages arbitraires
Créer un défilement d'écran avec Pythonista + scene
[Blender] Scinder le script Blender en plusieurs fichiers
Obtenez une capture d'écran Web avec python