我写了一个小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()