Dell Vostro 笔记本电脑 - 分配特殊键

Dell Vostro 笔记本电脑 - 分配特殊键

Dell Vostro 笔记本电脑具有三个特殊按键。有适用于 Windows 的戴尔软件“quickset”,允许为这些键分配操作。但对于 Linux 来说似乎没有办法识别和分配按键。然而,其中一个“设置”键可以工作 - 它可以打开 xfce 中的“开始”菜单(也许 kde5 也是如此)。

我能否以某种方式识别这些特殊键并分配它们,例如,该行中的正确键用于关闭/打开显示器?

右上角

答案1

为了映射罕见或自定义键绑定,您需要手动编辑xmodmap并确保每次 X 启动时它都会启动。

如果西夫不工作,你也可以运行showkey --keycodes 当我运行showkey --keycodes它返回一个错误

无法获取引用控制台的文件描述符

所以我必须运行showkey --ascii并使用第一列号,在本例中是十进制数 97 a 97 0141 0x61将其转换为十六进制数 它返回了键 a 的确认且正确的值 61,这就是 xev 返回的值,如下所示。

现在启动 X 会话,只需登录到 xfce 桌面环境并运行 xev。将弹出一个小窗口,终端将开始输出从键盘接收到的每个按键交互的数据。

这是当我按下 a 键和释放该键时 xev 生成的输出。

KeyPress event, serial 48, synthetic NO, window 0x2400001,
    root 0x13e, subw 0x0, time 5887747, (622,717), root:(633,745),
    state 0x0, keycode 38 (keysym 0x61, a), same_screen YES,
    XLookupString gives 1 bytes: (61) "a"
    XmbLookupString gives 1 bytes: (61) "a"
    XFilterEvent returns: False

KeyRelease event, serial 48, synthetic NO, window 0x2400001,
    root 0x13e, subw 0x0, time 5887843, (622,717), root:(633,745),
    state 0x0, keycode 38 (keysym 0x61, a), same_screen YES,
    XLookupString gives 1 bytes: (61) "a"
    XFilterEvent returns: False

现在,当按下未映射的键时,它将在键码编号后返回 NoSymbol 值。

每次识别 NoSymbol 键时,请记下键码编号。

KeyRelease event, serial 28, synthetic NO, window 0x3400001,
    root 0x38, subw 0x0, time 636666629, (158,102), root:(832,903),
    state 0x10, keycode 164 (keysym 0x0, NoSymbol), same_screen YES,
    XLookupString gives 0 bytes:  ""

一旦您识别并记下所有返回 NoSymbol 的键码,

进入

$ xmodmap -pke > xmodmap.conf

这会将当前键盘映射写入 xmodmap.conf。

现在您必须编辑 xmodmap.conf 并分配一个XF86键盘符号到键码。

只要不使用,任何免费的 XF86 键盘符号都可以。

keycode 164 = XF86Music

保存编辑后的 ​​xmodmap.conf 文件

每次 X 运行时将其添加到自动启动。

echo 'xmodmap xmodmap.conf' >> ~/.xinitrc

您可以输入 xmodmap xmodmap.conf 绕过重新启动的需要,然后立即重新加载 xmodmap 并享受新映射的键盘按键。

相关内容