我正在使用 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()))