3

bashターミナルで、「Ctrl-Shift-T」を発行して新しいターミナルウィンドウを開くことができます。bashターミナルで実行するPythonスクリプトからこれを行うにはどうすればよいですか?

4

1 に答える 1

3

Ctrl-Shift-Tは、bashとはまったく関係ありませんが、使用しているターミナルエミュレーターです。

新しいウィンドウを開きたい場合は、サブプロセスモジュールを使用して、ターミナルコマンド(gnome-terminal、xtermなど)を実行するだけです。

しかし、私の経験では、Ctrl-Shift-Tが開きます。新しいウィンドウではなく、現在のウィンドウの新しいタブです。それは少しトリッキーです。ただし、bashスクリプト内でこれを行う方法のサンプルを次に示します。ただし、これはローカルマシンで機能するようです。しかし、それは私に良い雰囲気を与えません。他のマシンでもフェイルセーフになるタスクを実行できる別の方法はありますか?その場合はお勧めします。

リンクしたbashスクリプトをPythonスクリプトとして書き直しました。ツールxprop、xdotool、wmctrlがインストールされていることを確認してください。

import subprocess

wid = None
xprop_out = subprocess.check_output(['xprop', '-root'])

for line in xprop_out.splitlines():
    if '_NET_ACTIVE_WINDOW(WINDOW)' in line:
        wid = line.split()[-1]

if wid:
    subprocess.check_call(['xdotool', 'windowfocus', wid])
    subprocess.check_call(['xdotool', 'key', 'ctrl+shift+t'])
    subprocess.check_call(['wmctrl', '-i', '-a', wid])
else:
    print 'Failed to find window ID'
于 2013-02-20T11:02:03.200 に答える