Gui

有沒有辦法在沒有 gui 的情況下啟動 gui 應用程序?

  • May 13, 2021

我正在使用 Linux Mint MATE。我想在我的眼睛沒有辨識的情況下啟動一個 gui 應用程序。我嘗試了以下程式碼,該程式碼啟動應用程序並將其移動到另一個工作區,wmctrl並在啟動後立即啟動,但這不起作用。

some_app_with_gui &
wmctrl -r title -t 1 #move window to another workspace (Say I'm in workspace 0 now)

如此處所示,原因是在的視窗出現wmctrl之前執行。some_app_with_gui所以解決方案是

some_app_with_gui &
sleep 0.8
wmctrl -r title -t 1 #move window to another workspace (Say I'm in workspace 0 now)

這實際上有效。

但是,使用此解決方案時,我的眼睛可以辨識視窗片刻(0.1 秒左右)。這真的很煩人,我想避免它。

有什麼解決辦法嗎?它不一定必須使用wmctrl. 任何其他命令都可以。請注意我不訪問視窗,即應用程序由腳本啟動並由腳本關閉,因此完全隱藏視窗是可以的。


這個問題與標題相似的問題有何不同是

  • 只涉及一台機器(與 SSH 無關)
  • 並且我想在沒有 gui的桌面環境的機器上啟動 gui 應用程序。

您可以使用虛擬幀緩衝區 X 伺服器Xvfb.

例如:

Xvfb :99 &
DISPLAY=:99 some_app_with_gui &

這會在完全虛擬的 X 顯示器上執行應用程序,在任何物理顯示器上根本看不到任何可見的存在。

Xvfb通常是一個單獨的包,因此您可能需要使用發行版的包管理器來安裝它,然後再使用它。

為此,我個人使用了我自己的一個工具,叫做unwin

就像telcoM answer一樣,但是自動等待和關閉 xvfb 的時間。

如果 xvfb 沒有準備好,它將等待它。一旦幀緩衝區上沒有程序執行,xvfb 就會自動關閉。

引用自:https://unix.stackexchange.com/questions/512356