blog · git · desktop · images · contact & privacy · gopher


„Poor man’s Aero Snap“ für Xfce

Bevor die Tage der nächste, etwas längere Post folgt: 5 Minuten Zeit gehabt und an "Aero Snap" aus Windows 7 erinnert. Da war doch was.

Das folgende "Skript" ist wirklich extrem primitiv, aber es erfüllt seinen Zweck. Man muss sich nur einmal die Fenster so hinschieben, wie sie später sein sollen. Zum Beispiel eine Konsole mit 80 Zeichen Breite links und eine, die den restlichen Platz rechts ausfüllt -- finde, das ist ein schönes Setup. Dann bemüht man einmal kurz "xwininfo", um abzulesen, wo die Fenster sitzen: Relevant sind die Werte "Absolute upper-left X" und "Width", die trägt man dann im Skript ein. "wmctrl" positioniert dann zukünftig das aktive Fenster, wenn man sich das Ding auf einen Hotkey legt ("snap.sh LEFT" und "snap.sh RIGHT" zum Beispiel).

Was fehlt, wäre eine Integration mit Xinerama, um's dynamischer oder Dual-Screen-fähig zu machen.

Nicht geeignet für Leute, die häufig ihre Fensterdekoration wechseln. ;)

#!/bin/bash
# Simuliere Aero-Snap für einen einzelnen Screen.

# Mit "Gravity 10", also "Static". Das setzt den eigentlichen
# Fensterinhalt und nicht inklusive Fensterdekoration. Damit kann man
# die Werte verwenden, die "xwininfo" bei "Width" und "Absolute
# upper-left X" ausgibt.
function snap()
{
    case $1 in
        RIGHT)
            X=821
            W=1094
            ;;
        LEFT)
            X=5
            W=804
            ;;
        *)
            exit 1
            ;;
    esac

    wmctrl -r :ACTIVE: -e 10,$X,0,$W,-1
    wmctrl -r :ACTIVE: -b add,maximized_vert
}

snap $1