SDDM を実行している Lubuntu にログインしたときに実行されるコマンドをどこに配置すればよいですか?

SDDM を実行している Lubuntu にログインしたときに実行されるコマンドをどこに配置すればよいですか?

ターミナルから壁紙を設定しようとしています。スクリプトは次のとおりです。

pcmanfm-qt --set-wallpaper=$(ls /home/$USER/.local/share/wallpapers/*/* | shuf -n1)

これにより壁紙が変更されますが、ログインするたびに自動的に実行されるようにしたいと思います。

このスクリプトを適切なファイルに配置しようとしましたが、/etc/X11/xinit/xinitrc ファイルをソースすると期待どおりに実行されますが、ログイン時に何も起こりません。

ログインするたびに実行される行をどこに配置すればよいか教えてください。(できればグローバルではなく、ユーザー フォルダーの下に配置してください)

私は、Simple Desktop Display Manager (SDDM) を搭載した Lubuntu 19.10 を使用しています。

答え1

SDDMなので:

のmanページを見るとsddm.conf、そこには

SessionCommand=

ユーザー セッションを開始するときに実行するスクリプトのパス。このスクリプトは、選択したセッションの「.desktop」ファイルの「Exec」設定の値を受け取って実行します。デフォルト値は「/etc/sddm/Xsession」です。

したがって、そのファイルを作成するか、sddm.conf独自のファイルを変更して追加し、このファイルで何かを実行してみてください。

デバッグの目的で、/tmp/ログファイルとして何らかのファイルにリダイレクトして出力を書き込むことは便利な手法です。

最初のステップとして、次のようなことを試してみてください

echo "Session file executed" >> /tmp/my.log

ログイン時に何かが起こるかどうかを確認します。その後、壁紙コマンドを追加してみてください。

答え2

sddm.conf は、必要なセクション'SessionCommand'のパラメータを含むいくつかのセクションを指定します[Wayland]。 にあるデフォルトのスクリプトは、"/etc/sddm/wayland-session"ユーザーのホーム ディレクトリにある次のスクリプト ファイルをチェックしてソースします。

順番に:

$HOME/.bash_profile, $HOME/.bash_login, $HOME/.profile.

ログイン時に壁紙設定を有効にするには、ホーム ディレクトリ内のこれら 3 つのファイルのいずれかに壁紙設定コマンドを配置する必要があります。

注: 厳密に言うと、私は Lubuntu ではなく Ubuntu を使用しているので、システムの違いがあるかもしれませんが、これは両方のディストリビューションでほぼデフォルトのものになるはずです。

答え3

私が見つけた記事は次のとおりです:https://smallbusiness.chron.com/run-command-startup-linux-27796.html

  1. コマンドを crontab ファイルに入力します。Linux の crontab ファイルは、特定の時間やイベントでユーザーが編集したタスクを実行するデーモンです。ファイルを編集するには、ターミナルを開いて「sudo crontab -e」と入力し、crontab ファイルをデフォルトのテキスト エディターで開きます。最初の使用可能な行に「@reboot xxxx」と入力します。「xxxx」は実行するコマンドです。ファイルを保存して終了します。
  2. コマンドを含むスクリプトを /etc ディレクトリに置きます。お気に入りのテキスト エディタを使用して、「startup.sh」などのスクリプトを作成します。ファイルを /etc/init.d/ ディレクトリに保存します。「chmod +x /etc/init.d/mystartup.sh」と入力して、スクリプトの権限を変更します (実行可能にするため)。

  3. テキスト エディターを使用して /rc.local スクリプトを編集します。lubuntu では、/etc/rc.local にあります。実行したいコマンドを追加したら (必ず root として実行してください)、ファイルを保存して終了します。コマンドは次回の起動後に実行されます。

関連情報