我有一台5岁的笔记本电脑,我认为触屏开始变小了,因为我的光标有时会闪烁,窗户会突然移动等等,就像我的笔记本电脑被附了一样。它是在Ubuntu20.04中开始的,就在我重新安装Ubuntu22.04之前,问题一直存在,所以我不认为操作系统是罪魁祸首;我非常肯定触摸屏。
我试过了
xinput disable 5
但我得到
WARNING: running xinput against an Xwayland server. See the xinput man page for details.
而且它也不禁用触摸屏。
我试过:
modprobe -r hid_multitouch
但这只禁用了部分触摸屏(而不是触摸屏)功能。
那么,在Ubuntu22.04 (Wayland)的新安装上禁用触摸屏的正确方法是什么呢?谢谢。
发布于 2022-06-04 10:35:05
我遵循这条线并创建了一些脚本,这些脚本可以重新安装ubuntu22.04。
我不知道如何使awk的匹配函数工作,所以我只使用@meuh和@JinnKo中的代码来创建一个非awk版本,该版本可以禁用/切换给定一个关键字的多个设备。
首先,确保安装了evtest:
sudo apt install evtest
我有两个文件,一个是打开和关闭触摸屏,另一个是在启动时总是禁用它。
#!/bin/bash
# This toggles my touchscreen
#search for "Touchscreen" or something like that in /proc/bus/input/devices to make sure you're disabling what you want to disable.
path_for_temp_files="/ANY_PATH_YOU_WANT_TO_STORE_SOME_PID_FILES/"
regex='event([0-9]+)'
DEVICE="Touchscreen"
if [ -r "${path_for_temp_files}touchscreen-evtest0.pid" ]; then
kill_these_files=("${path_for_temp_files}"touchscreen-evtest*)
for i in "${kill_these_files[@]}"; do
echo "kill" $(cat "${i}")
sudo kill $(cat "${i}")
sudo rm "${i}"
done
else
filename='/proc/bus/input/devices'
inside=0
events=()
while read line; do
if [[ $line =~ $DEVICE ]]; then
inside=1
fi
if [[ $line =~ $regex ]]; then
if [[ "$inside" -eq 1 ]]; then
events+=("${BASH_REMATCH[1]}")
fi
inside=0
fi
done < $filename
numevents=${#events[@]}
for (( i=0; i<${numevents}; i++ )); do
sudo evtest --grab "/dev/input/event${events[$i]}" > /dev/null &
pid=$!
echo $pid > "${path_for_temp_files}touchscreen-evtest${i}.pid"
echo "/dev/input/event${events[$i]} running on pid ${pid}"
done
fi
#!/bin/bash
# This disables my touchscreen
#search for "Touchscreen" or something like that in /proc/bus/input/devices to make sure you're disabling what you want to disable.
path_for_temp_files="/ANY_PATH_YOU_WANT_TO_STORE_SOME_PID_FILES/"
regex='event([0-9]+)'
DEVICE="Touchscreen"
if [ -r "${path_for_temp_files}touchscreen-evtest0.pid" ]; then
kill_these_files=("${path_for_temp_files}"touchscreen-evtest*)
for i in "${kill_these_files[@]}"; do
echo "kill" $(cat "${i}")
sudo kill $(cat "${i}")
sudo rm "${i}"
done
fi
filename='/proc/bus/input/devices'
inside=0
events=()
while read line; do
if [[ $line =~ $DEVICE ]]; then
inside=1
fi
if [[ $line =~ $regex ]]; then
if [[ "$inside" -eq 1 ]]; then
events+=("${BASH_REMATCH[1]}")
fi
inside=0
fi
done < $filename
numevents=${#events[@]}
for (( i=0; i<${numevents}; i++ )); do
sudo evtest --grab "/dev/input/event${events[$i]}" > /dev/null &
pid=$!
echo $pid > "${path_for_temp_files}touchscreen-evtest${i}.pid"
echo "/dev/input/event${events[$i]} running on pid ${pid}"
done
然后,我跟随这个答案在启动时作为root运行。
发布于 2023-03-27 03:40:53
我发现上面的任何一个都没有用(没有触摸屏设备)。因此,我从Wayland转到X11,然后运行xinput disable 11
,其中11是一个指点设备(xinput ):
id=11⎜2AF2 2514:0004F3:2AF2
id=13⎜SYNA32A0:0006CB:⎜14小鼠
id=14⎜SYNA32A0:0006CB:⎜14 Touchpad⎜
ELAN和SYNAptics是两种指针芯片类型。我猜伊兰是触摸屏。
要切换到X11,当您输入登录名时,登录页面右下角会出现一个设备。单击它并选择X11。
https://askubuntu.com/questions/1411307
复制相似问题