lyd*_*ell 5 keyboard-layout xkb
我正在使用 xkb 创建我自己的键盘布局。不过,我有一个小问题。
key <AE04> {[ Shift_L ]};
key <AE07> {[ Shift_R ]};
key <LFSH> {[ comma , semicolon , bar ]};
key <RTSH> {[ period , colon , period ]};
modifier_map Shift { <AE04>, <AE07> };
Run Code Online (Sandbox Code Playgroud)
以上将shift键移动到其他键。为了使新的 shift 键在按下时实际执行某些操作,我必须添加该modifier_map行。该代码还在旧的 shift 键上放置了常规字符。到现在为止还挺好。
问题是,如果我按住旧的左移键并按下某个字符 - 比如说“a” - 我会得到“,A”。因此该键既可以用作逗号键,也可以用作 shift 键。后者是不希望的。同样的事情发生在正确的旧 shift 键上。事实上,它也发生在 control 和 alt 中。
我该如何解决这个问题?感觉就像我需要modifier_unmap什么。
运行后setxkbmap -print我意识到它pc已包含在符号列表中。该符号文件设置了常规修饰符,这是我不想要的。
之前,我已将自己的布局添加到/usr/share/X11/xkb/symbols目录和文件中/usr/share/X11/xkb/rules/evdev.xml。这使得我的布局出现在 GUI 中以选择键盘布局。
解决方案是从头开始制作键盘布局。不包含该文件的一种pc。pc然而,我需要很多标准键盘的东西。所以我从头到尾通读了该文件,选出了我需要的东西。
简而言之,从头开始创建布局基本上意味着:
setxkbmap -print到文件中。pc为我自己的文件名。xkbcomp -I$HOME/additional-include-folder file-from-step-one。我从这个优秀的指南中学到了这一点(更详细):http://hack.org/mc/writings/xkb.html。
| 归档时间: |
|
| 查看次数: |
1403 次 |
| 最近记录: |