i3wmの自動起動でbashスクリプトでバックグラウンドコマンドを実行する

i3wmの自動起動でbashスクリプトでバックグラウンドコマンドを実行する

i3ウィンドウマネージャ(バージョン4)を設定していますが、デフォルトの自動起動を使用しているように見えたり失敗したりすることがありますexecexec_all(*)

i3_autostart.shだから私は必要なすべてを1つの整理された場所に追加するスクリプトを作成することにしました。これを行うのと似ているか、KDE独自GNOMEのフォルダがあります。

スクリプトは~/.config/i3/config次の行(**)を使用して呼び出されます。

exec_always --no-startup-id /home/beco/.config/i3/i3_autostart.sh

次に、デフォルトでは、自動起動したいすべてのプログラムを実行する関数を呼び出す自動起動スクリプトを入力します。例は次のとおりです。

Autostart()
{
    # why, o my?
    sleep 1

    # set keyboard bindings
    xkbcomp -w 0 /home/beco/.config/xkbmap_kde $DISPLAY

    # toggle touchpad
    /home/beco/bin/touchpad off 

    # set wallpaper
    feh --bg-scale /home/beco/Pictures/wallpaper/Stonehenge-Desktop-Wallpaper-i3help.png

    # clipboard
    parcellite

    # network manager
    nm-tray

    # why, o my?
    sleep 1

}

を除くすべてのプログラムが正常に起動しますnm-tray。いくつかのコマンドの組み合わせとスキルを試してみましたが、役に立ちませんでした。

私が見たことの問題は、nm-trayが前景を実行するのが好きですが、背景を実行する必要があり、私が知っている限り、コマンドラインで設定するオプションがないことです。だから私たちはbash施設を利用する必要があります。

私の試みは次のとおりです。

  1. シンプルな背景
    # network manager
    nm-tray &
  1. 否定しよう
    # network manager
    nm-tray &>/dev/null &
    disown $!
  1. ノーヘットと否定
    # network manager
    nohup nm-tray &>/dev/null &
    disown $!

nm-trayがまだ実行されていることを確認するために、自動起動スクリプト全体をバックグラウンドで実行中のままにしようとしました。exec_always --no-startup-id /home/beco/.config/i3/i3_autostart.sh &>/dev/null &

クリップボードのアイコンとキーボードのアイコンが表示されます。タッチパッドがオフに設定されています。しかし、nm-trayアイコンは機能しないと主張しています。

どんな提案がありますか?ありがとうございます。

@drbeco


(*) いくつかのバグレポートを読みましたが、この質問はこの問題を解決するためのものではありません。これは、問題がまだ存在している間に信頼できる優れた解決策を作成することです。

(**) 絶対に失敗しないラインだからexec_always気に入らない。

ベストアンサー1

バックグラウンドで実行を拒否する(または後で機能しない)唯一のプログラムは、端末が必要なプログラムです。
問題は、バックグラウンドで起動nm-trayしないため、まったく実行されないことです。したがって、この2行の終わりにアンパサンドを追加し(自分で分離されていない他の長期実行/持続プログラムを起動する場合は、アンパサンドを追加しますが、現在上記のリストにはないようです)、A disavowを追加します。スクリプトを実行するには、プログラムが完了するまでスクリプトをハングアップしないでください。parcellite


上記の例の代わりにこのブロックを試してください。

Autostart()
{
    # why, o my?
    sleep 1

    # set keyboard bindings
    xkbcomp -w 0 /home/beco/.config/xkbmap_kde $DISPLAY

    # toggle touchpad
    /home/beco/bin/touchpad off 

    # set wallpaper
    feh --bg-scale /home/beco/Pictures/wallpaper/Stonehenge-Desktop-Wallpaper-i3help.png

    # clipboard
    parcellite &

    # network manager
    nm-tray &

    # detach the started background programs
    disown
    # why, o my?
    #sleep 1

}

おすすめ記事