Xmonadを含むUbuntu - 起動時にプログラムを実行する方法

Xmonadを含むUbuntu - 起動時にプログラムを実行する方法

私はUbuntu MateとXMonadを使用しています。ログイン後に起動時に何かを実行する方法がわからないようです。

デスクトップにログインしたら、特定のプログラム(Firefoxなど)を実行したいと思います。

それでは、単純なスクリプトを実行したいとしましょう。

/home/juser/.xmonad/autostart.sh

ファイルが実行可能ファイルに設定されます。

たくさん試してみました。 Ubuntu Mate設定の起動アプリケーションがxmonadで動作しないようです。

2番目の試みは、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

デスクトップは正常に起動しますが、スクリプトは実行されません。

動作しないもう1つの点は、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 execbash(1)を参照してください。

最後の2行を次のように書き直したい場合があります。

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

自動的に起動すると、xmonadは必要ありません。

おすすめ記事