ログイン時にGUIコマンドを実行するスクリプトの代替 - そうしないでください。

ログイン時にGUIコマンドを実行するスクリプトの代替 - そうしないでください。

私の主要なデータが存在しないので、目的のディレクトリ$HOMEcaja)からGUIファイルマネージャを起動し、それをローカル実行ディレクトリ(~/.local/bin)に入れる小さな(実行可能)スクリプトを作成しました。

#!/bin/bash
/usr/bin/caja /datadir

標準cajaコマンドを置き換えるには、スクリプトの名前が同じで、ローカルの実行可能ファイルへのパスがmy ~/.profile:に最初にリストされます。

if [ -d "$HOME/.local/bin" ] ; then
    PATH="$HOME/.local/bin:$PATH"
fi

これまではうまくいきますが、ログインするたびにデフォルトでファイルマネージャが開きます。セッションの保存が有効になっておらず、ディレクトリ内の他の実行可能ファイルが実行されていません(一部のechoスクリプトや他のGUIコマンドも試みました)。

この動作をどのように抑制できますか?

Debian 10でMATEをDEとして使用する(テスト)

答え1

cajaファイルマネージャだけでなくデスクトップシンボル(協会)。したがって、MATE セッションの開始時に実行されます。これは、適切なMATEセッションを開始するためには避けられないようです。

gnomeのnatuilusも同様です。


迅速で汚い解決策は、スクリプトに別の名前を付け、スクリプトにcajaログイン時にシンボリックリンク(Caja起動スクリプトの名前を付けてそれを指す)を生成させることです。ただし、デスクトップが実行されたら、シンボルリンクを削除します~/.bash_logout(家庭)。シェルはbashです)。

関連情報