Ale*_*lex 16 linux keyboard xorg xfce keymap
由于咖啡事故,我的笔记本电脑键盘的一些数字停止工作。我曾经xmodmap
使用F1,F2等作为替换并将配置保存到~/.Xmodmap
.
然而,这导致了一些问题。
我并不总是在这台计算机上使用 X,并且不启动 Xxmodmap
不适用。
这会导致 X 需要更多时间来启动。
出于某种原因,它导致与更改的任何键无关的 XFCE 键盘快捷键xmodmap
停止工作(实际上,所有键盘快捷键都停止工作,除了窗口管理器快捷键)。自从我启动 X 几分钟后,XFCE 快捷方式又开始正常工作了!这种滞后不是很烦人,但也是一个问题。
我想在 X 启动之前操作系统会读取某种映射。没有办法改变那个映射吗?是否可以使用 X 工具更改键盘映射而不使用 X 工具?我使用 Debian 稳定版。
PS:很明显,文件的调用xmodmap .Xmodmap
上startx
的/etc/xdg/xfce4/xinitrc
。它的内容可以在这里找到。
FeR*_*eRD 25
Linux系统控制台绝对有自己的一套键盘映射,可以使用该工具从管理的kbd
包,特别是dumpkeys
和showkey
用于发现和loadkeys
负载在一个自定义映射。超级用户问题如何在 Linux 中更改控制台键盘映射?有一个关于如何使用这些工具的好信息的答案。
虽然这些工具确实允许您重新映射 Linux 控制台上的键,而不涉及xmodmap
或要求运行 X,但它们只会影响虚拟文本控制台上的键映射。这些更改在图形环境中绝对没有影响,因为 X 的 XInput/evdev 系统直接从输入设备读取并进行自己的处理。
因此,如果您希望xmodmap
通过在控制台上重新映射并将其应用于任何地方来避免使用,恐怕这行不通。事实上,你需要重新映射两个(使用控制台loadkeys
)和X11(使用类似的方法xmodmap
),到处使用相同的键盘布局。
解决xmodmap
缓慢(和错误,因为它的重新映射在使用布局切换的桌面环境中出现故障且不持久)的解决方案是根据您之前使用的任何布局定义一个全新的键盘布局,而不是应用运行时修改. 在 X 启动时,您将加载新的、重新映射的布局,而不是您现在使用的任何布局。(现在似乎这是在最近的 Ubuntu 以及其他发行版中可靠地修改键盘布局的唯一方法,因为它们xmodmap
不再有用。)
有关定义和使用自定义xkb
键盘布局的信息,请参阅:
两者都是今年(2014 年)写的,所以信息应该是最新的。Ubuntu wiki 信息应该适用于任何发行版,在大多数情况下,因为它们都使用xkb
X 中的系统。
实际上有一些方法可以在足够低的级别重新映射以应用于整个系统,无论是否为 X11,而且现在我们看到 Wayland 合成器的采用变得比以往任何时候都更加重要,这些合成器忽略了为 libinput 的重新映射公开 UI支持。
在它们到达控制台或 X11 和 Wayland 位于其上的 evdev API 之前,您基本上需要重新配置内核的输入层如何将原始扫描码转换为键码。
我知道有两种方法可以做到这一点:
修改hwdb
键盘的硬件数据库 ( ) 条目。udev 允许您通过将规则文件添加到/etc/udev/hwdb.d/
并触发数据库重建systemd-hwdb update
,然后通过udevadm trigger
.
这个 ArchiWiki 页面有完整的说明,并明确表示它适用于 X11 和控制台输入。
有一个名为evdevremapkeys的守护进程,它是专门为将 evdev 设备上的关键事件重新映射到不支持它们的 evdev 客户端(如 Wayland 合成器)的猴子补丁重新映射支持而编写的。
它基本上使用与 G15Daemon 等需要补偿非标准输入设备的用户空间驱动程序相同的方法。(打开 evdev 设备,吞下它打算重新映射的任何事件,这样在设备上侦听的其他任何东西都看不到它们,然后通过uinput
API发出更正的事件,以便从用户空间创建内核级输入设备。)