LINUX.ORG.RU

[wm][strange] В каком оконном менеджере можно сделать такое?


0

0

Собственно, хочу такую штуку сделать: при нажатии определённых клавиш все окна на текущем воркспейсе сворачиваются в заголовок (shade). Функция «минимизировать все окна» есть чуть ли не в каждом, а вот такой что-то не видел. Есть где такая возможность?

P.S.: красноглазые WM с поддержкой плавающих окон (awesome, xmonad) идут лесом.

★★★★★

Ответ на: комментарий от anonymous

Стековый режим в wmii, не?

Он там довольно примитивный из коробки. Больно много напилинга надо.

GotF ★★★★★ ()

Написал нехитрый скрипт. Вроде работает. Требования: wmctrl, gawk (с другими ?awk не проверял). Параметры: add, toggle, remove.

#!/bin/bash

ACTION=${1}; # get action; must be add, toggle or remove
get-current-ws(){
	# get workspace number; count begins from zero
	wmctrl -d | grep "*" | cut -d " " -f1;
}
get-windows-list(){
	# get list of windows of current workspace
	wmctrl -l | grep " $(get-current-ws) ${HOSTNAME}" | \
	awk '{for (i=4;i<NF+1;i++) {printf "%s ",$i};print ""}'
}
get-windows-list | while read window; do
	wmctrl -b ${ACTION},shaded -r ${window};
done
GotF ★★★★★ ()
Ответ на: комментарий от lazyklimm

мда, надо учиться читать весь тред пперед ответом

lazyklimm ★★★★★ ()
Ответ на: комментарий от sdio

Звёздочку грепаю:

┌[~]
└> wmctrl -d
0  - DG: 1280x1024  VP: 0,0  WA: 0,0 1280x973  desktop 1
1  - DG: 1280x1024  VP: 0,0  WA: 0,0 1280x973  desktop 2
2  * DG: 1280x1024  VP: 0,0  WA: 0,0 1280x973  desktop 3
3  - DG: 1280x1024  VP: 0,0  WA: 0,0 1280x973  desktop 4
┌[~]
└> wmctrl -d | grep "*" 
2  * DG: 1280x1024  VP: 0,0  WA: 0,0 1280x973  desktop 3
GotF ★★★★★ ()
Ответ на: комментарий от GotF

Странно что grep такой шаблон отработал. По-идее надо было grep '\*'

А вообще исп. grep и cut при наличие awk — лишние зависимости

sdio ★★★★★ ()
Ответ на: комментарий от sdio

Странно что grep такой шаблон отработал. По-идее надо было grep '\*'

Интересно, что awk тоже прожевал этот символ без экранирования.

А вообще исп. grep и cut при наличие awk — лишние зависимости

┌[~]
└> time wmctrl -d | awk '/*/ {print $1}'
1

real	0m0.006s
user	0m0.000s
sys	0m0.012s
┌[~]
└> time wmctrl -d | grep "*" | cut -d' ' -f1
1

real	0m0.007s
user	0m0.000s
sys	0m0.016s

Возможно, имеет смысл.

GotF ★★★★★ ()
Ответ на: комментарий от sdio

Время выполнения двух, аналогичных в плане исходных данных и выхода, конвейеров. Если речь о корректности измерения времени конвейера, то начиная с этого и далее, выяснили, что всё правильно.

GotF ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.