From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: To: community@altlinux.ru Subject: Re: [Comm] Re: Looking for app to minimize all opened windows From: Anton Kovalenko Date: Sun, 16 Feb 2003 12:48:35 +0300 In-Reply-To: <3E4EC725.9030804@yauza.ru> ("Pavel S. Khmelinsky"'s message of "Sun, 16 Feb 2003 02:03:01 +0300") Message-ID: <87wuk0d098.fsf@lenin.home> User-Agent: Gnus/5.090011 (Oort Gnus v0.11) Emacs/21.2 (i386-debian-linux-gnu) References: <3E4D5D7C.6060806@yauza.ru> <20030215175302.GE15216@osdn.org.ua> <87n0kxcobf.fsf@lenin.home> <3E4EC725.9030804@yauza.ru> MIME-Version: 1.0 Content-Type: text/plain; charset=koi8-r Content-Transfer-Encoding: 8bit Sender: community-admin@altlinux.ru Errors-To: community-admin@altlinux.ru X-BeenThere: community@altlinux.ru X-Mailman-Version: 2.0.9 Precedence: bulk Reply-To: community@altlinux.ru List-Unsubscribe: , List-Id: List-Post: List-Help: List-Subscribe: , List-Archive: Archived-At: List-Archive: List-Post: >>>>> 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!