[Comm] Re: Looking for app to minimize all opened windows
Anton Kovalenko
=?iso-8859-1?q?a=5Fkovalenko_=CE=C1_mtu-net=2Eru?=
Вс Фев 16 12:48:35 MSK 2003
>>>>> Pavel S Khmelinsky writes:
>> Так что пользоваться нам надо не "посылкой событий", а вызовом
>> XIconifyWindow. Вот пример (proof-of-concept) -- программка,
>> которая сворачивает окно с заданным id.
> Ок. Окно свернули. А список окон как получить?
Вот тут уже не так легко. На сях это делается через XQueryTree,
а из шелла -- через xwininfo (к примеру, xwininfo -root -tree).
Вот так это примерно выглядит (с учётом предыдущей программки):
(лучше не запускать, не прочитав письмо далее!)
xwininfo -root -children|awk '/^ *0x/ { print $1 }'|xargs -n 1 ./iconify
Но проблема в том, как из полученного списка окон выделить
нужные. То есть не свернуть ненароком wharf, dock, taskbar или
что там ещё не надо сворачивать.
Я бы посоветовал позвать xwininfo -name что-то -children на
каждое из "несворачиваемых" окошек, запомнить их parent id (у
них родитель -- WM frame, который и надо пропустить), а затем
выполнить слегка подправленный вышеприведённый пример, пропуская
эти окна.
P.S.
А вот стоит только сменить window manager на скриптуемый и
"управляемый извне", и всё станет гораздо проще. Например, я
могу сделать
FvwmCommand 'All ("XTerm") Iconify'
P.P.S.
Ну не мог я не дать свой любимый совет для таких случаев: use
fvwm!
--
With Best Wishes, Anton Kovalenko /* http://kovalenko.webzone.ru */
#!/usr/bin/wish - best wish I have for you!
Подробная информация о списке рассылки community