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

标签 python bash

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

最佳答案

Ctrl-Shift-T 与 bash 绝对无关,而是您正在使用的终端仿真器!

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

但根据我的经验,Ctrl-Shift-T 打开的不是新窗口,而是当前窗口中的新选项卡。这有点棘手。但是here is a sample你将如何在 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'

关于python - 通过 Python 打开新的 bash 选项卡窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14978015/

相关文章:

python - 通过 lambda 定义的函数列表的意外行为

python - 在Python中找到大于或等于n的2的最小幂

linux - 如何按名称删除和替换特定字段值而不是修复列

python - 从 0 开始创建新的 pandas 列

python - reshape 和堆叠 2D 阵列以形成 3D 阵列

python - 如何在 PySpark 中获取数据框的最频繁值

bash -\( 在 bash 脚本中是什么意思

arrays - bash,返回数组中最小条目的位置

linux - 在 PS1 之后添加一个换行符

bash - 通过 bash 脚本登录 Heroku