以下脚本:
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登录,则会运行它,但这与我希望它运行的时间完全相反。
这一定意味着,当X会话登录时,可能根本没有调用/etc/profile?我怎么能让它运行呢?我的橱窗经理是肉桂。
更新:我将脚本移到了/etc/X11/Xsession.d/,现在它运行起来还为时过早,因为xinput map-to-output还没有正确工作,或者在脚本执行后被覆盖。
更新2:在~/..bashrc中放置脚本可以工作,但是只有在启动终端之后才能工作。这让我发疯了
发布于 2023-05-04 17:55:28
在debian系统上,创建一个自定义.xsession文件,并将其放在用户登录的主目录中,然后是自定义X命令,然后是exec {yourwindowmanager}。
应要求编辑,即
xinput map-to-output 12 HDMI-1
exec gnome-sessionhttps://unix.stackexchange.com/questions/744861
复制相似问题