我想知道是否有办法让 Ctrl-Alt-T 快捷键像在 xfce 上一样工作。即:如果没有打开终端,则打开一个,否则将焦点放在现有终端上,而不是打开新终端。理想情况下,无需安装 xdotool 之类的东西。
我正在使用带有 cinnamon (3.0.7) 和 gnome-terminal (3.20.2) 的 manjaro linux。
答案1
代码在https://stackoverflow.com/questions/1380784/how-to-get-list-opened-windows-in-pygtk-or-gtk-in-ubuntu会告诉您是否有终端打开,然后您需要关注该终端。(当然,如果没有终端,请打开一个新的。)此外,您还需要将 Ctrl-Alt-T 快捷方式连接到您创建的将控制一切的小程序。
使用工作代码进行编辑:
#!/usr/bin/python
import gi
gi.require_version('Wnck', '3.0')
from gi.repository import GdkX11, Gdk, Wnck
import subprocess
screen = Wnck.Screen.get_default()
screen.force_update() # recommended per Wnck documentation
# loop all windows
for window in screen.get_windows():
window_name = window.get_name()
print window_name
if window_name == "your_terminal_name_here":
now = GdkX11.x11_get_server_time(Gdk.get_default_root_window())
window.activate(now)
break
continue
else:
subprocess.call("gnome-terminal")
# clean up Wnck (saves resources, check documentation)
window = None
screen = None
Wnck.shutdown()
将此代码放入名为 check_window.py 的文件中,并在“首选项”>“键盘”>“快捷方式”中为其链接快捷方式。使用终端名称chmod +x check_window.py
替换使文件可执行if window_name == "your_terminal_name_here":
。如果您在终端窗口打开的情况下运行此“应用程序”一次,它将为您提供窗口的名称。