ALT Linux Community general discussions
 help / color / mirror / Atom feed
* [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