linux-创建自定义setxkbmap选项
作者:互联网
奇怪的是,这似乎应该已经做过:我想在键盘顶部交换1–0键上的数字和符号,以便:
>当我按下6键时,输入的是*而不是6.
>当我按Shift 6时,将显示数字6而不是*.
我还想进行其他一些修改,但是很快发现,在使用setxkbmap选项(例如caps:swapescape)之前,其他人已经完成了这些布局修改.
鉴于以上所述,这是一个三部分的问题:
>键盘顶部是否可以交换数字和符号?
>是否存在,有什么方法可以找到这种情况是否存在,而不必手动浏览/usr/share / X11 / xkb / rules /中的* .lst和* .xml文件?
>最后,如果我要为setxkbmap创建一个选项,那将是一种理想的方法,以及如何将我的选项回馈给社区?
至于问题3:
>我试图创建该选项而没有成功(setxkbmap默默地失败了,我什至对自己的方法没有信心).
>我找不到该项目的托管地.
>除了man setxkbmap和涉及该主题的各种博客文章之外,我都找不到任何有关此主题的文档.
解决方法:
问题2:
有关所有可用选项的列表,可以执行localectl list-x11-keymap-options.这似乎只为您提供选项本身,而不是说明,因此更好的方法可能是在XKB * .lst文件上执行以下操作:
for f in /usr/share/X11/xkb/rules/*.lst; do sed -ne '/^\! option$/{s///; :a' -e 'n;p;ba' -e '}' $f; done | sort -u
如果您正在寻找与交换号码有关的内容,可以附加|. grep -i num,显示使用numpad / keypad的几个选项.不幸的是,我认为所有布局都在与字母数字字符相关的模板中列出了数字,这意味着它们内置于区域布局本身(或在dvorak的情况下为变体).
问题1:
您可以采用三种方法.
使用xmodmap覆盖布局
您可以通过在家庭中创建一个.Xmodmap文件来覆盖映射来创建某种程度上通用的方法,如Arch Wiki here所述.
这是一个示例配置:https://github.com/karma0/layouts/blob/master/home/.Xmodmap
脚步:
>将.Xmodmap放到家里.
>将行xmodmap $HOME / .Xmodmap添加到您的.profile
一种快速,肮脏但灵活的方法:
>运行xkbcomp -xkb $DISPLAY xkbmap生成一个包含您当前配置的文件xkbmap.
>对其进行修改以匹配所需的配置.这是一个例子:
Original:
06001
Modified:
06002
>执行命令xkbcomp -w 0 xkbmap $DISPLAY加载新配置.
>使用xinitrc或类似命令获取要在启动时运行的命令.
修改布局并添加新的变体
>打开您喜欢的布局文件(可能在/usr/share / X11 / xkb / symbols下).在此示例中,我们将使用us文件.
>在文件中找到您喜欢的变体;如果您喜欢我,请选择workman-intl.
>假设您想复制workman-intl布局,则可以复制该部分,并像我在这里所做的那样对其进行修改(请注意,这是从intl模板复制/粘贴的,第一列和第二列只是交换了):
06003
The
xkb_symbols
line defines the name of your variation; theinclude
line borrows everything you need from the variation of your choice within the file (here, it’s theworkman-intl
variation in theus
layout). Then, the definitions you want are what follows.
4. Add your new definition to/usr/share/xkb/rules/base.xml
to the end of thevariantList
tag. Here’s the one I used:06004
>将新的变体和说明添加到! /usr/share/X11/xkb/rules/base.lst的变体部分为:
06005
>重新启动Xorg服务器.
>设置setxkbmap命令以使用新版本运行.这是本演示的示例:setxkbmap -layout us -variant workman-programmer -option
问题3:
您可以尝试一下,直到开始寻找位于xorg生态系统内的xkb文档,您才可以找到该文档.
最好的写法可能是这样的:
https://www.charvolant.org/doug/xkb/html/index.html
引用:
Before you read this, please understand that I never wanted to write this document, being grossly under-qualified, but I always wanted to read it, and this was the only way.
此外,这里还提供了链接列表,以开始学习xorg中xkb系统的所有复杂性:https://www.x.org/wiki/XKB/
注意:大多数文档在系统中安装xkb时都引用了相对路径.这通常在/usr/share / X11 / xkb下
如果您希望做出贡献,则此项目位于xorg下,该组织在以下位置提供了开发人员文档:https://www.x.org/wiki/guide/,或更佳的是在此处:https://www.x.org/wiki/Development/
标签:keyboard,keyboard-layout,linux 来源: https://codeday.me/bug/20191025/1931921.html