我想在fluxbox中使用热键启动GUI python脚本

时间:2019-02-05 22:32:32

标签: python linux

我写了一个小python脚本来在fluxbox中导航打开的窗口。 假设我使用的是Firefox,例如,我想检查在另一个工作区中打开的pdf。按热键,我应该打开 具有管理窗口索引列表的GUI。当我找到pdf文件时,只要按键盘上的相应索引,就应该将其传送到pdf应用程序。

现在,我想将其绑定到热键,以便 我的fluxbox执行脚本并仅向我显示GUI界面 这样我可以选择我的窗口。

因此,我编辑了 .fluxbox / keys 文件并添加:

Mod4 W :Exec script.py

但是,它什么都没显示。我也尝试了 Exec gnome-terminal -x /path/to/script.py ,也没有成功。

脚本具有可执行权限。如果我打开终端并输入 script.py

我没有错误的根源。

这是python脚本:

#!/usr/bin/env python3

'''
Python script for handling wmctrl

This is the attempt at a graphic interface!
'''

import subprocess as sp
import tkinter as tk

p1 = sp.Popen(['wmctrl', '-l'], stdout=sp.PIPE)

process = []
for line in p1.stdout:
    line = str(line)
    line = line[23:-3]
    process.append(line)

root = tk.Tk()
root.title('Window selection menu')
for i in range(len(process)):
    text = tk.Label(root, text='{} {}'.format(i,process[i]), font=('Arial',12))
    text.pack()


possible_keys = list(range(len(process)))

def go_to_window(key):
        key = int(key.char)
        sp.call(['wmctrl', '-a', process[key]])
        root.destroy()

for i in possible_keys: 
        root.bind(i, go_to_window)

root.mainloop()

0 个答案:

没有答案