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

Rus*_*lex 9 shortcut-keys

我正在使用 Ubuntu 10.10 并且我总是打开窗口:

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

Win-C = Google Chrome
Win-T = terminal
Win-S = Skype
Run Code Online (Sandbox Code Playgroud)

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

dv3*_*0ea 7

可以使用 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()))
Run Code Online (Sandbox Code Playgroud)

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

单击添加以创建新的快捷方式。

在此处输入图片说明

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

在此处输入图片说明

然后,您可以将首选键盘组合分配给此操作。


ooi*_*ooi 6

如果您更喜欢现有的包,那么wmctrl支持许多不同的窗口管理器:

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

安装它:

sudo apt-get install wmctrl
Run Code Online (Sandbox Code Playgroud)

列出现有窗口:

wmctrl -l
Run Code Online (Sandbox Code Playgroud)

和地图:

wmctrl -a <WIN>
Run Code Online (Sandbox Code Playgroud)

到键盘快捷键。