我正在尝试使用xmodmap重新映射Alt/Super戴尔 L100 键盘上的键,但在获取键码时遇到问题。
例如,使用xev不会给我键码Alt
FocusOut event, serial 36, synthetic NO, window 0x4a00001,
mode NotifyGrab, detail NotifyAncestor
FocusIn event, serial 36, synthetic NO, window 0x4a00001,
mode NotifyUngrab, detail NotifyAncestor
KeymapNotify event, serial 36, synthetic NO, window 0x0,
keys: 122 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Run Code Online (Sandbox Code Playgroud)
对于Right …
我想知道是否有任何命令行工具可以返回当前的键盘布局。
我已经XkbLayout设置为us, ru.
更新: setxkbmap返回布局设置,而不是选定的布局。例如:
$ setxkbmap -print | grep xkb_symbols
xkb_symbols { include "pc+us+ru:2+inet(evdev)+capslock(grouplock)+terminate(ctrl_alt_bksp)" };
Run Code Online (Sandbox Code Playgroud)
无论当前布局是什么,它都会返回相同的结果。
有没有办法从命令行检索所有可用键盘布局和相关变体的列表?
我需要从 setxkbmap 列出所有要使用的有效布局/变体选择。
还有关于布局切换选项,有没有办法检索所有可用选项的列表(例如 grp:shift_caps_toggle ,...)
我知道与
setxkbmap -query
Run Code Online (Sandbox Code Playgroud)
我检索了我当前的列表,但我需要整个选项列表。
更新:
我被告知命令
man xkeyboard-config
Run Code Online (Sandbox Code Playgroud)
它向命令行提供所有信息。
此外,使用
man -P cat xkeyboard-config
Run Code Online (Sandbox Code Playgroud)
输出到标准输出,可以用脚本或 C 代码解析
我能找到的关于 XkbOptions 的所有信息是:
Option "XKbOptions" "grp:alt_shift_toggle"
Run Code Online (Sandbox Code Playgroud)
似乎我只能使用alt+shift组合来切换键盘布局,我可以使用任何其他键吗?
我有一台运行 Linux 的 Macbook Air。我想互相交换键盘两侧的alt和super键。
如何使用 cli 工具执行此操作?
更新
按照 Drav Sloan 的回答,我使用了以下内容:
keycode 64 = Alt_L
keycode 133 = Super_L
remove Mod1 = Alt_L
remove Mod4 = Super_L
add Mod1 = Super_L
add Mod4 = Alt_L
keycode 108 = Alt_R
keycode 134 = Super_R
remove Mod1 = Alt_R
remove Mod4 = Super_R
add Mod1 = Super_R
add Mod4 = Alt_R
Run Code Online (Sandbox Code Playgroud) 我有一台 ThinkPad W540。在它的键盘上,小键盘上方有四个多媒体键。其中两个键生成对应于键组合Win_L+L和Win_L+的键码(显然还有扫描码)E。换句话说,对于生成Win_L+的键L,
showkey --scancodes返回这个:
0xe0 0x5b 0x26 0xa6 0xe0 0xdb
Run Code Online (Sandbox Code Playgroud)
该setkeycodes命令需要未转义的单字节或转义的两字节序列来表示扫描代码,并且showkey给我的方式不止于此,因此我无法使用简单的setkeycodes <scancode> <keycode>.
我真的很感激任何提示,我可以将该键重新映射到其他东西,而不仅仅是复制键盘上现有的组合键之一。
由于 XKB 是 X 窗口的一部分,Wayland 中是否也使用了 XKB?如果是这样,是否有任何实用程序计划在某个时候取代 XKB?
在韦斯顿,setxkbmap 显然不起作用。当前推荐的更改键盘布局的方法是什么?
是否有允许以图形方式显示当前键盘布局的实用程序?
例如,当使用外语书写并且物理键盘仅指示本地语言(符号的位置等)时,这可能很有用。我想获得类似于以下内容的显示:

有没有办法定义键盘的特定物理键与某些操作的关联,独立于该键在任何布局中关联的字母?
实施例:在大多数默认侏儒快捷键关联,按压Alt+ Ctrl+T打开一个终端。但仅限于拉丁键盘布局。在希腊语布局中执行相同的物理操作不起作用,因为相关的字母是“希腊语T”,而不是“拉丁语T”。
因此,首先要切换到拉丁布局,然后按快捷键,这可能会令人沮丧,因为人们永远不确定是否一开始没有正确按下该键,因此可能会尝试多次直到意识到问题在布局中。
一种解决方案可能是在一个使用的所有布局中为相同的键定义相同的关联 - 但随后必须为所有快捷方式执行此操作,因此该解决方案不能很好地扩展。