2010-01-04 17 views
18

是否有命令告訴compiz我們想把前面的內容帶入並將焦點置於特定窗口? 我們應該如何識別該命令中的窗口?如何以編程方式切換到compiz中的特定窗口?

原因這背後的問題是下面的用例:

假設我們有一個wiki來保持什麼有趣的事,我們發現筆記。這將是非常方便的鍵盤快捷鍵與前面我們的Wiki頁面帶來的瀏覽器窗口,並立即開始然後用另一組合鍵切換到我們使用的應用程序中輸入之前

我知道ALT + TAB在最後兩個使用的窗口之間切換,但不能支持更復雜的應用程序組合。例如,瀏覽器+的Eclipse +維基

如果有一個像描述的一個命令,很容易快捷方式從KDE或GNOME界面添加到它

+0

你能否標籤[窗口管理器]添加到這個問題。謝謝。 – SmileAndNod

回答

20

你在找什麼是wmctrl。 例如,添加一個快捷鍵來調用命令狀

wmctrl -Fa 'Wiki - Google Chrome' 

提高和激活與標題的窗口。

根據標題,ID等選擇窗口的方法有很多。請參閱man wmctrl。可以得到 窗口列表運行

$ wmctrl -l 

我還沒有compiz的嘗試過,但wmctrl應該對任何EWMH兼容的窗口管理器。

+0

爲我節省了一堆時間,謝謝! – dhackner

+0

這不適合我。不知道爲什麼。 – dave1010

+1

只是一個旁註:wmctrl的-F選項使它在窗口標題上查找完全匹配。否則,它的正義子字符串搜索(可能更適合某些用途)。 – rburny

1

我發現this web page有你可以編譯一個例子源程序將把X窗口帶到前面。

關鍵是X11功能XRaiseWindow

我想這會很容易編寫一個小程序,並寫一個包裝腳本或只是使程序本身健壯,然後設置Compiz將其附加到全局鍵盤快捷方式。

2

您需要將客戶端消息發送到根窗口。這將提醒任何符合標準的窗口管理器(包括Compiz)您正在請求激活一個特定的窗口。

查看EWMH spec,特別是section on _NET_ACTIVE_WINDOW

請注意,根據窗口管理器的配置,它可能會拒絕接受您的請求,或者讓用戶有機會忽略它。

4

這個工作對我的Compiz:

xdotool windowactivate `xdotool search --onlyvisible --class firefox` 
+0

剛剛在Ubuntu 12.04下爲Unity工作,而wmctrl沒有。謝謝! –

+0

您不需要兩個單獨的xdotool命令;您可以使用%1引用第一個搜索結果,或%@引用它們全部:xdotool search --onlyvisible --class firefox windowactivate%@ –

0

窗件插件可以做你的描述。

  • 配置Widget插件以將所需的窗口標記爲窗口小部件(例如通過匹配窗口標題或角色)。
  • 配置窗口規則插件以使窗口小部件窗口出現在所有工作區上(粘滯)並跳過任務欄。

http://wiki.compiz.org/Plugins/Widget

相關問題