奇怪的是,这似乎应该已经做过:我想在键盘顶部交换– 键上的数字和符号,以便:10
当我按下6键时,*
键入而不是6
。
当我按Shift+时6,6
将显示数字而不是*
。
我还想进行其他一些修改,但很快发现其他人在使用选项之前setxkbmap
(caps:swapescape
例如)已经完成了这些布局修改。
鉴于以上所述,这是一个三部分的问题:
键盘顶行上是否可以交换数字和符号?
是否存在,无需手动浏览*.lst
和中的*.xml
文件,有没有办法找出这种情况是否存在/usr/share/X11/xkb/rules/
?
最后,如果我要为创建一个选项setxkbmap
,那将是一种理想的方法,以及如何将我的选项贡献回社区?
至于问题3:
我试图创建该选项而没有成功(setxkbmap
默默地失败了,我甚至对自己的方法都不自信)。
我找不到该项目的托管位置。
除了man setxkbmap
涉及该主题的各种博客文章之外,我还无法找到任何有关此主题的文档。
Bobby.. 7
问题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
(sed参考) *
如果您正在寻找与交换数字有关的内容,则可以追加| grep -i num
,以显示使用数字键盘/键盘的几个选项。不幸的是,我认为所有布局都在与字母数字字符相关的模板中列出了数字,这意味着它们是内置于区域布局本身的(或dvorak
)。
您可以采用三种方法。
xmodmap
您可以通过.Xmodmap
在家庭中创建一个文件来覆盖映射来创建某种程度上通用的方法,如Arch Wiki 此处所述。
这是一个示例配置:https : //github.com/karma0/layouts/blob/master/home/.Xmodmap
脚步:
放下.Xmodmap
你的家。
将行添加xmodmap $HOME/.Xmodmap
到您的.profile
运行xkbcomp -xkb $DISPLAY xkbmap
以生成xkbmap
包含当前配置的文件。
对其进行修改以匹配所需的配置。这是一个例子:
原版的:
key{ [ 1, exclam ] }; key { [ 2, at ] }; key { [ 3, numbersign ] }; key { [ 4, dollar ] }; key { [ 5, percent ] }; key { [ 6, asciicircum ] }; key { [ 7, ampersand ] }; key { [ 8, asterisk ] }; key { [ 9, parenleft ] }; key { [ 0, parenright ] }; 改性:
key{ [ exclam, 1 ] }; key { [ at, 2 ] }; key { [ numbersign, 3 ] }; key { [ dollar,i 4 ] }; key { [ percent, 5 ] }; key { [ asciicircum, 6 ] }; key { [ ampersand, 7 ] }; key { [ asterisk, 8 ] }; key { [ parenleft, 9 ] }; key { [ parenright, 0 ] };
执行命令xkbcomp -w 0 xkbmap $DISPLAY
以加载新配置。
使用xinitrc
或类似命令获取要在启动时运行的命令。
打开您喜欢的布局文件(可能在下/usr/share/X11/xkb/symbols
)。us
在此示例中,我们将使用该文件。
在文件中找到您喜欢的变体;workman-intl
如果你像我。
假设您要复制workman-intl
布局,则可以复制该部分,然后像我在这里所做的那样对其进行修改(请注意,这是从intl
模板复制/粘贴的,第一列和第二列只是交换了):
partial alphanumeric_keys xkb_symbols "workman-programmer" { include "us(workman-intl)" name[Group1]= "English (Workman, intl., with dead keys and num/sym swapped)"; key{ [ exclam, 1, exclamdown, onesuperior ] }; key { [ at, 2, twosuperior, dead_doubleacute ] }; key { [ numbersign, 3, threesuperior, dead_macron ] }; key { [ dollar, 4, currency, sterling ] }; key { [ percent, 5, EuroSign, dead_cedilla ] }; key { [ dead_circumflex,6, onequarter, asciicircum ] }; key { [ ampersand, 7, onehalf, dead_horn ] }; key { [ asterisk, 8, threequarters, dead_ogonek ] }; key { [ parenleft, 9, leftsinglequotemark, dead_breve ] }; key { [ parenright, 0, rightsinglequotemark, dead_abovering ] }; }; 这
xkb_symbols
行定义了变体的名称; 该include
行从文件中的选择变化中借用了您需要的所有内容(这里workman-intl
是us
布局的变化)。然后,您需要的定义如下。4.将新定义添加/usr/share/xkb/rules/base.xml
到variantList
标签的末尾。这是我使用的一个:workman-programmer English (Workman, intl., with dead keys and num/sym swapped)
将新的变体和说明添加到as 的! variant
部分/usr/share/X11/xkb/rules/base.lst
:
workman-programmer us: English (Workman, intl., with dead keys and num/sys swapped)'
重新启动您的Xorg服务器。
设置setxkbmap
命令以使用新版本运行。这是本演示的一个:setxkbmap -layout us -variant workman-programmer -option
尝试一下,直到开始寻找xkb
位于xorg
生态系统内的文档,您才可以找到文档。
最好的写法可能是这样的:
https://www.charvolant.org/doug/xkb/html/index.html
引用:
在阅读本文档之前,请理解,我从来没有想写这份文档,因为它的资格很差,但是我一直想阅读,这是唯一的方法。
此外,这里有一个链接列表,以及获得学习所有的复杂的启动xkb
系统xorg
:https://www.x.org/wiki/XKB/
注意:大多数文档都引用了xkb
系统中安装的相对路径。这通常在/usr/share/X11/xkb
如果您希望做出贡献,则该项目位于下方xorg
,该网址在以下位置提供了开发人员文档:https : //www.x.org/wiki/guide/,或者更好的是在此处:https : //www.x.org/wiki/开发/
要获取所有可用选项的列表,可以执行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
(sed参考) *
如果您正在寻找与交换数字有关的内容,则可以追加| grep -i num
,以显示使用数字键盘/键盘的几个选项。不幸的是,我认为所有布局都在与字母数字字符相关的模板中列出了数字,这意味着它们是内置于区域布局本身的(或dvorak
)。
您可以采用三种方法。
xmodmap
您可以通过.Xmodmap
在家庭中创建一个文件来覆盖映射来创建某种程度上通用的方法,如Arch Wiki 此处所述。
这是一个示例配置:https : //github.com/karma0/layouts/blob/master/home/.Xmodmap
脚步:
放下.Xmodmap
你的家。
将行添加xmodmap $HOME/.Xmodmap
到您的.profile
运行xkbcomp -xkb $DISPLAY xkbmap
以生成xkbmap
包含当前配置的文件。
对其进行修改以匹配所需的配置。这是一个例子:
原版的:
key{ [ 1, exclam ] }; key { [ 2, at ] }; key { [ 3, numbersign ] }; key { [ 4, dollar ] }; key { [ 5, percent ] }; key { [ 6, asciicircum ] }; key { [ 7, ampersand ] }; key { [ 8, asterisk ] }; key { [ 9, parenleft ] }; key { [ 0, parenright ] }; 改性:
key{ [ exclam, 1 ] }; key { [ at, 2 ] }; key { [ numbersign, 3 ] }; key { [ dollar,i 4 ] }; key { [ percent, 5 ] }; key { [ asciicircum, 6 ] }; key { [ ampersand, 7 ] }; key { [ asterisk, 8 ] }; key { [ parenleft, 9 ] }; key { [ parenright, 0 ] };
执行命令xkbcomp -w 0 xkbmap $DISPLAY
以加载新配置。
使用xinitrc
或类似命令获取要在启动时运行的命令。
打开您喜欢的布局文件(可能在下/usr/share/X11/xkb/symbols
)。us
在此示例中,我们将使用该文件。
在文件中找到您喜欢的变体;workman-intl
如果你像我。
假设您要复制workman-intl
布局,则可以复制该部分,然后像我在这里所做的那样对其进行修改(请注意,这是从intl
模板复制/粘贴的,第一列和第二列只是交换了):
partial alphanumeric_keys xkb_symbols "workman-programmer" { include "us(workman-intl)" name[Group1]= "English (Workman, intl., with dead keys and num/sym swapped)"; key{ [ exclam, 1, exclamdown, onesuperior ] }; key { [ at, 2, twosuperior, dead_doubleacute ] }; key { [ numbersign, 3, threesuperior, dead_macron ] }; key { [ dollar, 4, currency, sterling ] }; key { [ percent, 5, EuroSign, dead_cedilla ] }; key { [ dead_circumflex,6, onequarter, asciicircum ] }; key { [ ampersand, 7, onehalf, dead_horn ] }; key { [ asterisk, 8, threequarters, dead_ogonek ] }; key { [ parenleft, 9, leftsinglequotemark, dead_breve ] }; key { [ parenright, 0, rightsinglequotemark, dead_abovering ] }; }; 这
xkb_symbols
行定义了变体的名称; 该include
行从文件中的选择变化中借用了您需要的所有内容(这里workman-intl
是us
布局的变化)。然后,您需要的定义如下。4.将新定义添加/usr/share/xkb/rules/base.xml
到variantList
标签的末尾。这是我使用的一个:workman-programmer English (Workman, intl., with dead keys and num/sym swapped)
将新的变体和说明添加到as 的! variant
部分/usr/share/X11/xkb/rules/base.lst
:
workman-programmer us: English (Workman, intl., with dead keys and num/sys swapped)'
重新启动您的Xorg服务器。
设置setxkbmap
命令以使用新版本运行。这是本演示的一个:setxkbmap -layout us -variant workman-programmer -option
尝试一下,直到开始寻找xkb
位于xorg
生态系统内的文档,您才可以找到文档。
最好的写法可能是这样的:
https://www.charvolant.org/doug/xkb/html/index.html
引用:
在阅读本文档之前,请理解,我从来没有想写这份文档,因为它的资格很差,但是我一直想阅读,这是唯一的方法。
此外,这里有一个链接列表,以及获得学习所有的复杂的启动xkb
系统xorg
:https://www.x.org/wiki/XKB/
注意:大多数文档都引用了xkb
系统中安装的相对路径。这通常在/usr/share/X11/xkb
如果您希望做出贡献,则该项目位于下方xorg
,该网址在以下位置提供了开发人员文档:https : //www.x.org/wiki/guide/,或者更好的是在此处:https : //www.x.org/wiki/开发/