答案1
虹膜設定視窗
如果我們用 關閉 Iris 的設定窗口X
,似乎關閉。
wmctrl
然而,如果我們在( )的幫助下做同樣的事情wmctrl -ic <window_id>
,結果不僅是窗戶已關閉,但完整的應用程式。
我的結論是窗戶實際上並不是關閉, 但未映射的當我們按下X
.
我們可以在 的幫助下做同樣的事情xdotool
。對此答案的編輯版本:如何在啟動時運行程式並最小化?,然後我們就可以Iris
在不出現設定視窗的情況下啟動。
啟動虹膜沒有設定視窗(腳本)
該腳本同時使用
wmctrl
和xdotool
:sudo apt-get install wmctrl xdotool
將下面的腳本複製到一個空文件中,儲存到
Iris.sh
與您的檔案相同的目錄(因此它們位於同一目錄中),如start_iris.py
.#!/usr/bin/env python3 import subprocess import time import sys import os command = os.path.dirname(sys.argv[0])+"/Iris.sh" subprocess.Popen(["/bin/bash", "-c", command]) def get(cmd): return subprocess.check_output(cmd).decode("utf-8").strip() t = 0 while t < 12: time.sleep(1) try: w_list = [l.split()[0] for l in get(["wmctrl", "-l"]).splitlines() if "Iris" in l] for w in w_list: check = [l for l in get(["xprop", "-id", w]).splitlines()\ if "WM_CLASS(STRING)" in l][0] if "Iris" in check: subprocess.Popen(["xdotool", "windowunmap", w]) break break except (IndexError, subprocess.CalledProcessError): pass t += 1
現在運行以下命令而不是原來的命令來啟動
Iris
:python3 /path/to/start_iris.py
設定視窗將不再出現!
解釋
- 該腳本研究它自己的文件的目錄
Iris.sh
,然後啟動它。 WM_CLASS
Iris
隨後,它會監視(您的設定視窗)的新視窗的建立。如果它找到目標窗口,它取消映射帶有命令的視窗
xdotool
:xdotool windowunmap <window_id>
筆記
顯然,按一下
X
設定視窗的 也會取消映射該視窗。
顯然,這是以與 不同的方式完成的xdotool
。結果是,如果不重新啟動,您將無法存取設定視窗(從指標選單)Iris
。您提到過,但是您通常不需要設定窗口根本不。
請注意,當從啟動應用程式啟動 GUI 應用程式時(特別是當它涉及螢幕設定時),您可能需要稍微休息一下才能正常工作。如果它在啟動應用程式中不起作用,請將添加到 Stratup 應用程式的命令更改為:
/bin/bash -c "sleep 10 && python3 /path/to/start_iris.py"