我尝试创建的键盘具有很多Unicode,如下所示:
下列教程未成功:
- https://help.ubuntu.com/community/Howto%3A%20Custom%20keyboard%20layout%20definitions
(本教程中存在一些错误,它使用了不精确的语言,例如“剪切”而不是“删除”它们,并且格式很奇怪)
我想知道是否有人会提供逐步指导的更好教程?
我尝试创建的键盘具有很多Unicode,如下所示:
下列教程未成功:
我想知道是否有人会提供逐步指导的更好教程?
Answers:
在Ubuntu 14.04中,键盘布局保留在
/usr/share/X11/xkb/symbols/
此目录中的每个文件都包含一系列以下类型的条目:
键<AC01> {[a,A,aacute,Aacute]};
此项使用以下约定将键盘上的键映射到多个特定字符:
< 甲 C01>的第一个字母A
表示,我们正在寻找在字母数字键块(其他选项包括KP [for keypad]
和FK [for Function Key]
);
<A C 01>第二个字母C
表示该行,从找到密钥的底部开始计数。(在标准的美式键盘中,空格AA
键在行中,数字键在行中AE
)。
<AC 01 >数字01
指示键的位置,从左开始计数,并忽略任何特殊命名的键,例如TAB或~(波浪号):AC01
位于第三行的上方,第一个键从左侧开始(忽略Caps Lock,如果存在);在标准美式键盘上,这是标记为“ a”的键。
方括号括起分配给每个键的字符列表。最多包含四个条目,以逗号分隔:
例如:
作为英Saxonist,I型á
和Á
少得多的频率比I型æ
和Æ
。
盎格鲁-撒克逊字符添加到我的名单,我只需更换aacute
并Aacute
与实体名称或Unicode码点的æ
和Æ
(“aelig”或U00E6和“AElig”或U00C6,分别对应)。
键{[a,A,aelig,AElig]};
要么
键{[a,A,U00E6,U00C6]};
完成键盘布局的修改后,我将新名称“ oe”保存在同一目录中。
evdev.xml
文件添加新的键盘布局。为了使用新的键盘布局,我们需要告诉X11
它存在。在Ubuntu 14.04中,X11
跟踪/usr/share/X11/xkb/rules/evdev.xml
文件中已安装的键盘。然后,在其中添加新的布局。
X11/xkb/rules/evdev.xml
在编辑器中打开转到本<layoutList>
节末尾(搜索</layoutList>
)。在最后一个</layout>
标记之后添加以下内容,其中X
是您的键盘布局的文件名/usr/share/X11/xkb/symbols
(以我为例oe
);Y
合适的简称;并Z
适当长的名字中的一个或更多的语言和aaa
一个合法的三个字母(ISO 639-2)语言代码(如英英语):
<layout>
<configItem>
<name> X </name>
<shortDescription> Y </shortDescription>
<description> Z </description>
<languageList>
<iso639Id> aaa </iso639Id>
</languageList>
</configItem>
<variantList/>
</layout>
其他相关链接:
http
: //ubuntuforums.org/showthread.php ? t = 188761&p = 1092145#post1092145 http://www.charvolant.org/~doug/xkb/html/index.html
注意:Wayland确实使用xkb,但是许多xTools已停止正常工作(例如xdotool)
注意:这不是详尽的教程。对于寻求创建新的八层布局并理解语法的个人而言,这非常有用。
注意:提供了一种快速而肮脏的解决方案。它包含一个电子表格,该电子表格会自动生成您所需的代码。
cd /usr/share/X11/xkb/ && ls
57
。我们把它写成<SPCE>
keycodes > symbols > compat
我只触摸symbols
:有关“ 快速和肮脏”解决方案的信息,请参见下文。
/symbols/us 此目录中的任何文件都遵循相同的结构。
partial alphanumeric_keys
xkb_symbols "basic" {
name[Group1]= "US/ASCII";
key <TLDE> { [ quoteleft, asciitilde ] };
key <AE01> { [ 1, exclam ] };
modifier_map Shift { Shift_L, Shift_R };
};
partial -键盘图不完整
alphanumeric_keys正在映射的键盘部分。可以使用多个。
注:如果未*_keys
指定,则假定使用完整的键盘。
"basic" -符号图的名称
name[Group1]= "US/ASCII";为该键盘组指定一个唯一的名称。
modifier_map用于编辑修饰键。(Ctrl,Shift,Alt〜)
Shift { Shift_L, Shift_R };通常不是必需的。它将两个班次都映射到班次修改器(也称为2级)。
key <TLDE> 波浪号键 -通常在标签上方的左上角键
key <AE01> 插图 -由三部分组成,AE01
A=字母数字键块。
KP=键盘
FK=功能键
E=键盘上的行。
Space Key= A行
Shift Key= B行
Caps Lock= C行
Tab Key= D行
01=键在行上的位置。
AE01= 1
AB02= X
AC05=G
[+ ]-用C语言编写;方括号表示一个列表,通过该列表将项目分隔,。列表的长度确定级别的数量。例如:
key<AE01> { [ Level 1 , Level 2 , Level 3 , Level 4 , Level 5 ] }
通常,级别通过以下方式表示以下按键:
简而言之,如果您想将一个键映射为shift + altgr,则您的列表必须至少包含四个项目。
这些行中的任何一条都会导致严重错误,并使您无法使用可用的键盘:
key<AE01> { [ Backspace ] }
key<AE02> { [ a, b, , C ] }
Backspace
应该是BackSpace
:特别注意拼写。VoidSymbol
。备份您正在编辑的文件:
sudo /bin/cp /usr/share/X11/xkb/symbols/us /usr/share/X11/xkb/symbols/usBACKUP
就像是:
#!/bin/bash
sudo /bin/cp -rf /usr/share/X11/xkb/symbols/usBACKUP /usr/share/X11/xkb/symbols/us
如果出现任何问题,请使用鼠标运行该行代码(包含在您授予sudoers权限的bash脚本中。请记住chmod +x
要允许以可执行文件身份运行。)
return
(按Enter)通过粘贴换行符。!
成为U0021
)。支持Unicode!VoidSymbol
。key <AE01> { [U0021, U0021, U0021, U0021, U0021, U0021, U0021, U0021] };
key <AE02> { [U005B, U005B, U005B, U005B, U005B, U005B, U005B, U005B] };
key <AE03> { [U005D, U005D, U005D, U005D, U005D, U005D, U005D, U005D] };
key <AE04> { [U0022, U0022, U0022, U0022, U0022, U0022, U0022, U0022] };
key <AE05> { [U002A, U002A, U002A, U002A, U002A, U002A, U002A, U002A] };
key <AE06> { [U007B, U007B, U007B, U007B, U007B, U007B, U007B, U007B] };
key <AE07> { [U007D, U007D, U007D, U007D, U007D, U007D, U007D, U007D] };
key <AE08> { [U002F, U002F, U002F, U002F, U002F, U002F, U002F, U002F] };
key <AE09> { [U0027, U0027, U0037, U0027, U0027, U0027, U0027, U0027] };
key <AE10> { [U0029, U0029, U0038, U0029, U0029, U0029, U0029, U0029] };
key <AE11> { [U0028, U0028, U0039, U0028, U0028, U0028, U0028, U0028] };
key <AE12> { [U005C, U005C, U005C, U005C, U005C, U005C, U005C, U005C] };
在所有8个级别上更改此设置:
1234567890-= // Physical Keys
![]"*{}/')(\ // Changed to these characters
sudo vim /usr/share/X11/xkb/symbols/us
兴趣线:
key.type[group1]="EIGHT_LEVEL"; // Enables 8 levels
modifier_map Control { <LFSH>, <RTSH> }; // Maps ctrl`s to shift keys.
key { [Control_R, Control_R, Control_R, Control_R, Control_R, Control_R, Control_R, Control_R] };
key { [Control_L, Control_L, Control_L, Control_L, Control_L, Control_L, Control_L, Control_L] };
include "level3(lalt_switch)" // Hold Left Alt for Level 3
include "level5(ralt_switch)" // Hold Right Alt for Level 5