Debian

為什麼 LXQT Autostart 什麼都不做?

  • August 24, 2020

我這裡有一個 BeagleBone Black,執行 Debian 8.3、Linux 4.1.15-ti-rt-r43。台式機是LXQT。

啟動後,我想執行一個 .sh 文件 - 當桌面環境準備好時,因為該文件在更改路徑並設置一些變數後,呼叫 mono 來啟動基於 GUI 的程序。

使用“開始菜單”:

首選項 -> LXQt 設置 -> 會話設置 -> 自動啟動

我添加了一個條目,首先在“全域自動啟動”下,然後在“LXQt 自動啟動”下(一次只選中兩個框之一)。我在“命令”下通過“搜尋…”按鈕指定了我的 .sh 腳本的路徑,即不會出現輸入錯誤。我嘗試了兩者,“等待系統托盤”選中,未選中。點擊“關閉”,每次嘗試通過開始菜單重新啟動機器。

桌面啟動後,沒有其他任何事情發生。不過,該腳本在 ssh remote* 命令提示符下執行良好 - 應用程序啟動。此外,將其複製到桌面並點擊它 - 有效。

_* .sh 文件包含“export DISPLAY=:0”行,因為它首先用於通過 ssh 啟動以啟動 GUI 應用程序。我評論了它,看看這是否會改變這裡的任何東西,它沒有。

編輯:所以我現在已經在*~/.config/autostart中手動製作了一個**.desktop*文件- 注意我在 UI 中點擊時在該文件夾中創建的 .desktop 文件,如上所述。在我的文件中,我指定了啟動我的 .sh 腳本的路徑等,並將一個額外的選項設置為 true:“終端”,它指定自動啟動程序應該在終端中執行。這樣做是為了向我展示——是的,確實,一些東西在啟動/載入桌面環境後啟動,因為終端是可見的,即我的自動啟動文件不會被忽略。但是我的 .sh 腳本中的“echo”命令沒有顯示在那個終端上,我的單聲道應用程序也沒有啟動。如果我然後打開另一個遠端外殼,並複制+粘貼我在“Exec”下的自動啟動 .desktop 文件中給出的路徑,它會按預期啟動我的應用程序 - 所以路徑是正確的。

那麼,那裡發生了什麼?LXQt 桌面顯然找到了我的文件,嘗試自動啟動,但它什麼也沒做。可能的原因?我想(不知道這一切是如何在幕後工作的),也許mono / GUI還沒有準備好,即使桌面載入了,出於一些有趣的原因,我放了一個迴聲“睡覺……”,睡眠30秒,在我的 .sh 文件中呼叫應該自動啟動的單聲道應用程序之前,回顯“呼叫單聲道應用程序…”。在啟動時打開的終端中,這些都看不到,也無濟於事。

好的,它有效。除了注意到以下差異之外,我沒有非常準確的答案來回答為什麼自動啟動不起作用的確切問題:.sh 文件不起作用,應用程序直接起作用。

我現在做了什麼:

刪除自動啟動文件夾中的舊 .desktop 文件後,我創建一個:

$ nano ~/.config/autostart/MyAppName.desktop

插入這個:

[Desktop Entry]
Exec=mono /full/path/to/mono_c#/gui/app/myappname.exe
Path=/full/path/to/working/directory
Name=MyAppName
Type=Application
Version=1.0

注意:通過路徑變數找到的“Exec”的執行檔是單聲道,它的命令行參數是在單聲道框架上執行的“執行檔”的路徑。

這按預期工作。重新啟動-> 應用程序啟動。

編輯:請注意,對我來說,該應用程序沒有 Path 分配的工作目錄,這可能是我這邊的某個錯誤,但我會提到它,以防萬一。

現在我希望在拒絕在這里工作的原始 .sh 文件中完成一些事情。所以我暫時不會“接受”我自己的答案,以防有人能準確說出發生了什麼。

編輯 - 一些參考:

https://wiki.archlinux.org/index.php/Desktop_entries#File_example

https://specifications.freedesktop.org/desktop-entry-spec/desktop-entry-spec-latest.html#recognized-keys

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