2013-02-20 53 views
2

在bash终端上,我可以发出“Ctrl-Shift-T”来打开一个新的终端窗口。我该如何从我在bash终端上运行的python脚本来完成这项工作?通过Python打开新的bash选项卡窗口

+0

'subprocess' module? – J0HN 2013-02-20 10:57:59

回答

3

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

如果你想打开一个新的窗口,你只需要使用子模块和执行终端命令(GNOME终端,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' 
相关问题