04.06.2012 15:37
Иногда бывает удобно управлять положением окон с клавиатуры, например по нажатию комбинации клавиш окно занимает левую||правую||верхнюю||нижнюю половину экрана, или перемещается в какой либо из углов и занимает 1/4 рабочего пространства.
во fluxbox такого функционала из коробки нет, но это легко реализуема с помощью wmctrl.
Ниже простой скрипт который генерирует 8 строк для добавление в .fluxbox/keys, после чего по нажатию Win+(Up||Down||Left||Right) окно занимает соответствующую половину экрана, Ctrl+Win+(Up||Down||Left||Right) соответствующий угол.
Как входные параметры скрипт требует координаты верхнего угла рабочей области экрана, и размер рабочей области.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
#!/bin/sh if [ -z "$1" -o -z "$2" -o -z "$3" -o -z "$4" ]; then echo "use $0 x y width height"; else x=$1 y=$2 width=$(echo "$3 - $1" | bc -l) height=$(echo "$4 - $2" | bc -l) hwidth=$( echo "scale = 0; ($3 - $1) / 2" | bc -l ) hheight=$( echo "scale = 0; ($4 - $2) / 2" | bc -l ) hx=$( echo "$hwidth + $x + 1" | bc -l ) hy=$( echo "$hheight + $y + 1" | bc -l ) echo "Mod4 Up :Exec wmctrl -r :ACTIVE: -e 0,$x,$y,$width,$hheight" echo "Mod4 Down :Exec wmctrl -r :ACTIVE: -e 0,$x,$hy,$width,$hheight" echo "Mod4 Left :Exec wmctrl -r :ACTIVE: -e 0,$x,$y,$hwidth,$height" echo "Mod4 Right :Exec wmctrl -r :ACTIVE: -e 0,$hx,$y,$hwidth,$height" echo "Control Mod4 Up :Exec wmctrl -r :ACTIVE: -e 0,$x,$y,$hwidth,$hheight" echo "Control Mod4 Down :Exec wmctrl -r :ACTIVE: -e 0,$hx,$hy,$hwidth,$hheight" echo "Control Mod4 Left :Exec wmctrl -r :ACTIVE: -e 0,$x,$hy,$hwidth,$hheight" echo "Control Mod4 Right :Exec wmctrl -r :ACTIVE: -e 0,$hx,$y,$hwidth,$hheight" fi
|
простой пример:
разрешение моего экрана 1280x1024 вверху экрана у меня панель высотой в 23 пикселя
я ввожу ./win.sh 0 23 1280 1024
на что получаю
Mod4 Up :Exec wmctrl -r :ACTIVE: -e 0,0,23,1280,500
Mod4 Down :Exec wmctrl -r :ACTIVE: -e 0,0,524,1280,500
Mod4 Left :Exec wmctrl -r :ACTIVE: -e 0,0,23,640,1001
Mod4 Right :Exec wmctrl -r :ACTIVE: -e 0,641,23,640,1001
Control Mod4 Up :Exec wmctrl -r :ACTIVE: -e 0,0,23,640,500
Control Mod4 Down :Exec wmctrl -r :ACTIVE: -e 0,641,524,640,500
Control Mod4 Left :Exec wmctrl -r :ACTIVE: -e 0,0,524,640,500
Control Mod4 Right :Exec wmctrl -r :ACTIVE: -e 0,641,23,640,500
добавляю эти строки в ~/.fluxbox/keys
после перезагружаю fluxbox
PROFIT