[problem help] 如何在进入到睡眠(suspend)模式时自动禁用内置键盘 Resolved
Tofloor
poster avatar
robinyao
deepin
2024-11-22 18:32
Author

某L记16寸的“轻薄游戏本”,上盖比较薄,设置合盖进入睡眠状态(suspend,不是hibernate),然后扔包里,背包的时候由于包里的东西、或者我的脊椎骨,大概率会挤压到笔记本的上盖,然后就是屏幕压到键盘,触发系统唤醒;

结果就是笔记本在密闭的空间里狂飙,等我发现时已经烫的下不去手了。。。过机场安检时直接被摁着教育了10分钟😂

切到Win下进入睡眠状态,不论怎么按盖子,笔记本都睡得很安详。

所以求助论坛里的大神,是不是有什么方法,能在系统进入睡眠时,自动禁用内置键盘,比如自动执行 xinput disable xx

然后在唤醒时,自动恢复键盘状态 (xinput enable xx)?

confused

Reply Favorite View the author
All Replies
robinyao
deepin
2024-11-22 18:45
#1

补充:刚刚切到Ubuntu下试了一下挂起,也是压感唤醒😆

Reply View the author
C***[email protected]
deepin
2024-11-24 01:45
#2
Reply View the author
robinyao
deepin
2024-11-24 17:41
#3

我去试一下,多谢!like

Reply View the author
robinyao
deepin
2024-11-25 13:27
#4

感谢深友的建议,摸索了一下,解决办法分享在这里:

1、使用xinput查看本机输入设备:

$ xinput list

image.png

如上图,找到相应的键盘输入设备,记一下产品名称,比如我的笔记本上内置键盘是“ITE Device(8258)”

2、找到相应的设备总线路径:

$ grep . /sys/bus/usb/devices/*/product

image.png

如上图,找到和之前设备产品名称对应的总线路径,如 “/sys/bus/usb/devices/3-1/”

3、查看和修改该设备的电源唤醒设置:

$ cd /sys/bus/usb/devices/3-1/power
$ cat wakeup
enabled
$ sudo chmod 666 wakeup
$ sudo echo "disabled" > wakeup
$ sudo chmod 644 wakeup

进入睡眠模式,按笔记本键盘,发现已经无法唤醒了,成功!

4、使设置持久生效:

上述操作在重启系统后会失效,需要在系统启动时自动修改:

创建一个脚本文件:disable-internal-kb-wakeup

内容如下:

#!/bin/bash 

### BEGIN INIT INFO
# Provides:          internal-kb-wakeup
# Required-Start:
# Required-Stop:
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Description: Disable internal keyboard wakeup
### END INIT INFO

echo disabled > /sys/bus/usb/devices/3-1/power/wakeup

然后:

$ chmod 755 disable-internal-kb-wakeup
$ sudo cp disable-internal-kb-wakeup /etc/init.d/
$ sudo update-rc.d disable-internal-kb-wakeup defaults
Reply View the author
New Thread

Popular Ranking

Change

Popular Events

More
国际排名
WHLUG