通过Python打开新的bash选项卡窗口

时间:2013-02-20 10:51:27

标签: python bash

在bash终端上,我可以发出“Ctrl-Shift-T”来打开一个新的终端窗口。如何从我在bash终端上运行的python脚本中执行此操作?

1 个答案:

答案 0 :(得分:3)

Ctrl-Shift-T绝对与bash无关,而是你正在使用的终端模拟器!

如果要打开新窗口,只需使用子进程模块并执行终端命令(gnome-terminal,xterm等)。

但根据我的经验,Ctrl-Shift-T会打开,而不是新窗口,而是当前窗口中的新选项卡。这有点棘手。但here is a sample如何在bash脚本中执行此操作。然而,这似乎适用于您的本地计算机。但它并没有给我很好的共鸣。还有另一种方法可以完成您的任务,在其他机器上也更安全吗?在那种情况下,我会推荐它。

我重写了我作为Python脚本链接的bash脚本。只需确保安装了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'