有没有办法为 Gnome 中打开的特定窗口设置快捷键?

有没有办法为 Gnome 中打开的特定窗口设置快捷键?

我正在使用 Ubuntu 10.10,并且始终打开窗口:

浏览器、控制台、vim 和 Skype。我想为这些窗口设置特定的快捷键。有没有办法使用例如:

Win-C = Google Chrome
Win-T = terminal
Win-S = Skype

我想使用热键在这些窗口之间切换。

答案1

如果你喜欢现有的包控制端它支持许多不同的窗口管理器:

该工具提供对 EWMH 规范中定义的几乎所有功能的命令行访问。例如,它可用于获取有关窗口管理器的信息、获取桌面和管理窗口的详细列表、切换和调整桌面大小、使窗口全屏、始终位于上方或粘滞,以及激活、关闭、移动、调整大小、最大化和最小化它们。

安装:

sudo apt-get install wmctrl

列出现有窗口:

wmctrl -l

和地图:

wmctrl -a <WIN>

到键盘快捷键。

答案2

可以使用 python 脚本来实现这一点。该脚本需要安装 python-wnck 和 python-gtk 才能运行,尽管我认为它们是默认安装的。

将其复制并粘贴到文本编辑器中,然后保存在合理的位置(例如,主文件夹中的 switch.py​​):

#!/usr/bin/env python2
import wnck
import gtk
import sys
import time

screen = wnck.screen_get_default()

while gtk.events_pending():
    gtk.main_iteration()

windows = screen.get_windows()

for w in windows:
    if len(sys.argv) > 1:
        if w.get_application().get_name() == sys.argv[1]:
            w.activate(int(time.time()+1))
            break
    else:
        print("Application name of window with title " + repr(w.get_name()) + " is " + repr(w.get_application().get_name()))

然后,您可以通过打开键盘快捷键(系统->首选项->键盘快捷键)来设置键盘快捷键。

单击“添加”即可创建新的快捷方式。

在此处输入图片描述

使用命令bash -c 'python ~/switch.py Terminal'(假设您将其保存为主文件夹中的 switch.py​​)。将“终端”替换为您要切换到的窗口的应用程序名称。要找出当前打开的窗口的应用程序名称,请python ~/switch.py在终端中运行。

在此处输入图片描述

然后,您可以将您喜欢的键盘组合分配给此操作。

答案3

这在 Kubuntu (kwin) 中是可能的...单击应用程序的标题栏,选择“高级->窗口快捷方式”。我知道这并不能准确回答您的问题 - 我很好奇 Gnome/Unity 是否也可以这样做。

答案4

以下来自@dv3500ea 的代码改编对我有用,包括设置焦点:

#!/usr/bin/env python2
import wnck
import gtk
import sys
import time

screen = wnck.screen_get_default()

while gtk.events_pending():
    gtk.main_iteration()

windows = screen.get_windows()

for w in windows:
    if len(sys.argv) > 1:
        if w.get_application().get_name() == sys.argv[1]:
            w.activate(gtk.gdk.x11_get_server_time(gtk.gdk.get_default_root_window()))
            break
    else:
        print("Application name of window with title " + repr(w.get_name()) + " is " + repr(w.get_application().get_name()))

相关内容