[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