저는 Ubuntu Mate와 XMonad를 사용하고 있습니다. 로그인 후 시작 시 무언가를 실행하는 방법을 알 수 없는 것 같습니다.
데스크탑에 로그인했을 때 특정 프로그램(예: Firefox)을 실행하고 싶습니다.
이제 간단한 스크립트를 실행하고 싶다고 가정해 보겠습니다.
/home/juser/.xmonad/autostart.sh
파일이 실행 파일로 설정됩니다.
나는 많은 것을 시도했습니다. Ubuntu Mate 설정의 시작 응용 프로그램이 xmonad에서 작동하지 않는 것 같습니다.
두 번째로 시도한 것은 xmonad를 실행한 후 .xsessionrc 파일 끝에 명령을 넣는 것이었습니다. 내 .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 지시문을 포기했습니다.
다른 옵션이 있나요? 내가 뭘 잘못했나요?
답변1
exec xmonad
쉘 스크립트의 이 줄바꾸다xmonad 프로세스를 사용하여 스크립트를 실행하는 쉘입니다. 그래서 누구도 다음 줄로 달려갈 수 없습니다. bash 쉘을 입력 help exec
하거나 bash
(1)을 참조하십시오.
마지막 두 줄을 다음과 같이 다시 작성하고 싶을 수도 있습니다.
/home/juser/.xmonad/autostart.sh &
exec xmonad
자동으로 시작하면 xmonad가 필요하지 않습니다.