Startup

帶有 Xmonad 的 Ubuntu - 如何在啟動時執行程序

  • November 18, 2018

我正在使用帶有 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 xmonadshell 腳本中的行將執行腳本的 shell替換為 xmonad 程序。所以沒有人可以執行下一行。鍵入help execbash shell,或參見bash(1)。

您可能想將最後兩行重寫為

/home/juser/.xmonad/autostart.sh &
exec xmonad

如果沒有自動啟動的東西需要 xmonad。

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