V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
searene
V2EX  ›  Linux

Linux 下怎么更改键盘布局?

  •  
  •   searene · 2017-09-15 22:02:04 +08:00 · 6362 次点击
    这是一个创建于 2626 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    keyboard

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

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

    4 条回复    2017-09-15 23:53:50 +08:00
    TuringGunner
        1
    TuringGunner  
       2017-09-15 22:09:21 +08:00 via iPhone
    Xmodmap
    param
        2
    param  
       2017-09-15 23:37:11 +08:00 via Android
    Arch wiki 有讲
    redsonic
        3
    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
        4
    redsonic  
       2017-09-15 23:53:50 +08:00
    补充一个更直观的查看布局的方法 ,xkbprint $DISPLAY mykeyboard.ps 直接生成 ps 图片
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2197 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 01:30 · PVG 09:30 · LAX 17:30 · JFK 20:30
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.