* [Comm] Looking for app to minimize all opened windows
@ 2003-02-14 21:19 Pavel S. Khmelinsky
2003-02-15 17:53 ` [Comm] " Michael Shigorin
0 siblings, 1 reply; 7+ messages in thread
From: Pavel S. Khmelinsky @ 2003-02-14 21:19 UTC (permalink / raw)
To: community
Всем привет!
Ищу программу под иксы для свертывания сразу всех окон. Хорошо бы она
умел сворачивать окна как на текущем десктопе, так и на всех сразу.
Использую Window Maker.
Может кто что подскажет?
Вроде идея то тривиальна, а реализации лично я нигде не нашел.
hmepas
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Comm] Re: Looking for app to minimize all opened windows
2003-02-14 21:19 [Comm] Looking for app to minimize all opened windows Pavel S. Khmelinsky
@ 2003-02-15 17:53 ` Michael Shigorin
2003-02-15 19:54 ` Anton Kovalenko
0 siblings, 1 reply; 7+ messages in thread
From: Michael Shigorin @ 2003-02-15 17:53 UTC (permalink / raw)
To: community
On Sat, Feb 15, 2003 at 12:19:56AM +0300, Pavel S. Khmelinsky wrote:
> Ищу программу под иксы для свертывания сразу всех окон. Хорошо
> бы она умел сворачивать окна как на текущем десктопе, так и на
> всех сразу. Использую Window Maker. Может кто что подскажет?
Эээ... если с двух раз не ответили -- значит, видимо, все хуже :)
> Вроде идея то тривиальна, а реализации лично я нигде не нашел.
Значтак: "свернуть" в понятиях X11 -- это событие (event).
http://freshmeat.net/search?q=x11+event дает по крайней мере
http://freshmeat.net/projects/android/
-- далее уже можно думать, потрошить тот гномий апплет и делать
из него что-то свое или копнуть со стороны Android (и Tcl/Tk по
мере ;-).
PS: вообще поиск по icccm x11 event и последующее знакомство со
всем этим... хмм... при определенной настойчивости тоже может
помочь. Возможно.
--
---- WBR, Michael Shigorin <mike@altlinux.ru>
------ Linux.Kiev http://www.linux.kiev.ua/
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Comm] Re: Looking for app to minimize all opened windows
2003-02-15 17:53 ` [Comm] " Michael Shigorin
@ 2003-02-15 19:54 ` Anton Kovalenko
2003-02-15 20:51 ` Michael Shigorin
2003-02-15 23:03 ` Pavel S. Khmelinsky
0 siblings, 2 replies; 7+ messages in thread
From: Anton Kovalenko @ 2003-02-15 19:54 UTC (permalink / raw)
To: community
>>>>> Michael Shigorin writes:
> On Sat, Feb 15, 2003 at 12:19:56AM +0300, Pavel S. Khmelinsky wrote:
>> Ищу программу под иксы для свертывания сразу всех окон. Хорошо
>> бы она умел сворачивать окна как на текущем десктопе, так и на
>> всех сразу. Использую Window Maker. Может кто что подскажет?
> Эээ... если с двух раз не ответили -- значит, видимо, все хуже :)
Всё _ещё хуже_.
> Значтак: "свернуть" в понятиях X11 -- это событие (event).
Если имеется ввиду нечно вроде UnmapNotify или PropertyNotify
(WM_STATE) -- да, это событие. Но здесь оно не поможет:
единственное его предназначение -- чтобы WM сообщал нашей
прикладухе: "знаешь, а я тут твоё окно свернул"...
Если мы и пошлём прикладухе _ЭТО_ через SendEvent, всё, чего мы
добьёмся -- прикладуха будет думать, что её свернули.
Так что пользоваться нам надо не "посылкой событий", а вызовом
XIconifyWindow. Вот пример (proof-of-concept) -- программка,
которая сворачивает окно с заданным id.
------- содержимое файла iconify.c -------
#include <X11/Xlib.h>
#include <stdlib.h>
int main (int argc, char **argv)
{
Display *dpy;
if (argc!=2) {
/* We need egg-zactly one arg */
return 1;
}
dpy = XOpenDisplay(NULL); /* use $DISPLAY variable */
XIconifyWindow (dpy, strtol(argv[1],0,0), 0 /* FIXME: it's screen num. */ );
XCloseDisplay( dpy );
return 0;
}
-----------------------------------------
Это можно откомпилировать командой
gcc -o iconify iconify.c -L/usr/X11R6/lib -lX11
А затем в окошке xterm запустить
./iconify $WINDOWID
Окошко этого самого xterm, разумеется, должно свернуться
[...Мишины рекомендации по поводу eventов пропускаю.
Они очень подробные и полезные, но не для этой задачи...]
--
With Best Wishes, Anton Kovalenko /* http://kovalenko.webzone.ru */
#!/usr/bin/wish - best wish I have for you!
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Comm] Re: Looking for app to minimize all opened windows
2003-02-15 19:54 ` Anton Kovalenko
@ 2003-02-15 20:51 ` Michael Shigorin
2003-02-15 23:03 ` Pavel S. Khmelinsky
1 sibling, 0 replies; 7+ messages in thread
From: Michael Shigorin @ 2003-02-15 20:51 UTC (permalink / raw)
To: community
On Sat, Feb 15, 2003 at 10:54:12PM +0300, Anton Kovalenko wrote:
> [...Мишины рекомендации по поводу eventов пропускаю.
Собственно, "так я и подозревал" -- никогда ниже Tk в X не
залазил с этой стороны :-)
--
---- WBR, Michael Shigorin <mike@altlinux.ru>
------ Linux.Kiev http://www.linux.kiev.ua/
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Comm] Re: Looking for app to minimize all opened windows
2003-02-15 19:54 ` Anton Kovalenko
2003-02-15 20:51 ` Michael Shigorin
@ 2003-02-15 23:03 ` Pavel S. Khmelinsky
2003-02-16 9:48 ` Anton Kovalenko
1 sibling, 1 reply; 7+ messages in thread
From: Pavel S. Khmelinsky @ 2003-02-15 23:03 UTC (permalink / raw)
To: community
Anton Kovalenko wrote:
>>>>>>Michael Shigorin writes:
>>>>>>
>>>>>>
>
> > On Sat, Feb 15, 2003 at 12:19:56AM +0300, Pavel S. Khmelinsky wrote:
> >> Ищу программу под иксы для свертывания сразу всех окон. Хорошо
> >> бы она умел сворачивать окна как на текущем десктопе, так и на
> >> всех сразу. Использую Window Maker. Может кто что подскажет?
> > Эээ... если с двух раз не ответили -- значит, видимо, все хуже :)
>
>Всё _ещё хуже_.
>
> > Значтак: "свернуть" в понятиях X11 -- это событие (event).
>
>Если имеется ввиду нечно вроде UnmapNotify или PropertyNotify
>(WM_STATE) -- да, это событие. Но здесь оно не поможет:
>единственное его предназначение -- чтобы WM сообщал нашей
>прикладухе: "знаешь, а я тут твоё окно свернул"...
>
>Если мы и пошлём прикладухе _ЭТО_ через SendEvent, всё, чего мы
>добьёмся -- прикладуха будет думать, что её свернули.
>
>
>Так что пользоваться нам надо не "посылкой событий", а вызовом
>XIconifyWindow. Вот пример (proof-of-concept) -- программка,
>которая сворачивает окно с заданным id.
>
>
Ок. Окно свернули. А список окон как получить?
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Comm] Re: Looking for app to minimize all opened windows
2003-02-15 23:03 ` Pavel S. Khmelinsky
@ 2003-02-16 9:48 ` Anton Kovalenko
2003-02-16 9:54 ` Pavel S. Khmelinsky
0 siblings, 1 reply; 7+ messages in thread
From: Anton Kovalenko @ 2003-02-16 9:48 UTC (permalink / raw)
To: community
>>>>> 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!
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Comm] Re: Looking for app to minimize all opened windows
2003-02-16 9:48 ` Anton Kovalenko
@ 2003-02-16 9:54 ` Pavel S. Khmelinsky
0 siblings, 0 replies; 7+ messages in thread
From: Pavel S. Khmelinsky @ 2003-02-16 9:54 UTC (permalink / raw)
To: community
Большое спасибо!
Anton Kovalenko wrote:
>>>>>>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!
>
>
>
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2003-02-16 9:54 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-02-14 21:19 [Comm] Looking for app to minimize all opened windows Pavel S. Khmelinsky
2003-02-15 17:53 ` [Comm] " Michael Shigorin
2003-02-15 19:54 ` Anton Kovalenko
2003-02-15 20:51 ` Michael Shigorin
2003-02-15 23:03 ` Pavel S. Khmelinsky
2003-02-16 9:48 ` Anton Kovalenko
2003-02-16 9:54 ` Pavel S. Khmelinsky
ALT Linux Community general discussions
This inbox may be cloned and mirrored by anyone:
git clone --mirror http://lore.altlinux.org/community/0 community/git/0.git
# If you have public-inbox 1.1+ installed, you may
# initialize and index your mirror using the following commands:
public-inbox-init -V2 community community/ http://lore.altlinux.org/community \
mandrake-russian@linuxteam.iplabs.ru community@lists.altlinux.org community@lists.altlinux.ru community@lists.altlinux.com
public-inbox-index community
Example config snippet for mirrors.
Newsgroup available over NNTP:
nntp://lore.altlinux.org/org.altlinux.lists.community
AGPL code for this site: git clone https://public-inbox.org/public-inbox.git