xmonadを使用してログインしたときにコマンドを実行する

xmonadを使用してログインしたときにコマンドを実行する

xが起動するたびに実行したい簡単なスクリプトがあります。

#! /bin/sh
/home/kevin/.dropbox-dist/dropboxd &

chmod 755を実行して完全に実行可能です。そうだろう。いいえ。働く

スクリプトを.xsessionに設定すると、特定のデスクトップ(xmonad)を選択しない限り、ディスプレイマネージャ(SLiMとLightDMでテスト済み)は繰り返しログイン情報を要求します。 .xsessionファイルがない場合は、xmonadをデフォルトセッションにロードします。それにもかかわらず、スクリプトは実行されません。

私はこのスクリプトのバリエーションを試したことに言及する必要があります。 「exec xmonad」ステートメントを使用または使用せずに、ドロップボックスの代わりにデスクトップの背景をロードします。 xmonadは現在私にとって可能な唯一のセッションなので、まだセッションパラメータに基づいてswitch-caseステートメントを試していません。

私はそれを(execステートメントなしで).xprofileに入れ、/etc/X11/xinit/xinitrcに私のユーザーにsuを知らせる行を追加し、スクリプトを実行して終了します。また、これを.xinitrcにし、すべてのディスプレイマネージャを削除してxを始めました。すべての行がコメントアウトされたとき、またはファイル自体が削除/移動されたときにのみ消えるエラーが発生します。

ログイン後にスクリプトを実行し、実行され、予想されるすべてのタスクを実行できるため、スクリプト自体が大丈夫であることを知っています。

私はxmonadを使って独自のDebian 8を実行しています。私のシステムには他に何もインストールされていません。

答え1

xmonadを起動する前に実行したいコマンドを配置できます~/.xmonad/xmonad-session-rc

もしあれば、~/.xsessionそれはXセッション全体を開始することです。スクリプトが返されると、セッションは終了します。したがって、このファイルを使用するには、このファイルでxmonadを起動する必要があります。

#! /bin/sh
/home/kevin/.dropbox-dist/dropboxd &
exec xmonad

実行するには、.xsessionxmonadではなくディスプレイマネージャでカスタムセッションを選択する必要があります。

~/.xinitrc~/.xsessionシャットダウンと同様に、Xセッションは終了します。違いは、~.xsessionログインしたばかりのディスプレイマネージャで実行され、外部X/xinitrcで開始されたXセッションに対して実行されることです。startx

またはできますxmonadでプログラムを実行するstartupHookしかし、xmonadが再起動すると再実行されるという欠点があります。

関連情報