次のスクリプト:
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/profile
Xセッションがログインしたときにまったく呼び出されなかったことを意味しますか?どのように動作させることができますか?私のウィンドウマネージャは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