当已经存在终端窗口时,如何防止 Ctrl-Alt-T 打开新的终端窗口?

当已经存在终端窗口时,如何防止 Ctrl-Alt-T 打开新的终端窗口?

我想知道是否有办法让 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":。如果您在终端窗口打开的情况下运行此“应用程序”一次,它将为您提供窗口的名称。

相关内容