當我登入執行 SDDM 的 Lubuntu 時,在哪裡放置要執行的命令?

當我登入執行 SDDM 的 Lubuntu 時,在哪裡放置要執行的命令?

我正在嘗試從終端設置壁紙。腳本是:

pcmanfm-qt --set-wallpaper=$(ls /home/$USER/.local/share/wallpapers/*/* | shuf -n1)

這會更改壁紙,但我希望它在每次登入時自動運行。

嘗試將此腳本放入一些合適的文件中,例如/etc/X11/xinit/xinitrc 如果我獲取該文件,它會按預期運行,但登入時沒有任何反應。

關於每次登入時運行該行的位置有什麼幫助嗎? (最好在我的使用者資料夾下,而不是全域資料夾下)

我正在使用 Lubuntu 19.10 和簡單桌面顯示管理器 (SDDM)。

答案1

因為它是 SDDM:

查看線上說明頁sddm.conf, 有

SessionCommand=

啟動使用者會話時要執行的腳本的路徑。此腳本接收所選會話的「.desktop」檔案中「Exec」設定的值並執行它。預設值為“/etc/sddm/Xsession”。

因此,請建立該文件,或修改sddm.conf並新增您自己的文件,然後嘗試在此文件中執行某些操作。

出於調試目的,透過重定向到某個檔案/tmp/作為日誌檔案來寫入輸出是一種有用的技術。

因此,作為第一步,嘗試類似的事情

echo "Session file executed" >> /tmp/my.log

並查看登入時是否會執行某些操作。

答案2

sddm.conf 指定了幾個部分,其中您需要'SessionCommand'該部分的參數[Wayland]。預設腳本"/etc/sddm/wayland-session"檢查並取得使用者主目錄中的以下腳本檔案:

為了:

$HOME/.bash_profile, $HOME/.bash_login, $HOME/.profile.

您應該能夠將壁紙設定命令放在主目錄中的這三個檔案中的任何一個中,以便在登入時啟動它。

注意:從技術上講,我使用 Ubuntu 而不是 Lubuntu,因此可能存在系統差異,但這應該是兩個發行版的預設內容。

答案3

這是我找到的一篇文章:https://smallbusiness.chron.com/run-command-startup-linux-27796.html

  1. 將指令放入 crontab 檔案中。 Linux 中的 crontab 檔案是一個守護進程,它在特定時間和事件執行使用者編輯的任務。若要編輯該文件,請開啟終端並鍵入“sudo crontab -e”以在預設文字編輯器中開啟 crontab 檔案。在第一個可用行中,輸入“@reboot xxxx”,其中“xxxx”是您要執行的命令。儲存文件並退出。
  2. 將包含該指令的腳本放入 /etc 目錄中。使用您最喜歡的文字編輯器建立一個腳本,例如「startup.sh」。將檔案儲存在 /etc/init.d/ 目錄中。透過輸入「chmod +x /etc/init.d/mystartup.sh」來變更腳本的權限(使其可執行)。

  3. 使用文字編輯器編輯 /rc.local 腳本。在 lubuntu 中,它位於 /etc/rc.local 中。新增您想要執行的命令後(確保您以 root 身分執行此操作)儲存檔案並退出。這些命令將在下次啟動後運行。

相關內容