web-dev-qa-db-ja.com

Ctrl-Alt-Tがすでに存在するときに新しいターミナルウィンドウを開かないようにしますか?

Ctrl-Alt-Tショートカットをxfceのように動作させる方法があるかどうか知りたいのですが。つまり、開いているターミナルがない場合は開いてください。そうでない場合は、新しいターミナルを開くのではなく、既存のターミナルに注目してください。理想的には、xdotoolのようなものをインストールする必要はありません。

Cinnamon(3.0.7)とgnome-terminal(3.20.2)でmanjarolinuxを使用しています。

3
K. Rauscher

https://stackoverflow.com/questions/1380784/how-to-get-list-opened-windows-in-pygtk-or-gtk-in-ubunt のコードは、ターミナルが開いている場合は、ターミナルに焦点を合わせる必要があります。 (もちろん、ターミナルがない場合は、新しいターミナルを開きます。)さらに、すべてを制御する作成したミニプログラムに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":を端末の名前に置き換えます。ターミナルウィンドウを開いた状態でこの「アプリ」を1回実行すると、ウィンドウの名前が表示されます。

0
theGtknerd