如何更改键盘上“PowerOff”键的映射?

如何更改键盘上“PowerOff”键的映射?

我买了华硕 ROG G551JM 笔记本电脑,经证实兼容 Ubuntu。这台电脑的键盘设计不当,“Poweroff”键是一个普通键,放在了通常有“End”键的位置。这台电脑其他方面都很好,所以我买了它,并假设我能以某种方式“修复”这个问题,即将 PowerOff 按钮重新映射到“End”键上。

关机按钮错误(ASUS G551JM): 华硕 G551JM

通常有一个«End»键(华硕 N56VZ): 华硕 N56VZ

“PowerOff”按钮事件由设备产生/dev/input/event2: Power Button(如 所报告evtest),代码为 116(示例行来自evtestEvent: time 1422895638.246142, type 1 (EV_KEY), code 116 (KEY_POWER), value 1

该键对于 X 服务器也是可见的,最终 Ubuntu 可以将按键识别为PowerOff键并启动“再见用户 Adam...”半透明对话框,确认我确实关闭计算机的意愿。

问题是,将 PowerOff 按键与显示确认对话框的例程绑定的绑定在 dconf-editor 下不可见,而且我不知道在哪里可以找到它。

谁能告诉我在哪里可以更改(或删除)PowerOff 键的默认绑定???

这应该是件容易的事。


编辑于2016年9月21日:

有一种方法可以永久禁用对话框,请参阅如何修改电源按钮的选项?。我希望禁用电源按钮后,可以将其重新分配给其他按钮。

答案1

我能够在 Ubuntu 18.04 LTS 和 Ubuntu 16.04 LTS 上的 ASUS N751JK 上运行它(在两种情况下都使用 Unity 桌面环境进行测试,在 18.04 中使用 KDE Plasma 进行测试):

  1. 首先,设置动作“关闭电源”按钮至nothing

    统一

    就像在回答中提到的那样约翰诺·菲埃拉

    gsettings set org.gnome.settings-daemon.plugins.power button-power "nothing"
    

    或者sudo apt install dconf-tools,使用dconf-editor来改变org.gnome.settings-daemon.plugins.power属性(如所述这里)。需要重新启动或注销才能使其正常工作。

    桌面环境

    “系统设置”, 选择“能源管理”选项卡“硬件”部分,然后选择“节能”标签,向下滚动,查找“按下电源按钮时”下拉列表并将其值更改为“没做什么”。 点击“申请”按钮使更改生效。

    节能

  2. 安装工具

    sudo apt install xdotool
    

    这将允许我们触发关键事件。

  3. 下一步是触发“结尾”按下按键“关机”按钮按下。

    Ubuntu 18.04

    创建/etc/acpi/events/power包含以下内容的文件:

    event=button/power
    action=/etc/acpi/power.sh "%e"
    

    并创建/etc/acpi/power.sh包含以下内容的脚本:

    #!/bin/sh
    xdotool key End
    

    并添加执行权限:

    sudo chmod +x /etc/acpi/power.sh
    

    Ubuntu 16.04

    用于处理的备份 ACPI 脚本“关闭电源”按钮的事件:

    sudo cp /etc/acpi/powerbtn.sh /etc/acpi/powerbtn.sh.backup
    

    然后编辑它,找到以下内容:

    # 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
    
  4. 为了应用这些更改,应该运行:

    sudo acpid restart
    

    谢谢亚当可以acpid在用户登录时(系统启动时)自动重启。因此,sudo acpid restart每次重启后,无需在终端中手动操作,只需添加以下行:

    session optional    pam_exec.so /usr/sbin/acpid restart
    

    到文件末尾/etc/pam.d/common-session

答案2

这应该可以解决问题。

在终端输入:

gsettings set org.gnome.settings-daemon.plugins.power button-power "nothing"

相关内容