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