Посты с тегом wmctrl
04.06.2012 15:37

x0xРасположение окон в fluxbox с помошью wmctrl

Иногда бывает удобно управлять положением окон с клавиатуры, например по нажатию комбинации клавиш окно занимает левую||правую||верхнюю||нижнюю половину экрана, или перемещается в какой либо из углов и занимает 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

Полностью.
+ 1 -
0
cblp 27.12.2010 23:50

Tips & tricksИнтернет каждому дедушке!

spacer.gif?sign=37535465.89030162.1293524168.09b5074db3a420852f80427f9b291497Дано 1 компьютер в пользовании n человек — 1 программист, использующий многие возможности компьютера и Интернета, и (n?1) обычный человек, обозревающие веб и жаберы-скайпы понемножку.

Надо сделать так, чтобы все могли поочереди пользоваться компом и друг другу не мешали.

С отдельными учётными записями заморачиваться не хотелось, ибо защищать нам друг от друга — а точнее, мне от всех остальных — в общем-то, нечего. К тому же, в семье есть представители старшего, очень старшего поколения, которым пришлось бы долго, очень долго объяснять, что такое пароль и как его вводить, а учётку без пароля заводить некошерно. А поскольку проблема была только с разделением доступа к браузеру, то решено было ограничиться рабочими столами и профилями Firefox.

Задача Настроить удобное использование n профилей Firefox на n рабочих столах.
Полностью.
+ 7 -
15
muhas 16.06.2010 14:58

Я рекомендуюurxvt на замену yakuake - возможно ли?

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
#! /bin/bash

WINTITLE="yeahurxvt"
PROGNAME="urxvt"
# ищем окно по имени и скрываем/показываем или запускаем окно в зависимости от ситуации
if < `wmctrl -xl | grep -c "$WINTITLE"` != 0 >; then
	# скрываем или показываем нужное окно в зависимости от того что сейчас
    wmctrl -x -r "$WINTITLE" -b toggle,hidden
else
	# запускаем если нет окна с нужным именем
    $PROGNAME -name "$WINTITLE" &
    # ну и размер сразу выставить можно, параметры добавить и прочее по желанию - главное что бы имя у окна было нужное
fi
exit 0


Работает в EWMH совместимых wm — проверил на openbox(работает даже с запущенным pytyle) и fluxbox
Полностью.
+ 7 -
5
ilzoff 26.11.2009 01:57

Есть вопрос!Как запретить изменение title терминала

Я использую wmctrl, чтобы управлять окном своего терминала. Примерно вот так:

1
wmctrl -r "$WINTITLE" -b toggle,hidden

Но некоторые программы меняют имя терминала, например, ncmpc заменяет его на информацию о проигрываемом треке. И у меня "все рушится" =)

Собственно вопрос: можно ли сделать так, чтобы имя (title) конкретного терминала было постоянным? Может, запускать его с каким-то специальным префиксом?

Сейчас я запускаю его так:

1
urxvt -T "$WINTITLE"
Полностью.
+ 2 -
4