Ada*_*ski 16 shortcut-keys unity 14.04
我购买了 ROG G551JM 华硕笔记本电脑,经证明与 Ubuntu 兼容。电脑键盘设计不良,“Poweroff”键是一个普通键,放置在通常可以找到“End”键的位置。否则电脑还好,所以我买它时假设我能够以某种方式“修复”问题,即将关机按钮重新映射到“结束”键。
关机按钮出错(ASUS G551JM):

通常有一个 «End» 键 (ASUS 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键并启动“再见用户 Adam...”半透明对话框,确认我将实际关闭计算机的意愿。
问题是将 PowerOff 按键与显示确认对话框的例程绑定的绑定在 dconf-editor 下不可见,我不知道在哪里可以找到它。
谁能告诉我,在哪里更改(或删除)PowerOff 键的默认绑定???
这应该是一件容易的事。
编辑 21.IX.2016:
有一种方法可以永久禁用该对话框,请参阅如何修改电源按钮的选项?. 我希望在禁用电源按钮后,可以将其重新分配给其他东西。
ezz*_*zze 12
我能够在 Ubuntu 18.04 LTS 和 Ubuntu 16.04 LTS(在这两种情况下使用 Unity 桌面环境和 18.04 中的 KDE Plasma 测试)中的华硕 N751JK 上运行它:
首先,将“关机”按钮的动作设置为nothing。
统一
就像Johano Fierra 的回答中提到的:
gsettings set org.gnome.settings-daemon.plugins.power button-power "nothing"
Run Code Online (Sandbox Code Playgroud)
或可替换地sudo apt install dconf-tools和使用dconf-editor改变org.gnome.settings-daemon.plugins.power属性(如描述在这里)。需要重新启动或注销才能使其工作。
凯德
转到“系统设置”,在“硬件”部分选择“电源管理”选项卡,然后选择“节能”选项卡,向下滚动,找到“按下电源按钮时”下拉列表并将其值更改为“什么都不做”。单击“应用”按钮以使更改生效。
安装xdotool:
sudo apt install xdotool
Run Code Online (Sandbox Code Playgroud)
这将允许我们触发关键事件。
下一步是在按下“关机”按钮时触发“结束”键按下。
Ubuntu 18.04
创建/etc/acpi/events/power包含以下内容的文件:
event=button/power
action=/etc/acpi/power.sh "%e"
Run Code Online (Sandbox Code Playgroud)
并创建/etc/acpi/power.sh具有以下内容的脚本:
#!/bin/sh
xdotool key End
Run Code Online (Sandbox Code Playgroud)
并为其添加执行权限:
sudo chmod +x /etc/acpi/power.sh
Run Code Online (Sandbox Code Playgroud)
Ubuntu 16.04
用于处理“关机”按钮事件的备份 ACPI 脚本:
sudo cp /etc/acpi/powerbtn.sh /etc/acpi/powerbtn.sh.backup
Run Code Online (Sandbox Code Playgroud)
然后编辑它,找到以下内容:
# If logind is running, it already handles power button presses; desktop
# environments put inhibitors to logind if they want to handle the key
# themselves.
Run Code Online (Sandbox Code Playgroud)
并修改下面的代码,使其看起来像:
if pidof systemd-logind >/dev/null; then
xdotool key End
exit 0
fi
Run Code Online (Sandbox Code Playgroud)为了应用这些更改,应该运行:
sudo acpid restart
Run Code Online (Sandbox Code Playgroud)
感谢Adam,acpid当用户登录时(在系统启动时)可以自动重启。因此,sudo acpid restart每次重新启动后,不要在终端中手动添加以下行:
session optional pam_exec.so /usr/sbin/acpid restart
Run Code Online (Sandbox Code Playgroud)
到/etc/pam.d/common-session文件末尾。
| 归档时间: |
|
| 查看次数: |
5334 次 |
| 最近记录: |