Say*_*yem 12 keyboard keyboard-layout locale
我使用Dvorak作为我的主要键盘布局。为了用我的母语(孟加拉语)写作,我想使用Probhat布局。但是 Probhat 假设您使用的是 QWERTY 布局。我如何让它理解我正在使用 Dvorak 以便它与相应的 Dvorak 键匹配?
说明:例如,当我按“E”(QWERTY 中的“D”)时,Probhat 布局将其理解为“D”(?)。我希望它把它理解为“E”(?)。
小智 7
方法一:使用文本编辑器
/etc/default/keyboard
以 root 身份打开文件。例如,您可以运行sudo nano /etc/default/keyboard
XKBMODEL="pc105"
使用您的键盘型号更改行(完整列表在这里,从第 2 行开始)。XKBLAYOUT="en"
使用您的布局更改行(大概是“bd”。请参阅上面的完整列表,从第 189 行开始)。XKBVARIANT=""
使用您的变体更改行(请参阅上面的完整列表,从第 284 行开始)。Y
)。sudo service keyboard-setup restart
方法二:使用keyboard-configuration
工具。
sudo apt-get install keyboard-configuration
(您可能已经安装了它)sudo dpkg-reconfigure keyboard-configuration
sudo service keyboard-setup restart
来源:改编自这里。
小智 5
位于 /usr/share/X11/xkb/symbols/bd 位置的文件的最后几行包含以下内容:
//
// XKB symbol :: Probhat Bangla/Bengali Keyboard Layout
// Ref: www.ankurbangla.org/images/probhat_layout.png
//
xkb_symbols "probhat" {
include "in(ben_probhat)"
name[Group1]= "Bangla (Probhat)";
};
Run Code Online (Sandbox Code Playgroud)
在你的情况下,如果我理解正确,你不应该编辑这个文件,而是编辑位于 /usr/share/X11/xkb/symbols/in 的文件布局
找到以下几行:
xkb_symbols "ben_probhat" {
name[Group1]= "Bangla (India, Probhat)";
Run Code Online (Sandbox Code Playgroud)
于是,开始新的布局重映射。
请注意,您不需要再次 1 乘 1 重新映射每个键,因为您的语言的 unicodes 已经为此布局设置!您只需要重新排序键,这适用于语音基于 qwerty 的任何语言和/或布局,并且用户更愿意将其映射到标准 dvorak。
在您的情况下,文件 /usr/share/X11/xkb/symbols/in 如下所示:
xkb_symbols "ben_probhat" {
name[Group1]= "Bangla (India, Probhat)";
key <ESC> { [ Escape ] };
// numbers
key <TLDE> { [ U200D, asciitilde ] };
key <AE01> { [ U09E7, exclam ] };
key <AE02> { [ U09E8, at ] };
key <AE03> { [ U09E9, numbersign ] };
key <AE04> { [ U09EA, U09F3 ] };
key <AE05> { [ U09EB, percent ] };
key <AE06> { [ U09EC, asciicircum ] };
key <AE07> { [ U09ED, U099E ] };
key <AE08> { [ U09EE, U09CE ] };
key <AE09> { [ U09EF, parenleft ] };
key <AE10> { [ U09E6, parenright ] };
key <AE11> { [ minus, underscore ] };
key <AE12> { [ equal, plus ] };
key <BKSP> { [ BackSpace ] };
// tab, q to ]
key <TAB> { [ Tab, ISO_Left_Tab ] };
key <AD01> { [ U09A6, U09A7 ] };
key <AD02> { [ U09C2, U098A ] };
key <AD03> { [ U09C0, U0988 ] };
key <AD04> { [ U09B0, U09DC ] };
key <AD05> { [ U099F, U09A0 ] };
key <AD06> { [ U098F, U0990 ] };
key <AD07> { [ U09C1, U0989 ] };
key <AD08> { [ U09BF, U0987 ] };
key <AD09> { [ U0993, U0994 ] };
key <AD10> { [ U09AA, U09AB ] };
key <AD11> { [ U09C7, U09C8 ] };
key <AD12> { [ U09CB, U09CC ] };
key <RTRN> { [ Return ] };
// caps, a to '
// key <CAPS> { [ Caps_Lock ] };
key <AC01> { [ U09BE, U0985 ] };
key <AC02> { [ U09B8, U09B7 ] };
key <AC03> { [ U09A1, U09A2 ] };
key <AC04> { [ U09A4, U09A5 ] };
key <AC05> { [ U0997, U0998 ] };
key <AC06> { [ U09B9, U0983 ] };
key <AC07> { [ U099C, U099D ] };
key <AC08> { [ U0995, U0996 ] };
key <AC09> { [ U09B2, U0982 ] };
key <AC10> { [ semicolon, colon ] };
key <AC11> { [ apostrophe, quotedbl ] };
// shift, z to /
// key <LFSH> { [ Shift_L ] };
key <AB01> { [ U09DF, U09AF ] };
key <AB02> { [ U09B6, U09DD ] };
key <AB03> { [ U099A, U099B ] };
key <AB04> { [ U0986, U098B ] };
key <AB05> { [ U09AC, U09AD ] };
key <AB06> { [ U09A8, U09A3 ] };
key <AB07> { [ U09AE, U0999 ] };
key <AB08> { [ comma, U09C3 ] };
key <AB09> { [ U0964, U0981 ] };
key <AB10> { [ U09CD, question ] };
key <BKSL> { [ U200C, U0965 ] };
Run Code Online (Sandbox Code Playgroud)
现在你只需要像这样重新排序键:
// numbers
key <TLDE> { [ grave, asciitilde, voidsymbol, voidsymbol ] };
key <AE01> ==> key <AE01> <== NO CHANGE!
key <AE02> ==> key <AE02> <== NO CHANGE!
key <AE03> ==> key <AE03> <== NO CHANGE!
key <AE04> ==> key <AE04> <== NO CHANGE!
key <AE05> ==> key <AE05> <== NO CHANGE!
key <AE06> ==> key <AE06> <== NO CHANGE!
key <AE07> ==> key <AE07> <== NO CHANGE!
key <AE08> ==> key <AE08> <== NO CHANGE!
key <AE09> ==> key <AE09> <== NO CHANGE!
key <AE10> ==> key <AE10> <== NO CHANGE!
key <AE11> ==> key <AC11>
key <AE12> ==> key <AD12>
key <BKSP> { [ BackSpace ] };
// key <TAB> { [ Tab, ISO_Left_Tab ] };
key <AD01> ==> key <AB02>
key <AD02> ==> key <AB08>
key <AD03> ==> key <AC03>
key <AD04> ==> key <AD09>
key <AD05> ==> key <AC08>
key <AD06> ==> key <AD05>
key <AD07> ==> key <AC04>
key <AD08> ==> key <AC05>
key <AD09> ==> key <AC02>
key <AD10> ==> key <AD04>
key <AD11> ==> key <AE11>
key <AD12> ==> key <AE12>
key <RTRN> { [ Return ] };
// key <CAPS> { [ Caps_Lock ] };
key <AC01> ==> key <AC01> <== NO CHANGE!
key <AC02> ==> key <AC10>
key <AC03> ==> key <AC06>
key <AC04> ==> key <AD06>
key <AC05> ==> key <AD07>
key <AC06> ==> key <AC07>
key <AC07> ==> key <AB03>
key <AC08> ==> key <AB04>
key <AC09> ==> key <AD10>
key <AC10> ==> key <AB01>
key <AC11> ==> key <AD01>
// key <LFSH> { [ Shift_L ] };
key <AB01> ==> key <AB10>
key <AB02> ==> key <AB05>
key <AB03> ==> key <AD08>
key <AB04> ==> key <AB09>
key <AB05> ==> key <AB06>
key <AB06> ==> key <AC09>
key <AB07> ==> key <AB07> <== NO CHANGE!
key <AB08> ==> key <AD02>
key <AB09> ==> key <AD03>
key <AB10> ==> key <AD11>
key <BKSL> { [ backslash, bar, voidsymbol, voidsymbol ] };
Run Code Online (Sandbox Code Playgroud)
所以它看起来像下面的文件 /usr/share/X11/xkb/symbols/in
xkb_symbols "ben_probhat" {
name[Group1]= "Bangla (India, Probhat)";
key <ESC> { [ Escape ] };
// numbers
key <TLDE> { [ U200D, asciitilde ] };
key <AE01> { [ U09E7, exclam ] };
key <AE02> { [ U09E8, at ] };
key <AE03> { [ U09E9, numbersign ] };
key <AE04> { [ U09EA, U09F3 ] };
key <AE05> { [ U09EB, percent ] };
key <AE06> { [ U09EC, asciicircum ] };
key <AE07> { [ U09ED, U099E ] };
key <AE08> { [ U09EE, U09CE ] };
key <AE09> { [ U09EF, parenleft ] };
key <AE10> { [ U09E6, parenright ] };
key <AC11> { [ minus, underscore ] };
key <AD12> { [ equal, plus ] };
key <BKSP> { [ BackSpace ] };
// tab, q to ]
key <TAB> { [ Tab, ISO_Left_Tab ] };
key <AB02> { [ U09A6, U09A7 ] };
key <AB08> { [ U09C2, U098A ] };
key <AC03> { [ U09C0, U0988 ] };
key <AD09> { [ U09B0, U09DC ] };
key <AC08> { [ U099F, U09A0 ] };
key <AD05> { [ U098F, U0990 ] };
key <AC04> { [ U09C1, U0989 ] };
key <AC05> { [ U09BF, U0987 ] };
key <AC02> { [ U0993, U0994 ] };
key <AD04> { [ U09AA, U09AB ] };
key <AE11> { [ U09C7, U09C8 ] };
key <AE12> { [ U09CB, U09CC ] };
key <RTRN> { [ Return ] };
// caps, a to '
// key <CAPS> { [ Caps_Lock ] };
key <AC01> { [ U09BE, U0985 ] };
key <AC10> { [ U09B8, U09B7 ] };
key <AC06> { [ U09A1, U09A2 ] };
key <AD06> { [ U09A4, U09A5 ] };
key <AD07> { [ U0997, U0998 ] };
key <AC07> { [ U09B9, U0983 ] };
key <AB03> { [ U099C, U099D ] };
key <AB04> { [ U0995, U0996 ] };
key <AD10> { [ U09B2, U0982 ] };
key <AB01> { [ semicolon, colon ] };
key <AD01> { [ apostrophe, quotedbl ] };
// shift, z to /
// key <LFSH> { [ Shift_L ] };
key <AB10> { [ U09DF, U09AF ] };
key <AB05> { [ U09B6, U09DD ] };
key <AD08> { [ U099A, U099B ] };
key <AB09> { [ U0986, U098B ] };
key <AB06> { [ U09AC, U09AD ] };
key <AC09> { [ U09A8, U09A3 ] };
key <AB07> { [ U09AE, U0999 ] };
key <AD02> { [ comma, U09C3 ] };
key <AD03> { [ U0964, U0981 ] };
key <AD11> { [ U09CD, question ] };
key <BKSL> { [ U200C, U0965 ] };
Run Code Online (Sandbox Code Playgroud)
请注意,您必须在开始编辑之前备份原始文件布局并将其保存为 root,否则您必须从 freedesktop.org/wiki/Software/XKeyboardConfig 下载并恢复它
尽管我对字母表一无所知,但我希望这会有所帮助,因为我多年来一直在使用 dvorak 布局,我希望有一天它可以取代 qwerty 布局,使其不再成为标准:(