Я пытался настроить пользовательскую раскладку клавиатуры в Ubuntu 18.04.1 LTS для способности записать арабскую транслитерацию в научных целях (см.: https://en.wikipedia.org/wiki/Romanization_of_Arabic; https://en.wikipedia.org/wiki/DIN_31635) Поэтому я должен смочь ввести специальные символы.
Я более или менее следовал этим инструкциям:
Что я сделал:
Поскольку я говорю на немецком языке, я открыл "de" в/usr/share/X11/xkb/symbols/с gedit и полномочиями пользователя root.
В этом файле я вставил следующее в конце и сохранил (сделал резервное копирование оригинала прежде):
// Deutsch mit orientalistischer Umschrift
partial alphanumeric_keys
xkb_symbols "german_orient" {
include "de(basic)"
name[Group1]="Deutsch (Orientalistische Umschrift)";
key <BKSL> { [numbersign, apostrophe, U+02BE, dead_breve ] };
key <AE12> { [dead_acute, dead_grave, U+02BF, dead_ogonek ] };
key <AC11> { [adiaeresis, Adiaeresis, U+0304, dead_caron ] };
key <AB10> { [minus, underscore, U+0331, emdash ] };
key <AC10> { [odiaeresis, Odiaeresis, U+0307, dead_belowdot ] };
key <AB09> { [period, colon, U+0323, division ] };
key <AB08> { [comma, semicolon, U+030C, multiply ] };
key <AC06> { [h, H, U+032E, NoSymbol ] };
};
По сравнению с расположением стандартной клавиатуры на немецком языке для каждого ключа, перечисленного здесь, третья запись (= нажатие клавиши вместе с AltGr) была изменена согласно моим потребностям. BTW я получил Коды Unicode путем поиска специальных символов в Интернете.
Затем я открылся evdev.xml
в /usr/share/X11/xkb/rules/
таким же образом
В этом файле я искал немца (de) запись расположения и вставил в ее конце (значение прежде </layout>
) следующее и сохранило файл:
<variant>
<configItem>
<name>german_orient</name>
<description>Deutsch (Orientalistische Umschrift)</description>
</configItem>
</variant>
Затем я ввел следующую команду в терминале и нажал Enter sudo dpkg-reconfigure xkb-data
потому что во многих учебных руководствах по теме рекомендуется сделать так
Затем я сделал перезагрузку.
Затем я добавил новую раскладку клавиатуры "Deutsch (Orientalistische Umschrift)" (значение: немецкий язык (orientalistic транслитерация) в Предпочтениях Ubuntu
Результат не состоял в том, как я надеялся на:
Мало того, что я не был в состоянии записать специальные символы с ключами, которые я присвоил. Я предполагаю I, так или иначе "повредил" "de" раскладку клавиатуры, потому что, неважно, если я активировал стандартное немецкое расположение или "Deutsch (Orientalistische Umschrift)" - расположение через super+space, система, казалось, отступила к английской раскладке клавиатуры по умолчанию. Таким образом, даже если одна из немецких разметок была активирована буквы, которые я записал, были согласно английскому расположению (например, буквы "z" и "y" были переключены).
Так, в конце я отменил свои изменения с помощью резервных копий обоих файлов, которые я сделал, и теперь все вернулось к нормальному.
Но поскольку я должен смочь записать арабскую транслитерацию быстро в профессиональных целях и поскольку существует - по крайней мере, к моему знанию - никакие раскладки клавиатуры, с этой целью доступные для скачивания (поскольку число ученых в этом поле с помощью Linux является довольно небольшим), я нуждаюсь в помощи кого-то здесь, чтобы сказать мне, что измениться, чтобы заставить мою пользовательскую раскладку клавиатуры работать.
Я - все еще новичок в Linux, очень жаль если я пропустил что-то очевидное. Так или иначе, заранее спасибо за Вашу справку!
Я нашел решение сам, и я собираюсь отправлять его здесь, так как кто-то еще мог бы получить прибыль от него
Я Загруженный и установленный KeyboardLayoutEditor от https://github.com/simos/keyboardlayouteditor
Выполните KeyboardLayoutEditor и загрузите подходящий файл расположения языка (de в моем случае)
Затем Нажмите, "Запускают Кнопку" Карты Charakter, которая загрузит Gucharmap (я должен был установить его сначала через Центр программного обеспечения Ubuntu для этого для работы),
Теперь выберите символ, который Вы хотите добавить к определенному ключу (можно также искать, входит в систему Gucharmap путем ввода Кодов Unicode),
И перетащите его к одной из 4 позиций подходящего ключа в KeyboardLayoutEditor (см. ниже для заключительного кода),
То, когда Вы вставили все символы, Вам нужны Вы, может сохранить файл
Затем я использовал sudo dpkg-reconfigure xkb-data
команда в консоли
Наконец я сделал перезагрузку
Результат: Everythin работает как очарование теперь!:)
Я не знаю, почему это работало на этот раз при помощи KeyboardLayoutEditor.
Мое первое предположение - то, что это работало, потому что я не попытался добавить новый вариант к файлу раскладки клавиатуры (de), но отредактировал существующий, таким образом, избегающий некоторых возможных ошибок с редактированием узкого прохода и evdev-xml
Мое второе предположение - то, что это работало, потому что редактор KeyboardLayout записал Коды Unicode, отличающиеся, чем я имел, сначала вручную редактируя узкий проход.
(Это - окончательная версия, где ошибки, сделанные приложением, уже вручную исправлены мной),
////////////////////////////////////////////////////////////////////////////// ///
//
// Generated keyboard layout file with the Keyboard Layout Editor.
// For more about the software, see http://code.google.com /p/keyboardlayouteditor
//
xkb_symbols "basic"
{
name[Group1] = "German";
include "latin(type4)"
include "level3(ralt_switch)"
include "kpdl(comma)"
key <AB01> { [ y, Y, guillemotright, U203A ] }; // y Y » ›
key <AB02> { [ x, X, guillemotleft, U2039 ] }; // x X « ‹
key <AB04> { [ v, V, doublelowquotemark, singlelowquotemark ] }; // v V „ ‚
key <AB05> { [ b, B, leftdoublequotemark, leftsinglequotemark ] }; // b B “ ‘
key <AB06> { [ n, N, rightdoublequotemark, rightsinglequotemark ] }; // n N ” ’
key <AB08> { [ comma, semicolon, U030C, multiply ] }; // , ; Dˇ ×
key <AB09> { [ period, colon, U0323, division ] }; // . : D? ÷
key <AB10> { [ minus, underscore, U0331, emdash ] }; // - _ ̱ —
key <AC02> { [ s, S, U017F, U1E9E ] }; // s S ſ ẞ
key <AC06> { [ h, H, U032E ] }; // ̮
key <AC07> { [ j, J, dead_belowdot, dead_abovedot ] }; // j J D? D˙
key <AC10> { [ odiaeresis, Odiaeresis, U0307, dead_belowdot ] }; // ö Ö D˙ D?
key <AC11> { [ adiaeresis, Adiaeresis, U0304, dead_caron ] }; // ä Ä Dˉ Dˇ
key <AD03> { [ e, E, EuroSign, EuroSign ] }; // e E € €
key <AD06> { [ z, Z, leftarrow, yen ] }; // z Z ← ¥
key <AD11> { [ udiaeresis, Udiaeresis, dead_diaeresis, dead_abovering ] }; // ü D¨ D˚
key <AD12> { [ plus, asterisk, asciitilde, macron ] }; // + * ~ ¯
key <AE02> { [ KP_2, quotedbl, twosuperior, oneeighth ] }; // 2 " ² ⅛
key <AE03> { [ KP_3, section, threesuperior, sterling ] }; // 3 § ³ £
key <AE04> { [ KP_4, dollar, onequarter, currency ] }; // 4 $ ¼ ¤
key <AE11> { [ ssharp, question, backslash, questiondown ] }; // ß ? \ ¿
key <AE12> { [ dead_acute, dead_grave, U02BF, dead_ogonek ] }; // D´ D` ʿ D˛
key <BKSL> { [ numbersign, apostrophe, U02BE, dead_breve ] }; // # ' ʾ D˘
key <LSGT> { [ less, greater, bar, dead_belowmacron ] }; // < > | Dˍ
key <TLDE> { [ dead_circumflex, degree, U2032, U2033 ] }; // D^ ° ′ ″
};
Я сам нашел решение, и я опубликую его здесь, так как кто-то может извлечь из него выгоду
Я скачал и установил KeyboardLayoutEditor из https://github.com/simos/keyboardlayouteditor
Запустите KeyboardLayoutEditor и загрузите подходящий языковой файл макета (de в моем случае)
Затем нажмите кнопку «Начать карту характера», которая загрузит Gucharmap (мне пришлось сначала установите его через Ubuntu Software Center, чтобы это работало)
Теперь выберите символ, который вы хотите добавить к определенному ключу (вы также можете искать знаки в Gucharmap, вводя Unicode-коды )
И перетащите его на одну из 4 позиций подходящей клавиши в KeyboardLayoutEditor (окончательный код см. Ниже)
Когда вы вставили все нужные вам символы, вы можете сохранить файл
Затем я использовал команду sudo dpkg-reconfigure xkb-data
в консоли
Наконец я сделал перезагрузку
Я не знаю, почему это сработало на этот раз с использованием KeyboardLayoutEditor.
Мое первое предположение состоит в том, что это сработало, потому что я не пытался добавить новый вариант в файл раскладки клавиатуры (de), но отредактировал существующий, таким образом избегая некоторых возможных ошибок при редактировании de-file и evdev-xml
Мое второе предположение заключается в том, что это сработало, потому что редактор KeyboardLayout записывал Unicode-коды, отличные от тех, что были у меня при первом ручном редактировании файла.
]Обновление: согласно Гуннару Хьялмарссону, мое второе предположение, вероятно, может быть правильным, проблема заключается в знаках +
(это окончательная версия, где ошибки, допущенные приложением, уже вручную исправлены мной)
////////////////////////////////////////////////////////////////////////////// ///
//
// Generated keyboard layout file with the Keyboard Layout Editor.
// For more about the software, see http://code.google.com /p/keyboardlayouteditor
//
xkb_symbols "basic"
{
name[Group1] = "German";
include "latin(type4)"
include "level3(ralt_switch)"
include "kpdl(comma)"
key <AB01> { [ y, Y, guillemotright, U203A ] }; // y Y » ›
key <AB02> { [ x, X, guillemotleft, U2039 ] }; // x X « ‹
key <AB04> { [ v, V, doublelowquotemark, singlelowquotemark ] }; // v V „ ‚
key <AB05> { [ b, B, leftdoublequotemark, leftsinglequotemark ] }; // b B “ ‘
key <AB06> { [ n, N, rightdoublequotemark, rightsinglequotemark ] }; // n N ” ’
key <AB08> { [ comma, semicolon, U030C, multiply ] }; // , ; Dˇ ×
key <AB09> { [ period, colon, U0323, division ] }; // . : D? ÷
key <AB10> { [ minus, underscore, U0331, emdash ] }; // - _ ̱ —
key <AC02> { [ s, S, U017F, U1E9E ] }; // s S ſ ẞ
key <AC06> { [ h, H, U032E ] }; // ̮
key <AC07> { [ j, J, dead_belowdot, dead_abovedot ] }; // j J D? D˙
key <AC10> { [ odiaeresis, Odiaeresis, U0307, dead_belowdot ] }; // ö Ö D˙ D?
key <AC11> { [ adiaeresis, Adiaeresis, U0304, dead_caron ] }; // ä Ä Dˉ Dˇ
key <AD03> { [ e, E, EuroSign, EuroSign ] }; // e E € €
key <AD06> { [ z, Z, leftarrow, yen ] }; // z Z ← ¥
key <AD11> { [ udiaeresis, Udiaeresis, dead_diaeresis, dead_abovering ] }; // ü D¨ D˚
key <AD12> { [ plus, asterisk, asciitilde, macron ] }; // + * ~ ¯
key <AE02> { [ KP_2, quotedbl, twosuperior, oneeighth ] }; // 2 " ² ⅛
key <AE03> { [ KP_3, section, threesuperior, sterling ] }; // 3 § ³ £
key <AE04> { [ KP_4, dollar, onequarter, currency ] }; // 4 $ ¼ ¤
key <AE11> { [ ssharp, question, backslash, questiondown ] }; // ß ? \ ¿
key <AE12> { [ dead_acute, dead_grave, U02BF, dead_ogonek ] }; // D´ D` ʿ D˛
key <BKSL> { [ numbersign, apostrophe, U02BE, dead_breve ] }; // # ' ʾ D˘
key <LSGT> { [ less, greater, bar, dead_belowmacron ] }; // < > | Dˍ
key <TLDE> { [ dead_circumflex, degree, U2032, U2033 ] }; // D^ ° ′ ″
};