如何以编程方式切换到compiz中的特定窗口?

有没有一个命令来告诉compiz,我们想把前面的焦点放在一个特定的窗口? 我们应该如何识别该命令中的窗口?

这个问题背后的原因是下面的用例:

假设我们有一个wiki来logging我们发现的任何有趣的东西。 有一个键盘快捷键可以让浏览器窗口前面带有我们的Wiki页面,然后开始立即打字,然后用另一个组合键切换到我们以前工作的应用程序

我知道ALT + TAB在最后两个使用的窗口之间切换,但不能支持更复杂的应用程序组合。 例如浏览器+ Eclipse + Wiki

如果有类似的命令,可以从KDE或GNOME界面添加一个快捷方式

Solutions Collecting From Web of "如何以编程方式切换到compiz中的特定窗口?"

你在找什么是wmctrl 。 例如,添加一个键盘快捷键来调用类似的命令

wmctrl -Fa 'Wiki - Google Chrome' 

提高和激活与该标题的窗口。

有不同的方式来选择一个窗口的标题,ID等。见man wmctrl 。 窗口列表可以运行

 $ wmctrl -l 

我还没有用 compiz尝试过,但是wmctrl应该可以用于任何符合EWMH的窗口管理器。

Compiz提供了这个工具:

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

您需要将_NET_ACTIVE_WINDOW客户端消息发送到根窗口。 这将提醒任何合规的窗口管理器(包括Compiz)您正在请求激活一个特定的窗口。

请参阅EWMH规范 ,特别是_NET_ACTIVE_WINDOW部分 。

请注意,根据窗口管理器的配置,它可能会拒绝接受您的请求,或者让用户有机会忽略它。

我发现这个网页有一个你可以编译的例子源程序,它会带一个X窗口到前面。

关键是X11函数XRaiseWindow

我想这会很容易编写一个小程序,并写一个包装脚本或只是使程序本身健壮,然后设置Compiz将其附加到全局键盘快捷方式。

Widget插件可以做你所描述的。

  • 配置Widget插件将所需的窗口标记为小部件(例如,通过匹配窗口标题或角色)。
  • 配置窗口规则插件,使所有工作区(粘)上出现窗口小部件窗口,并跳过任务栏。

请参阅http://wiki.compiz.org/Plugins/Widget