新しいキーボードレイアウトを作成するにはどうすればよいですか?

新しいキーボードレイアウトを作成するにはどうすればよいですか?

こんな悩みを抱えています。

できるだけ少ないキーの変更でイタリア語キーボードでキリル文字を使用したいので、新しいカスタム レイアウトを作成したいと思います。

/usr/share/X11/xkb/symbols ディレクトリにファイルを作成し、/usr/share/X11/xkb/rules の evdev.xml および evdev.lst ファイルを変更しました。設定キーボード設定ウィンドウを開くと、新しいレイアウトが見つかりますが、それを選択するとエラーが通知されます。

Errore nell'attivare la configurazione XKB.
Le cause di ciò potrebbero essere diverse.

Per segnalare questa situazione come bug, includere i risultati dei comandi:
• xprop -root | grep XKB
• gsettings get org.gnome.libgnomekbd.keyboard model
• gsettings get org.gnome.libgnomekbd.keyboard layouts
• gsettings get org.gnome.libgnomekbd.keyboard options

コマンドを実行すると次の結果が得られます。

xprop -root | grep XKB
_XKB_RULES_NAMES_BACKUP(STRING) = "evdev", "pc105", "it", "", ""
_XKB_RULES_NAMES(STRING) = "evdev", "pc105", "it,ru", ",", "grp:shifts_toggle"

gsettings get org.gnome.libgnomekbd.keyboard model
''

gsettings get org.gnome.libgnomekbd.keyboard layouts
['it', 'ru', ' ru_it ']

gsettings get org.gnome.libgnomekbd.keyboard options
['grp\tgrp:shifts_toggle']

私のレイアウト ファイルは次のとおりです。

partial alphanumeric_keys
xkb_symbols "ru_it" {

include "latin(type4)"

name[Group1]= “Russian (on Italian keyboard)”;  !!!!!TROUBLE IS HERE!!!!!!!!!


key <AB01> { [ Cyrillic_ya, Cyrillic_YA, z, Z ] }; // я Я z Z
key <AB02> { [ Cyrillic_che, Cyrillic_CHE, x, X ] }; // ч Ч x X
key <AB03> { [ Cyrillic_es, Cyrillic_ES, c, C ] }; // с С c C
key <AB04> { [ Cyrillic_em, Cyrillic_EM, v, V ] }; // м М v V
key <AB05> { [ Cyrillic_i, Cyrillic_I, b, B ] }; // и И b B
key <AB06> { [ Cyrillic_te, Cyrillic_TE, n, N ] }; // т Т n N
key <AB07> { [ Cyrillic_softsign, Cyrillic_SOFTSIGN, m, M ] }; // ь Ь m M
key <AB08> { [ Cyrillic_be, Cyrillic_BE, comma, semicolon ] }; // б Б , ;
key <AB09> { [ Cyrillic_yu, Cyrillic_YU, period, colon ] }; // ю Ю . :
key <AB10> { [ minus, underscore, dead_doubleacute, dead_doubleacute ] }; // - _
key <AC01> { [ Cyrillic_ef, Cyrillic_EF, a, A ] }; // ф Ф a A
key <AC02> { [ Cyrillic_yeru, Cyrillic_YERU, s, S ] }; // ы Ы s S
key <AC03> { [ Cyrillic_ve, Cyrillic_VE, d, D ] }; // в В d D
key <AC04> { [ Cyrillic_a, Cyrillic_A, f, F ] }; // а А f F
key <AC05> { [ Cyrillic_pe, Cyrillic_PE, g, G ] }; // п П g G
key <AC06> { [ Cyrillic_er, Cyrillic_ER, h, H ] }; // р Р h H
key <AC07> { [ Cyrillic_o, Cyrillic_O, j, J ] }; // о О j J
key <AC08> { [ Cyrillic_el, Cyrillic_EL, k, K ] }; // л Л k K
key <AC09> { [ Cyrillic_de, Cyrillic_DE, l, L ] }; // д Д l L
key <AC10> { [ Cyrillic_zhe, Cyrillic_ZHE, at, EuroSign ] }; // ж Ж @ €
key <AC11> { [ Cyrillic_e, Cyrillic_E, numbersign, degree ] }; // э Э # °
key <AD01> { [ Cyrillic_shorti, Cyrillic_SHORTI, q, Q ] }; // й Й q Q
key <AD02> { [ Cyrillic_tse, Cyrillic_TSE, w, W ] }; // ц Ц w W
key <AD03> { [ Cyrillic_u, Cyrillic_U, e, E ] }; // у У e E
key <AD04> { [ Cyrillic_ka, Cyrillic_KA, r, R ] }; // к К r R
key <AD05> { [ Cyrillic_ie, Cyrillic_IE, t, T ] }; // е Е t T
key <AD06> { [ Cyrillic_en, Cyrillic_EN, y, Y ] }; // н Н y Y
key <AD07> { [ Cyrillic_ghe, Cyrillic_GHE, u, U ] }; // г Г u U
key <AD08> { [ Cyrillic_sha, Cyrillic_SHA, i, I ] }; // ш Ш i I
key <AD09> { [ Cyrillic_shcha, Cyrillic_SHCHA, o, O ] }; // щ Щ o O
key <AD10> { [ Cyrillic_ze, Cyrillic_ZE, p, P ] }; // з З p P
key <AD11> { [ Cyrillic_ha, Cyrillic_HA, bracketleft, bracketright ] }; // х Х [ ]
key <AD12> { [ Cyrillic_hardsign, Cyrillic_HARDSIGN, plus, asterisk ] }; // ъ Ъ + *
key <AE01> { [ 1, exclam, dead_doubleacute, dead_doubleacute ] }; // 1 !
key <AE02> { [ 2, quotedbl, dead_doubleacute, dead_doubleacute ] }; // 2 quotedbl
key <AE03> { [ 3, sterling, dead_doubleacute, dead_doubleacute ] }; // 3 £
key <AE04> { [ 4, dollar, dead_doubleacute, dead_doubleacute ] }; // 4 $
key <AE05> { [ 5, percent, dead_doubleacute, dead_doubleacute ] }; // 5 %
key <AE06> { [ 6, ampersand, dead_doubleacute, dead_doubleacute ] }; // 6 &
key <AE07> { [ 7, slash, dead_doubleacute, dead_doubleacute ] }; // 7 /
key <AE08> { [ 8, parenleft, dead_doubleacute, dead_doubleacute ] }; // 8 (
key <AE09> { [ 9, parenright, dead_doubleacute, dead_doubleacute ] }; // 9 )
key <AE10> { [ 0, equal, dead_doubleacute, dead_doubleacute ] }; // 0 =
key <AE11> { [ apostrophe, question, dead_doubleacute, dead_doubleacute ] }; // ' ?
key <AE12> { [ igrave, asciicircum, dead_doubleacute, dead_doubleacute ] }; // ì ^
key <BKSL> { [ Cyrillic_io, Cyrillic_IO, braceleft, braceright ] }; // ё Ё { }
key <LSGT> { [ less, greater, dead_doubleacute, dead_doubleacute ] }; // < >
key <TLDE> { [ backslash, bar, dead_doubleacute, dead_doubleacute ] }; // \ |

include "level3(ralt_switch)"

};

evdev.xml ファイルの行は次のとおりです。

<layout>
<configItem>
<name> ru_it </name>
<shortDescription> ruit </shortDescription>
<description> "Russian (on Italian keyboard)" </description>
<languagelist>
<iso639Id> rus </iso639Id>
</languagelist>
</configItem>
</layout>

この問題を解決する方法を理解するのを手伝ってくれる人はいますか?

答え1

レイアウトは

name[Group1]= “Russian (on Italian keyboard)”;  !!!!!TROUBLE IS HERE!!!!!!!!!

標準の ASCII 引用符 "" の代わりに Unicode 引用符が含まれます。

答え2

あまりお役に立てないかもしれませんが、このすばらしいチュートリアルを見つけました:

http://people.uleth.ca/~daniel.odonnell/Blog/custom-keyboard-in-linuxx11

もしかしたら役に立つかも知れません。

関連情報