我正在使用带有 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)。您可能想将最后两行重写为
如果没有自动启动的东西需要 xmonad。