Linux 下怎么更改键盘布局?

2017-09-15 22:02:04 +08:00
 searene

在淘宝上买了一个欧版 thinkpad 键盘,Z 左边的键标了三个符号:分别是><|,如下图所示。

可见这个按键可以输出三种符号,试了一下,不按Shift的时候输出的是<,按了Shift输出>,那问题来了,如果我想输出|怎么办?

顺便说一下,用的是 arch linux,在 windows 下面是正常的,按 Shift + 这个键输出的是|,这就是我想要的结果,但是在 linux 下面不是这样的,有人知道怎么调整吗?

6167 次点击
所在节点    Linux
4 条回复
TuringGunner
2017-09-15 22:09:21 +08:00
Xmodmap
param
2017-09-15 23:37:11 +08:00
Arch wiki 有讲
redsonic
2017-09-15 23:50:37 +08:00
字符终端的布局选择在 /etc/sysconfig/keyboard
里面有个 XXX.map.gz 的配置文件,可以到 /usr/share/kbd/keymap 里面去找,然后解压->修改->打包。

X11 下的键盘布局是 xkb 管理的。 比字符终端的复杂一些
先用 setxkbmap -print 看一下配置,比如
xkb_keymap {
xkb_keycodes { include "evdev+aliases(qwerty)" };
xkb_types { include "complete+numpad(mac)" };
xkb_compat { include "complete" };
xkb_symbols { include "macintosh_vndr/apple(alukbd)+macintosh_vndr/us+inet(evdev)+terminate(ctrl_alt_bksp)+macintosh_vndr/apple(alupckeys)" };
xkb_geometry { include "macintosh(applealu_ansi)" };
};
 
xkb 的分层的:scancode,keycode,symbol 每一层都能修改达到目的,但一般改 symbol 就好。
找到你当前的 symbol 比如 macintosh_vndr/apple(alukbd) 就在 /usr/share/X11/xkb/symbols/macintosh_vndr/apple,编辑 xkb_symbols "alukbd" {} 中的内容,具体怎么编辑可以看看这个 https://www.linux.com/news/creating-custom-keyboard-layouts-x11-using-xkb

另外还有两个调试工具:xev, 把鼠标放在框里面按键会显示调试信息,比如组合键状态和 symbol
一楼提到的 xmodmap,直接修改 keycode 到 symbol,也可以用参数-pk 直接打印出当前键盘布局全貌。
redsonic
2017-09-15 23:53:50 +08:00
补充一个更直观的查看布局的方法 ,xkbprint $DISPLAY mykeyboard.ps 直接生成 ps 图片

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/391081

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX