/etc/profile.d/のスクリプトはXログイン(debian)では実行されません。

/etc/profile.d/のスクリプトはXログイン(debian)では実行されません。

次のスクリプト:

name='ILITEK ILITEK-TP'
echo 'running touchscreens' | systemd-cat
ids=$(xinput --list |awk -Fid= "/$name/"'{print $2+0}')
echo 'after xinput' | systemd-cat
for id in $ids
do event=$(xinput list-props "$id" | awk -F'"' '/Device Node/{print $2}')
   path=$(udevadm info "$event" |
          awk -F/ '/DEVPATH=/{printf "%s \n",$7}')
   if [[ "$path" == *"1-5"* ]]; then
      screen='HDMI-2'
      #echo "$id $path $screen"
      xinput map-to-output $id $screen
   elif [[ "$path" == *"1-6"* ]]; then
      screen='HDMI-3'
      #echo "$id $path $screen"
      xinput map-to-output $id $screen
   fi
done

ユーザーが実行すると正常に動作します。ただし、Xセッションユーザーとしてログインして/etc/profile.d/も、入って終了するにもかかわらず実行されません.sh。一方、SSH経由でログインすると実行されますが、実行したい時点と正反対です。

これは、/etc/profileXセッションがログインしたときにまったく呼び出されなかったことを意味しますか?どのように動作させることができますか?私のウィンドウマネージャはCinnamonです。

更新:スクリプトをに移動したので、これは実行されますが、まだ正しく機能していないか、スクリプトの実行後に上書きされて/etc/X11/Xsession.d/早すぎるようです。xinput map-to-output

アップデート2:〜/ .bashrcにスクリプトを配置すると機能しますが、端末を起動した後にのみ可能です。これは私を狂わせる

答え1

Debian システムはカスタム .xsession ファイルを作成し、カスタム X コマンドの後に を使用してログインしたユーザーのホームディレクトリに配置しますexec {yourwindowmanager}

リクエストに応じて編集されました。

xinput map-to-output 12 HDMI-1
exec gnome-session

関連情報