Saya ingin menyalin tata letak keyboard /usr/share/X11/xkb/symbols/
dan mengubahnya lalu menghasilkan tata letak baru darinya.
Bagaimana saya bisa menambahkan tata letak keyboard baru (bernama misalnya "mylayout")?
Perbarui # 1:
File yang saya ubah untuk menambahkan tata letak baru:
/usr/share/X11/xkb/symbols/irwinxp
(awalnya sama denganir
):// Iranian keyboard layout //////////////////////////////////////// // Persian layout, // based on // Information Technology – Layout of Persian Letters and Symbols on Computer Keyboards // ISIRI 9147 – 1st Edition // Institute of Standards and Industrial Research of Iran // http://www.isiri.org/UserStd/DownloadStd.aspx?id=9147 // http://behnam.esfahbod.info/standards/isiri-keyboard-9147.pdf // // Author: Behnam Esfahbod <[email protected]> // default partial alphanumeric_keys xkb_symbols "pes" { name[Group1]= "Persian"; include "ir(pes_part_basic)" include "ir(pes_part_ext)" include "nbsp(zwnj2nb3nnb4)" include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "pes_keypad" { name[Group1]= "Persian (with Persian Keypad)"; include "ir(pes_part_basic)" include "ir(pes_part_keypad)" include "nbsp(zwnj2nb3nnb4)" include "level3(ralt_switch)" }; partial hidden alphanumeric_keys xkb_symbols "pes_part_basic" { // Persian digits key <AE01> { [ Farsi_1, exclam, grave ] }; key <AE02> { [ Farsi_2, 0x100066c, at ] }; key <AE03> { [ Farsi_3, 0x100066b, numbersign ] }; key <AE04> { [ Farsi_4, 0x100fdfc, dollar ] }; key <AE05> { [ Farsi_5, 0x100066a, percent ] }; key <AE06> { [ Farsi_6, multiply, asciicircum ] }; key <AE07> { [ Farsi_7, Arabic_comma, ampersand ] }; key <AE08> { [ Farsi_8, asterisk, enfilledcircbullet ] }; key <AE09> { [ Farsi_9, parenright, 0x100200e ] }; key <AE10> { [ Farsi_0, parenleft, 0x100200f ] }; // Persian letters and symbols key <AD01> { [ Arabic_dad, Arabic_fathatan, degree ] }; // 2: Arabic_sukun key <AD02> { [ Arabic_sad, Arabic_dammatan, VoidSymbol ] }; // 2: Arabic_dammatan key <AD03> { [ Arabic_theh, Arabic_kasratan, 0x13a4 ] }; // 2: Arabic_kasratan key <AD04> { [ Arabic_qaf, Arabic_fathatan, VoidSymbol ] }; key <AD05> { [ Arabic_feh, Arabic_comma, VoidSymbol ] }; // 2: Arabic_damma key <AD06> { [ Arabic_ghain, Arabic_semicolon, VoidSymbol ] }; // 2: Arabic_kasra key <AD07> { [ Arabic_ain, Arabic_fatha, VoidSymbol ] }; key <AD08> { [ Arabic_heh, Arabic_hamza_above, 0x100202d ] }; // 2: Arabic_shadda key <AD09> { [ Arabic_khah, bracketright, 0x100202e ] }; key <AD10> { [ Arabic_hah, bracketleft, 0x100202c ] }; key <AD11> { [ Arabic_jeem, braceright, 0x100202a ] }; key <AD12> { [ Arabic_tcheh, braceleft, 0x100202b ] }; key <AC01> { [ Arabic_sheen, Arabic_fatha, VoidSymbol ] }; // 2: Arabic_hamzaonwaw key <AC02> { [ Arabic_seen, Arabic_damma, VoidSymbol ] }; // 2: Arabic_hamzaonyeh key <AC03> { [ Farsi_yeh, Arabic_kasra, Arabic_alefmaksura ] }; // 2: Arabic_yeh key <AC04> { [ Arabic_beh, Arabic_shadda, VoidSymbol ] }; // 1: Arabic_hamzaunderalef key <AC05> { [ Arabic_lam, 0x10006c0, VoidSymbol ] };// 2: Arabic_hamzaonalef key <AC06> { [ Arabic_alef, Arabic_maddaonalef, 0x1000671 ] }; key <AC07> { [ Arabic_teh, Arabic_tehmarbuta, VoidSymbol ] }; key <AC08> { [ Arabic_noon, guillemotright, 0x100fd3e ] }; key <AC09> { [ Arabic_meem, guillemotleft, 0x100fd3f ] }; key <AC10> { [ Arabic_keheh, colon, semicolon ] }; key <AC11> { [ Arabic_gaf, quotedbl, quotedbl ] }; // 2: Arabic_semicolon key <AB01> { [ Arabic_zah, Arabic_kaf, VoidSymbol ] }; key <AB02> { [ Arabic_tah, 0x1000653, VoidSymbol ] }; key <AB03> { [ Arabic_zain, Arabic_jeh, VoidSymbol ] }; key <AB04> { [ Arabic_ra, Arabic_hamzaonwaw ,0x1000656 ] }; // 2: Arabic_superscript_alef ٰ key <AB05> { [ Arabic_thal, 0x100200c, 0x100200d ] }; key <AB06> { [ Arabic_dal, Arabic_hamza_above, Arabic_hamza_below ] }; key <AB07> { [ Arabic_hamzaonyeh, Arabic_hamza, ellipsis ] }; // 1: Arabic_peh key <AB08> { [ Arabic_waw, greater, comma ] }; key <AB09> { [ period, less, apostrophe ] }; key <AB10> { [ slash, Arabic_question_mark, question ] }; key <TLDE> { [ 0x100200d, division, asciitilde ] }; key <AE11> { [ minus, Arabic_tatweel, underscore ] }; key <AE12> { [ equal, plus, 0x1002212 ] }; key <BKSL> { [ Arabic_peh, bar, 0x1002010 ] }; // 1: backslash }; partial hidden alphanumeric_keys xkb_symbols "pes_part_ext" { // Persian and ASCII digits key <AE01> { [ 0x10006f1, exclam, grave, 1 ] }; key <AE02> { [ 0x10006f2, 0x100066c, at, 2 ] }; key <AE03> { [ 0x10006f3, 0x100066b, numbersign, 3 ] }; key <AE04> { [ 0x10006f4, 0x100fdfc, dollar, 4 ] }; key <AE05> { [ 0x10006f5, 0x100066a, percent, 5 ] }; key <AE06> { [ 0x10006f6, multiply, asciicircum, 6 ] }; key <AE07> { [ 0x10006f7, Arabic_comma, ampersand, 7 ] }; key <AE08> { [ 0x10006f8, asterisk, enfilledcircbullet, 8 ] }; key <AE09> { [ 0x10006f9, parenright, 0x100200e, 9 ] }; key <AE10> { [ 0x10006f0, parenleft, 0x100200f, 0 ] }; }; partial hidden alphanumeric_keys xkb_symbols "pes_part_keypad" { // Persian digits and Mathematical operators key <KPDV> { [ division, XF86_Ungrab ] }; key <KPMU> { [ multiply, XF86_ClearGrab ] }; key <KPSU> { [ 0x1002212, XF86_Prev_VMode ] }; key <KPAD> { [ plus, XF86_Next_VMode ] }; key <KPEN> { [ KP_Enter ] }; key <KPEQ> { [ equal ] }; key <KP7> { [ KP_Home, 0x10006f7 ] }; key <KP8> { [ KP_Up, 0x10006f8 ] }; key <KP9> { [ KP_Prior, 0x10006f9 ] }; key <KP4> { [ KP_Left, 0x10006f4 ] }; key <KP5> { [ KP_Begin, 0x10006f5 ] }; key <KP6> { [ KP_Right, 0x10006f6 ] }; key <KP1> { [ KP_End, 0x10006f1 ] }; key <KP2> { [ KP_Down, 0x10006f2 ] }; key <KP3> { [ KP_Next, 0x10006f3 ] }; key <KP0> { [ KP_Insert, 0x10006f0 ] }; key <KPDL> { [ KP_Delete, 0x100066b ] }; }; //////////////////////////////////////// // Kurdish Layout partial alphanumeric_keys xkb_symbols "ku" { include "tr(ku)" name[Group1]= "Kurdish (Iran, Latin Q)"; }; partial alphanumeric_keys xkb_symbols "ku_f" { include "tr(ku_f)" name[Group1]= "Kurdish (Iran, F)"; }; partial alphanumeric_keys xkb_symbols "ku_alt" { include "tr(ku_alt)" name[Group1]= "Kurdish (Iran, Latin Alt-Q)"; }; //////////////////////////////////////// // Kurdish Soranî Bahdînî (Arabic) keyboard layout, // based on the Kurdî Soranî Bahdînî keyboard from KurdITGroup // which is based on National Iranian Keyboard Standard (ISIRI 2901:1994), // with additions. // // Copyright (C) 2006 Erdal Ronahî, published under the GPL v2 // // Special copyright note: author explicitly permitted to license this // layout under MIT/X11 license, for details see // https://bugs.freedesktop.org/show_bug.cgi?id=9541 // // Author: Erdal Ronahî <[email protected]> // // Kurdish Arabic-Latin Layout for Soranî partial alphanumeric_keys xkb_symbols "ku_ara" { name[Group1]= "Kurdish (Iran, Arabic-Latin)"; // Other 3-Level symbols key <TLDE> { [ 0x100200d, division, asciitilde ] }; key <BKSL> { [ backslash, bar, ccedilla, Ccedilla ] }; // Digits key <AE01> { [ 1, exclam, 0x10006f1, grave ] }; key <AE02> { [ 2, at, 0x10006f2, at ] }; key <AE03> { [ 3, numbersign, 0x10006f3, 0x100066b ] }; key <AE04> { [ 4, dollar, 0x10006f4, 0x100fdfc ] }; key <AE05> { [ 5, percent, 0x10006f5, 0x100066a ] }; key <AE06> { [ 6, asciicircum, 0x10006f6, multiply ] }; key <AE07> { [ 7, ampersand, 0x10006f7, Arabic_comma ] }; key <AE08> { [ 8, asterisk, 0x10006f8, enfilledcircbullet ] }; key <AE09> { [ 9, parenright, 0x10006f9, 0x100200e ] }; key <AE10> { [ 0, parenleft, 0x10006f0, 0x100200f ] }; key <AE11> { [ minus, Arabic_tatweel, underscore ] }; key <AE12> { [ equal, plus, 0x1002212 ] }; key <AD01> { [ Arabic_qaf, X, q, Q ] }; key <AD02> { [ Arabic_waw, X, w, W ] }; key <AD03> { [ 0x10006d5, Arabic_heh, e, E ] }; key <AD04> { [ Arabic_ra , 0x1000695, r, R ] }; key <AD05> { [ Arabic_teh, Arabic_tah, t, T ] }; key <AD06> { [ 0x10006cc, 0x10006ce, y, Y ] }; key <AD07> { [ Arabic_hamzaonyeh, Arabic_hamza, u, U ] }; key <AD08> { [ Arabic_hah, Arabic_ain, i, I ] }; key <AD09> { [ 0x10006c6, Arabic_hamzaonwaw, o, O ] }; key <AD10> { [ 0x100067e, Arabic_theh, p, P ] }; key <AD11> { [ bracketright, braceright, ucircumflex, Ucircumflex ] }; key <AD12> { [ bracketleft, braceleft, scedilla, Scedilla ] }; key <AC01> { [ Arabic_alef, Arabic_maddaonalef, a, A ] }; key <AC02> { [ Arabic_seen, Arabic_sheen, s, S ] }; key <AC03> { [ Arabic_dal, Arabic_thal, d, D ] }; key <AC04> { [ Arabic_feh, Arabic_hamzaunderalef, f, F ] }; key <AC05> { [ 0x10006af, Arabic_ghain, g, G ] }; key <AC06> { [ Arabic_heh, 0x100200c, h, H ] }; key <AC07> { [ 0x1000698, Arabic_hamzaonalef, j, J ] }; key <AC08> { [ 0x10006a9, Arabic_kaf, k, K ] }; key <AC09> { [ Arabic_lam, 0x10006b5, l, L ] }; key <AC10> { [ Arabic_semicolon, colon, ecircumflex, Ecircumflex ] }; key <AC11> { [ apostrophe, quotedbl, icircumflex, Icircumflex ] }; key <AB01> { [ Arabic_zain, Arabic_dad, z, Z ] }; key <AB02> { [ Arabic_khah, Arabic_sad, x, X ] }; key <AB03> { [ Arabic_jeem, 0x1000686, c, C ] }; key <AB04> { [ 0x10006a4, Arabic_zah, v, V ] }; key <AB05> { [ Arabic_beh, 0x1000649, b, B ] }; key <AB06> { [ Arabic_noon, Arabic_tehmarbuta, n, N ] }; key <AB07> { [ Arabic_meem, Arabic_tatweel, m, M ] }; key <AB08> { [ Arabic_comma, greater, comma ] }; key <AB09> { [ period, less, apostrophe ] }; key <AB10> { [ slash, Arabic_question_mark, question ] }; include "nbsp(zwnj2nb3)" include "level3(ralt_switch)" }; // EXTRAS: ///////////////////////////////////////////////////////////////////////////////// // // Generated keyboard layout file with the Keyboard Layout Editor. // For more about the software, see http://code.google.com/p/keyboardlayouteditor // // Version 0.2, fixed AD09. // // Layout by Ernst Tremel, http://ubuntuforums.org/showpost.php?p=9365469&postcount=32 // Creation of this file by Simos Xenitellis. partial alphanumeric_keys xkb_symbols "ave" { name[Group1] = "Avestan"; key <AB01> { [ U10B30, U10B32 ] }; // 𐬰 𐬲 key <AB02> { [ U10B11, U10B12 ] }; // 𐬑 𐬒 key <AB03> { [ U10B17, UE102 ] }; // 𐬗 key <AB04> { [ U10B2C, U10B13 ] }; // 𐬬 𐬓 key <AB05> { [ U10B20, U10B21 ] }; // 𐬠 𐬡 key <AB06> { [ U10B25, U10B27 ] }; // 𐬥 𐬧 key <AB07> { [ U10B28, U10B29 ] }; // 𐬨 𐬩 key <AB08> { [ U10B3C, U10B39 ] }; // 𐬼 𐬹 key <AB09> { [ U10B3E, U10B3D ] }; // 𐬾 𐬽 key <AB10> { [ U10B3F, periodcentered ] }; // 𐬿 · key <AC01> { [ U10B00, U10B01 ] }; // 𐬀 𐬁 key <AC02> { [ U10B2F, U10B31 ] }; // 𐬯 𐬱 key <AC03> { [ U10B1B, U10B1C ] }; // 𐬛 𐬜 key <AC04> { [ U10B1F, U10B16 ] }; // 𐬟 𐬖 key <AC05> { [ U10B14, U10B15 ] }; // 𐬔 𐬕 key <AC06> { [ U10B35, UE100 ] }; // 𐬵 key <AC07> { [ U10B18, U10B24 ] }; // 𐬘 𐬤 key <AC08> { [ U10B10, UE101 ] }; // 𐬐 key <AC09> { [ U10B2E, UE103 ] }; // 𐬮 key <AC10> { [ U10B3B, U10B3A ] }; // 𐬻 𐬺 key <AC11> { [ U10B1D ] }; // 𐬝 key <AD01> { [ U10B22, U10B23 ] }; // 𐬢 𐬣 key <AD02> { [ U10B33, U10B34 ] }; // 𐬳 𐬴 key <AD03> { [ U10B08, U10B09 ] }; // 𐬈 𐬉 key <AD04> { [ U10B2D, U10B26 ] }; // 𐬭 𐬦 key <AD05> { [ U10B19, U10B1A ] }; // 𐬙 𐬚 key <AD06> { [ U10B2B, U10B2A ] }; // 𐬫 𐬪 key <AD07> { [ U10B0E, U10B0F ] }; // 𐬎 𐬏 key <AD08> { [ U10B0C, U10B0D ] }; // 𐬌 𐬍 key <AD09> { [ U10B0A, U10B0B ] }; // 𐬊 𐬋 key <AD10> { [ U10B1E ] }; // 𐬞 key <AD11> { [ U10B06, U10B07 ] }; // 𐬆 𐬇 key <AD12> { [ U10B02, U10B03 ] }; // 𐬂 𐬃 key <AE01> { [ U10B78 ] }; // 𐭸 key <AE02> { [ U10B79 ] }; // 𐭹 key <AE03> { [ U10B7A ] }; // 𐭺 key <AE04> { [ U10B7B ] }; // 𐭻 key <AE05> { [ U10B7C ] }; // 𐭼 key <AE06> { [ U10B7D ] }; // 𐭽 key <AE07> { [ U10B7E ] }; // 𐭾 key <AE08> { [ U10B7F ] }; // 𐭿 key <BKSL> { [ U10B04, U10B05 ] }; // 𐬄 𐬅 key <LSGT> { [ U10B04, U10B05 ] }; // 𐬄 𐬅 };
Bagian
/usr/share/X11/xkb/rules/evdev.xml
berisi semua modifikasi:... <layout> <configItem> <name>ir</name> <shortDescription>fa</shortDescription> <description>Persian</description> <languageList> <iso639Id>per</iso639Id> </languageList> </configItem> <variantList> <variant> <configItem> <name>pes_keypad</name> <description>Persian (with Persian Keypad)</description> </configItem> </variant> <variant> <configItem> <name>ku</name> <shortDescription>ku</shortDescription> <description>Kurdish (Iran, Latin Q)</description> <languageList> <iso639Id>kur</iso639Id> </languageList> </configItem> </variant> <variant> <configItem> <name>ku_f</name> <shortDescription>ku</shortDescription> <description>Kurdish (Iran, F)</description> <languageList> <iso639Id>kur</iso639Id> </languageList> </configItem> </variant> <variant> <configItem> <name>ku_alt</name> <shortDescription>ku</shortDescription> <description>Kurdish (Iran, Latin Alt-Q)</description> <languageList> <iso639Id>kur</iso639Id> </languageList> </configItem> </variant> <variant> <configItem> <name>ku_ara</name> <shortDescription>ku</shortDescription> <description>Kurdish (Iran, Arabic-Latin)</description> <languageList> <iso639Id>kur</iso639Id> </languageList> </configItem> </variant> </variantList> </layout> <layout> <configItem> <name>irwinxp</name> <shortDescription>fa</shortDescription> <description>Persian-WinXP</description> <languageList> <iso639Id>per</iso639Id> </languageList> </configItem> <variantList> <variant> <configItem> <name>pes_keypad</name> <description>Persian (with Persian Keypad)</description> </configItem> </variant> <variant> <configItem> <name>ku</name> <shortDescription>ku</shortDescription> <description>Kurdish (Iran, Latin Q)</description> <languageList> <iso639Id>kur</iso639Id> </languageList> </configItem> </variant> <variant> <configItem> <name>ku_f</name> <shortDescription>ku</shortDescription> <description>Kurdish (Iran, F)</description> <languageList> <iso639Id>kur</iso639Id> </languageList> </configItem> </variant> <variant> <configItem> <name>ku_alt</name> <shortDescription>ku</shortDescription> <description>Kurdish (Iran, Latin Alt-Q)</description> <languageList> <iso639Id>kur</iso639Id> </languageList> </configItem> </variant> <variant> <configItem> <name>ku_ara</name> <shortDescription>ku</shortDescription> <description>Kurdish (Iran, Arabic-Latin)</description> <languageList> <iso639Id>kur</iso639Id> </languageList> </configItem> </variant> </variantList> </layout> <layout> <configItem> <name>iq</name> ...
Tapi sekarang, dengan perubahan ini Persian-WinXP
tata letak baru tidak taat irwinxp
dan irwinxp
igored. Sebaliknya ir
kontrol Persian-WinXP
.
Perbarui # 2:
Unity memiliki masalah dengan tata letak baru saya. Ikon tata letak baru gelap. Tapi itu bekerja dengan baik.
Catatan : Saya menggunakan Ubuntu 14.04.
keyboard-layout
xkb
user69453
sumber
sumber
Jawaban:
Membuat tata letak keyboard khusus
Sebagai contoh, saya sedang mencari untuk menambahkan baru dimodifikasi Inggris (AltGr kunci mati internasional) tata letak AS dengan bertukar
r
,R
&t
,T
. Saya akan menamainya XY swapped: RT English (kunci mati AltGr internasional) .Buat file simbol baru:
sudo nano /usr/share/X11/xkb/symbols/xy
include "us(altgr-intl)"
berarti itu mewarisi semua kunci dari tata letak hanya kunci yang ditimpa di sini.Anda dapat menggunakan Editor Layout Keyboard yang merupakan program GUI yang membantu membuat atau mengedit layout keyboard XKB. Terima kasih kepada @Glutanimate
Tambahkan deklarasi tata letak baru ke
/usr/share/X11/xkb/rules/evdev.xml
(salin & ubahus
bagian tata letak)Referensi: Membuat layout keyboard varian baru tersedia di Pengaturan?
sudo gedit /usr/share/X11/xkb/rules/evdev.xml
Hapus cache xkb.
atau
Referensi: Mengapa 13.10 merusak tata letak keyboard khusus saya?
Balas untuk memperbaiki modifikasi OP
( Perbarui # 1 tata letak induk yang salah ) Anda telah memodifikasi
xkb_symbols "pes_part_basic"
yang ada diirwinxp
file: tidak apa-apa.tetapi
xkb_symbols "pes"
dalamirwinxp
file masih:yang seharusnya:
( Perbarui ikon kustom # 2 ) Jika
<shortDescription>en</shortDescription>
diubah menjadi<shortDescription>xy</shortDescription>
. Jadi tata letak baru akan berbedaEn
dan akan muncul sebagaiXy
.Kemungkinan besar tidak akan ada ikon untuk itu di
ubuntu-mono
. Maka indikator akan secara dinamis menghasilkan yang baru yang mungkin tidak mengikuti tema saat ini.Salin ikon tata letak untuk tema mono gelap / terang:
File SVG hanyalah XML. Buka lalu untuk mengedit dan mengubah nilai teks dari
En
keXy
:Contoh:
Perbarui cache tema:
Logout / login
Referensi Bermanfaat Lainnya
sumber
/usr/share/X11/xkb/rules/
.