如何更改键盘上«PowerOff»键的映射?
我买了ROG G551JM华硕笔记本电脑,它被certificate是兼容Ubuntu的。 计算机的键盘设计不合理,“Poweroff”键是普通键,放在现场,通常会找到“结束”键。 计算机是好的,所以我买了假设,我能够以某种方式“修复”问题,即将PowerOff按钮重新映射到“结束”键。
PowerOff按钮出错(华硕G551JM):
通常有一个«End»键(华硕N56VZ):
“PowerOff”按钮事件由/dev/input/event2: Power Button
设备(由evtest
报告)生成,代码为116(来自evtest
示例行: Event: time 1422895638.246142, type 1 (EV_KEY), code 116 (KEY_POWER), value 1
)
X服务器也可以看到密钥,最终Ubuntu可以将按键识别为PowerOff
密钥并启动“Goodbye user Adam …”半透明对话框,确认我实际关闭计算机的意愿。
问题是绑定PowerOff键的绑定与显示该确认对话框的例程在dconf-editor下是不可见的,我没有提示在何处找到它。
任何人都可以告诉我,在哪里更改(或删除)PowerOff键的默认绑定???
它应该是容易的事情。
编辑21.IX.2016:
有一种方法可以永久禁用该对话框,请参阅如何修改电源按钮的选项? 。 我希望在禁用电源按钮后,可以将其重新分配给其他东西。
我能够在华硕N751JK和Ubuntu 16.04 LTS上运行它:
-
首先,将“关机”按钮的动作设置为Johano Fierra的回答中
nothing
提到的内容 :gsettings set org.gnome.settings-daemon.plugins.power button-power "nothing"
或者
sudo apt install dconf-tools
并使用dconf-editor
执行此操作(如此处所述)。 需要重新启动或注销才能使其正常工作。 -
安装xdotool :
sudo apt install xdotool
这个将允许我们触发关键事件。
-
备份ACPI脚本用于处理“关闭电源”按钮的事件:
sudo cp /etc/acpi/powerbtn.sh /etc/acpi/powerbtn.sh.backup
-
编辑
etc/acpi/powerbtn.sh
脚本,找到以下内容:# If logind is running, it already handles power button presses; desktop # environments put inhibitors to logind if they want to handle the key # themselves.
并修改下面的代码,看起来像:
if pidof systemd-logind >/dev/null; then xdotool key End exit 0 fi
当桌面会话激活时,它将触发“结束”按钮并退出并退出。
-
为了应用这些更改,应该运行:
sudo acpid restart
不幸的是,这种方法的缺点是每次系统重启后都需要手动运行sudo acpid restart
。 它在系统启动时自动无法正常工作(虽然存在acpid
进程),看起来像这个过时的主题中描述的内容 。
我尝试了不同的方法在/etc/rc.local
中自动重启acpid
,或者在一个单独的bash脚本中指定为LightDM的 session-setup-script
,使用sleep
或at
命令进行不同的组合。 但没有运气。 可能有一些错误阻止它正常启动。 如果有人会为此找到解决方法,那将非常有用……但是,我想,这是另一个问题。
2017年1月21日更新
感谢Adam ,当用户登录时,可以自动重启acpid
。因此,每次sudo acpid restart
,终端中的手动sudo acpid restart
,请添加以下行:
session optional pam_exec.so /usr/sbin/acpid restart
到/etc/pam.d/common-session
文件的末尾。
我确认它也适用于华硕N751JK和华硕GL552VW。
这应该可以解决问题。
输入终端:
gsettings set org.gnome.settings-daemon.plugins.power button-power "nothing"