AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 1301821
Accepted
undercat
undercat
Asked: 2020-12-22 05:22:08 +0800 CST2020-12-22 05:22:08 +0800 CST 2020-12-22 05:22:08 +0800 CST

无法使用 HWDB 重新映射 Microsoft 键盘上的键

  • 772

我正在尝试使用 HWDB 在我的 Microsoft 有线键盘 600 上重新映射LCtrl,CapsLock但无论出于何种原因,系统都看不到我所做的更改。

这就是我的hwdb规则的样子:

evdev:input:b*v045Ep07F8*
 KEYBOARD_KEY_3a=leftctrl
 KEYBOARD_KEY_1d=capslock

供应商和型号代码来自lsusb并在/sys/devices/pci0000:00/*

将配置文件复制到 后,在键盘配置中/etc/udev/hwdb.d运行systemd-hwdb update和发出没有任何更改。udevadm trigger

我也试过:

  • 重新启动 - 没有帮助。
  • 将总线明确指定为0003— 没有帮助。
  • 确认evtest我使用的键码对我的键盘是正确的——是的,这些键码是正确的。
  • 确认已应用的规则已在列表中列出sudo udevadm info /sys/class/input/eventX——是的,新规则已列出,这应该意味着它们已成功应用?然而,这些键的行为方式与以前相同。
E: KEYBOARD_KEY_1d=capslock
E: KEYBOARD_KEY_3a=leftctrl
E: ID_USB_DRIVER=usbhid

当我evdev:atkbd:dmi:*用作设备标识符时,更改已正确应用于我的笔记本电脑键盘,因此我知道我用来重新映射键的规则和过程应该是正确的,这一定是标识符错误的问题(尽管我已经检查了五次)。

任何帮助将不胜感激。

keyboard systemd udev 20.04 microsoft-keyboard
  • 1 1 个回答
  • 335 Views

1 个回答

  • Voted
  1. Best Answer
    undercat
    2021-01-13T18:49:52+08:002021-01-13T18:49:52+08:00

    原来我指定了错误类型的扫描码。使用 获取键代码时evtest,您会得到以下输出(假设按下左移按钮):

    ...
    Event: time xxx.xxx, type 4 (EV_MSC), code 4 (MSC_SCAN), value 700e1
    Event: time xxx.xxx, type 1 (EV_KEY), code 42 (KEY_LEFTSHIFT), value 0
    ...
    

    我使用的代码是标准密钥代码 (42)。但事实证明,这是错误的。

    您应该在 hwdb 文件中指定的实际代码是该行的扫描码MSC_SCAN(在本例中,它是700e1,前面是单词value)

    这有效:

    evdev:input:b*v045Ep07F8*
     KEYBOARD_KEY_70039=leftctrl
     KEYBOARD_KEY_700e0=capslock
    

    参考:Rebinding Keyboard Keys @ altlinux.org(它是俄语,但它是我在网上找到的最全面的文章,强调了细微差别)

    我清楚地记得在我的笔记本电脑上使用基本的扫描码并且它们可以正常工作。我不太确定为什么会这样。也许它们碰巧与EV_MSC某些类型的键盘上的扫描码匹配。

    • 1

相关问题

  • 如何在 Compiz->Commands 中获得超过 12 个命令?[关闭]

  • 输入语言切换键只接受 shift-alt 而不是 alt-shift [关闭]

  • 如何在键盘上映射未映射的键?[关闭]

  • 如何重置我的键盘布局?

  • 命令列出启动时启动的服务?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve