问题描述

我试图创建的键盘有很多Unicode,看起来像这样:

ff2ebe4c89a822cda9347132dcc149f1.png

不成功使用以下教程:

我想知道是否有人会如此友善地提供一步一步的指导更好的教程?

最佳解决方案

在Ubuntu 14.04中,键盘布局保留在

/usr/share/X11/xkb/symbols/

此目录中的每个文件都包含以下类型的一系列条目:

key {[a, A, aacute, Aacute]};

此条目使用以下约定将键盘上的键映射到多个特定字符:

< A C01>第一个字母A表示我们正在查找字母数字键块(其他选项包括KP [for keypad]和FK [for Function Key]);

< A C 01>第二个字母C表示从找到密钥的底部开始计算的行。 (在标准的美式键盘中,空格键位于行AA中,数字键位于行AE中)。

< AC 01>数字01表示密钥的位置,从左边开始计算并忽略任何特别命名的密钥,如TAB或~(代字号):AC01在第三行,第一行从左边开始(忽略Caps Lock,如果存在);在标准的美式键盘上,这是标记为“a”的键。

括号括起分配给每个键的字符列表。它最多包含四个条目,以逗号分隔:

a – 未修改的密钥。

A – Shift字符。

ĂĄ – Alt Gr字符。 (aacute)

Ä, – Shift + Alt Gr字符。 (Aacute)

创建自定义键盘Map就像在给定行中替换您不想要的字符一样简单!

例如:

作为Anglo-Saxonist,I型á和Á比I型æ和Æ少得多。

到Anglo-Saxon字符添加到我的名单,我只是与实体名称或Unicode code points为æ和Æ(“aelig”或U00E6和“AElig”或U00C6,分别)取代aacute和Aacute:

key {[a, A, aelig, AElig]};

要么

key {[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);你是一个合适的简称;和Z一个或多个语言的适当的长名称和aaa legal three letter (ISO 639-2) language code(例如英语的eng):

X

Y

Z

aaa

次佳解决方案

注意:Wayland确实使用xkb,但许多xTools已经停止正常工作(例如xdotool)

注意:这是一个non-exhaustive教程。对于希望创建新的八级布局并理解语法的个人来说,它非常有用。

注意:提供了快速而肮脏的解决方案。它包含一个电子表格,可自动生成您需要的代码。

了解XKB目录

cd /usr/share/X11/xkb/ && ls

types – 活动修改器如何更改生成的键。 (Shift,Control,Alt~)如果要自定义修改键,则很重要。

geometry – 用于绘制键盘图形。如果您正在设计非标准的键盘硬件,则很重要。

rules – 获取当前设置的相应配置。您需要定义它

keycodes – 键盘硬件键码的解释器。示例:Macintosh键盘将空格键理解为57。我们把它写成

symbols – 将哪些值分配给哪些密钥代码。这是我们定义自定义布局的地方。

compat – 兼容性的缩写。修改器的内部行为(Shift,Control,Alt …)

Workflow

compat

我只触摸symbols:请参阅下面的Quick and Dirty解决方案。

符号映射

/symbols/us此目录中的任何文件都遵循相同的结构。

partial alphanumeric_keys

xkb_symbols "basic" {

name[Group1]= "US/ASCII";

key { [ quoteleft, asciitilde ] };

key { [ 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 The Tilde Key – 通常在Tab右上方的左上方键

key Illustration – 由三部分组成,A E 01

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 { [ Level 1 , Level 2 , Level 3 , Level 4 , Level 5 ] }

通常,Levels表示以下按键:

没有修饰键

Shift

Alt Gr

Shift + Alt Gr

Custom – 不太可能看到4级以外的任何东西。

简而言之,如果你想将一个键映射到shift + altgr,你的列表必须至少有四个项目。

警告 – 常见错误

这些行中的任何一行都会导致严重错误,并且会在没有可用键盘的情况下离开您:

key { [ Backspace ] }

key { [ 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允许作为可执行文件运行。)

恢复损坏系统的备份策略

警告:键盘& On-Screen键盘将停止工作时出现最轻微的错误。

鼠标会起作用。可以通过突出显示字符并使用中键单击粘贴来完成键入。在Bash中,您可以通过粘贴换行符来return(按Enter键)。

键盘将在root shell中以恢复模式运行。 (从bash访问)

您始终可以使用实时环境来修复文件。

快速而肮脏的解决方案

文件>复制一份

您可以在Mapper Sheet中定义布局。

单个字符条目被转换为程序理解的代码。 (!变为U0021)。支持Unicode!

字符串不会被翻译并按原样处理。请确认没有拼写或案例错误!

空方块自动填充VoidSymbol。

XKB-Sort

包含密钥组,例如:

key { [U0021, U0021, U0021, U0021, U0021, U0021, U0021, U0021] };

key { [U005B, U005B, U005B, U005B, U005B, U005B, U005B, U005B] };

key { [U005D, U005D, U005D, U005D, U005D, U005D, U005D, U005D] };

key { [U0022, U0022, U0022, U0022, U0022, U0022, U0022, U0022] };

key { [U002A, U002A, U002A, U002A, U002A, U002A, U002A, U002A] };

key { [U007B, U007B, U007B, U007B, U007B, U007B, U007B, U007B] };

key { [U007D, U007D, U007D, U007D, U007D, U007D, U007D, U007D] };

key { [U002F, U002F, U002F, U002F, U002F, U002F, U002F, U002F] };

key { [U0027, U0027, U0037, U0027, U0027, U0027, U0027, U0027] };

key { [U0029, U0029, U0038, U0029, U0029, U0029, U0029, U0029] };

key { [U0028, U0028, U0039, U0028, U0028, U0028, U0028, U0028] };

key { [U005C, U005C, U005C, U005C, U005C, U005C, U005C, U005C] };

在所有8个级别上进行更改:

1234567890-= // Physical Keys

![]"*{}/')(\ // Changed to these characters

XKB Tab也有行。每个其他选项卡都可以忽略(其代码)。

sudo vim /usr/share/X11/xkb/symbols/us

感兴趣的线路:

key.type[group1]="EIGHT_LEVEL"; // Enables 8 levels

modifier_map Control { , }; // 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

参考资料

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐