Как да превключите програмно към конкретен прозорец в compiz?

Има ли команда, която да каже на compiz, че искаме да поставим отпред и да зададем фокус върху конкретен прозорец? Как трябва да идентифицираме прозореца в тази команда?

Причината зад този въпрос е следният случай на употреба:

Да предположим, че имаме wiki, за да водим бележки за всичко интересно, което открием. Би било много удобно да имаме клавишна комбинация, за да поставим прозореца на браузъра с нашата Wiki страница отпред и да започнем да въвеждаме незабавно, след което с друга клавишна комбинация да превключим към приложението, с което работихме преди

Знам, че ALT + TAB превключва между последните два използвани прозореца, но не може да поддържа по-сложни комбинации от приложения. Например Браузър+Eclipse+ Wiki

Ако има команда като описаната, лесно е да добавите пряк път към нея от интерфейса на KDE или GNOME


person FossilBit    schedule 04.01.2010    source източник
comment
Бихте ли добавили етикета [window-managers] към този въпрос. Мерси.   -  person vo1stv    schedule 15.05.2012


Отговори (5)


Това, което търсите, е wmctrl. Например, добавете клавишна комбинация за извикване на команда като

wmctrl -Fa 'Wiki - Google Chrome'

за да повдигнете и активирате прозореца с това заглавие.

Има различни начини за избиране на прозорец по заглавие, идентификатор и т.н. Вижте man wmctrl. Списъкът с прозорци може да се получи работещ

$ wmctrl -l

Не съм го пробвал с compiz, но wmctrl трябва да работи за всеки EWMH съвместим мениджър на прозорци.

person Diego Torres Milano    schedule 05.01.2010
comment
Само странична бележка: опцията -F на wmctrl го кара да търси точно съвпадение в заглавието на прозореца. В противен случай това е просто търсене на подниз (което може да е по-подходящо за някои цели). - person rburny; 23.03.2013

Това работи за мен с Compiz:

xdotool windowactivate `xdotool search --onlyvisible --class firefox`
person dave1010    schedule 06.01.2011
comment
Работи за мен точно сега под Ubuntu 12.04 с Unity, докато wmctrl не. Благодаря! - person Jeff Ward; 12.03.2013
comment
Нямате нужда от две отделни команди xdotool; можете да използвате %1, за да посочите първия резултат от търсенето, или %@, за да посочите всички: xdotool search --onlyvisible --class firefox windowactivate %@ - person Don Hatch; 10.06.2016

Ще искате да изпратите клиентското съобщение _NET_ACTIVE_WINDOW до основния прозорец. Това ще предупреди всеки съвместим мениджър на прозорци (включително Compiz), че искате да направите активен определен прозорец.

Вижте EWMH спецификация, по-специално раздел на _NET_ACTIVE_WINDOW.

Обърнете внимание, че в зависимост от конфигурацията на мениджъра на прозорци, той може да откаже да изпълни вашата заявка или да даде възможност на потребителя да я игнорира.

person Adam Goode    schedule 05.01.2010

Намерих тази уеб страница, която има примерна изходна програма, която можете да компилирате и която ще изведе X прозорец отпред.

Ключът е функцията X11 XRaiseWindow.

Предполагам, че би било доста лесно да напишеш малка програма и или да напишеш скрипт за обвивка, или просто да направиш самата програма стабилна и след това да настроиш Compiz да прикачи това към глобална клавишна комбинация.

person Dave    schedule 05.01.2010

Приставката Widget може да направи това, което описвате.

  • Конфигурирайте приставката Widget, за да маркирате желаните прозорци като widget (напр. чрез съпоставяне на заглавие или роля на прозорец).
  • Конфигурирайте приставката за правила за прозорци, за да направите прозорците на джаджи да присъстват във всички работни пространства (лепкави) и да пропуснете лентата на задачите.

Вижте http://wiki.compiz.org/Plugins/Widget

person Jean Jordaan    schedule 14.07.2015