Startup
帶有 Xmonad 的 Ubuntu - 如何在啟動時執行程序
我正在使用帶有 XMonad 的 Ubuntu Mate。我似乎無法理解登錄後如何在啟動時執行某些東西。
我希望在登錄桌面時執行一些程序,例如 Firefox。
現在假設我只想執行一個簡單的腳本:
/home/juser/.xmonad/autostart.sh
該文件被設置為執行檔。
我已經嘗試了很多東西。來自 Ubuntu Mate 設置的啟動應用程序顯然不適用於 xmonad。
我嘗試的第二件事是將命令放在我的 .xsessionrc 文件的末尾,在執行 xmonad 之後。我的 .xsessionrc 文件:
#!/bin/bash xrdb -merge .Xresources stalonetray & feh --bg-scale /usr/share/backgrounds/cosmos/sombrero.jpg & udiskie & xfce4-power-manager & xrandr --auto --output HDMI-1 --primary --left-of VGA-1 & # Firefox PulseAudio fix pulseaudio --start --exit-idle-time=-1 & compton -bCG --active-opacity 1.0 --shadow-ignore-shaped & if [ -x /usr/bin/nm-applet ] ; then nm-applet --sm-disable & fi exec xmonad exec /home/juser/.xmonad/autostart.sh #THIS IS NOT WORKING
桌面啟動成功,但我的腳本沒有執行。
另一件不起作用的事情是在 xmonad.hs 文件中使用 SpawnOnce。類似的東西(我在這裡粘貼了我的整個文件:https ://pastebin.com/yUXjbgva ):
... import XMonad.Util.SpawnOnce myConfig = docks defaultConfig ... , startupHook = myStartupHook ... myStartupHook = do spawnOnce "/home/juser/.xmonad/autostart.sh" ...
我的腳本與前面的範例一樣被忽略。所以我放棄了 SpawnOnce 指令。
我還有其他選擇嗎?我究竟做錯了什麼?
exec xmonad
shell 腳本中的行將執行腳本的 shell替換為 xmonad 程序。所以沒有人可以執行下一行。鍵入help exec
bash shell,或參見bash
(1)。您可能想將最後兩行重寫為
/home/juser/.xmonad/autostart.sh & exec xmonad
如果沒有自動啟動的東西需要 xmonad。