Пользовательский Вариант Клавиатуры (для Транслитерации арабского языка) не работа

Я пытался настроить пользовательскую раскладку клавиатуры в Ubuntu 18.04.1 LTS для способности записать арабскую транслитерацию в научных целях (см.: https://en.wikipedia.org/wiki/Romanization_of_Arabic; https://en.wikipedia.org/wiki/DIN_31635) Поэтому я должен смочь ввести специальные символы.

Я более или менее следовал этим инструкциям:

Что я сделал:

  1. Поскольку я говорю на немецком языке, я открыл "de" в/usr/share/X11/xkb/symbols/с gedit и полномочиями пользователя root.

  2. В этом файле я вставил следующее в конце и сохранил (сделал резервное копирование оригинала прежде):

    // 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 путем поиска специальных символов в Интернете.

  3. Затем я открылся evdev.xml в /usr/share/X11/xkb/rules/ таким же образом

  4. В этом файле я искал немца (de) запись расположения и вставил в ее конце (значение прежде </layout>) следующее и сохранило файл:

    <variant>
     <configItem>
     <name>german_orient</name>
     <description>Deutsch (Orientalistische Umschrift)</description>
     </configItem>
    </variant>
    
  5. Затем я ввел следующую команду в терминале и нажал Enter sudo dpkg-reconfigure xkb-data потому что во многих учебных руководствах по теме рекомендуется сделать так

  6. Затем я сделал перезагрузку.

  7. Затем я добавил новую раскладку клавиатуры "Deutsch (Orientalistische Umschrift)" (значение: немецкий язык (orientalistic транслитерация) в Предпочтениях Ubuntu

Результат не состоял в том, как я надеялся на:

Мало того, что я не был в состоянии записать специальные символы с ключами, которые я присвоил. Я предполагаю I, так или иначе "повредил" "de" раскладку клавиатуры, потому что, неважно, если я активировал стандартное немецкое расположение или "Deutsch (Orientalistische Umschrift)" - расположение через super+space, система, казалось, отступила к английской раскладке клавиатуры по умолчанию. Таким образом, даже если одна из немецких разметок была активирована буквы, которые я записал, были согласно английскому расположению (например, буквы "z" и "y" были переключены).

Так, в конце я отменил свои изменения с помощью резервных копий обоих файлов, которые я сделал, и теперь все вернулось к нормальному.

Но поскольку я должен смочь записать арабскую транслитерацию быстро в профессиональных целях и поскольку существует - по крайней мере, к моему знанию - никакие раскладки клавиатуры, с этой целью доступные для скачивания (поскольку число ученых в этом поле с помощью Linux является довольно небольшим), я нуждаюсь в помощи кого-то здесь, чтобы сказать мне, что измениться, чтобы заставить мою пользовательскую раскладку клавиатуры работать.

Я - все еще новичок в Linux, очень жаль если я пропустил что-то очевидное. Так или иначе, заранее спасибо за Вашу справку!

Обновление: Найденный решением самостоятельно

Я нашел решение сам, и я собираюсь отправлять его здесь, так как кто-то еще мог бы получить прибыль от него

Установите KeyboardLayoutEditor и отредактируйте файл раскладки клавиатуры

  1. Я Загруженный и установленный KeyboardLayoutEditor от https://github.com/simos/keyboardlayouteditor

    • Когда я пытался выполнить его, я заметил, что некоторые пакеты отсутствовали, который я должен был установить сначала и которые не были перечислены среди требований.
  2. Выполните KeyboardLayoutEditor и загрузите подходящий файл расположения языка (de в моем случае)

    • Затем выберите вариант, который Вы хотите отредактировать (в моем случае, "основном", так как я полагал, что, возможно, совершил некоторую ошибку при добавлении моего собственного варианта),
  3. Затем Нажмите, "Запускают Кнопку" Карты Charakter, которая загрузит Gucharmap (я должен был установить его сначала через Центр программного обеспечения Ubuntu для этого для работы),

  4. Теперь выберите символ, который Вы хотите добавить к определенному ключу (можно также искать, входит в систему Gucharmap путем ввода Кодов Unicode),

  5. И перетащите его к одной из 4 позиций подходящего ключа в KeyboardLayoutEditor (см. ниже для заключительного кода),

    • BTW я думаю приложение, сделал некоторые ошибки здесь. Поскольку с перетаскиванием некоторых символов к определенному ключу, это не записало корректный unicode-код в узкий проход, но некоторое название соответствующего символа мертвой клавиши. (Например, это записало "dead_belowdot" вместо U0323 allthough, я выбрал последний символ в Gucharmap и перетащил его. Я предполагаю, что это - ошибка.
    • Результат был
      • это с этими специальными символами мертвой клавиши, я должен был ввести их СНАЧАЛА и ЗАТЕМ букву, под которой я хотел, чтобы они появились или.
      • другие вставленные символы с корректным unicode-кодом могли быть введены ПЕРВЫМ вводом буквы и ЗАТЕМ специального символа, который я хотел добавить выше или ниже. Это - поведение, к которому я привык, таким образом, я пытался зафиксировать версии мертвой клавиши:
    • Мое решение состояло в том, чтобы отредактировать узкий проход рукой, заменяющей все неправильно вставленные версии мертвой клавиши корректным unicode-кодом для объединенной символьной версии. Теперь я могу ввести букву и затем добавить специальный символ.
  6. То, когда Вы вставили все символы, Вам нужны Вы, может сохранить файл

    • В моем случае KeyboardLayoutEditor только сохранил изменения в "основном" варианте в "узком проходе", но перезаписал целый "узкий проход", таким образом, удалив все другие варианты
    • Allthough я думаю, что мне не нужны другие варианты, мне не нравилось это. Таким образом, я скопировал код, который KeyboardLayoutEditor написал в узком проходе к моему de_backup, заменяющему "основной" раздел, тут же сохранил de_backup как "de" замена старого "de".
    • evdev.xml не должен быть отредактирован на этот раз, потому что существующий вариант был отредактирован так, никакой новый вариант/расположение не должен быть добавлен к файлу.
  7. Затем я использовал sudo dpkg-reconfigure xkb-data команда в консоли

  8. Наконец я сделал перезагрузку

Результат: Everythin работает как очарование теперь!:)

Некоторые мысли

Я не знаю, почему это работало на этот раз при помощи KeyboardLayoutEditor.

  1. Мое первое предположение - то, что это работало, потому что я не попытался добавить новый вариант к файлу раскладки клавиатуры (de), но отредактировал существующий, таким образом, избегающий некоторых возможных ошибок с редактированием узкого прохода и evdev-xml

  2. Мое второе предположение - то, что это работало, потому что редактор KeyboardLayout записал Коды Unicode, отличающиеся, чем я имел, сначала вручную редактируя узкий проход.

    • Например, unicode-код, который я вставил, был похож на это: U+02BE
    • Unicode-код, записанный приложением, похож на это: U02BE
    • Возможно, путем игнорирования "+" это работало? Поскольку я - новичок, я не знаю.
    • Некоторые хорошо осведомленные люди могли бы видеть другую причину в коде ниже.

Код, который работал, который я вставил в файл раскладки клавиатуры (de в моем случае)

(Это - окончательная версия, где ошибки, сделанные приложением, уже вручную исправлены мной),

//////////////////////////////////////////////////////////////////////////////    ///
//
// 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^ ° ′ ″ 
};
2
задан 21 September 2018 в 13:12

1 ответ

Обновление: сам нашел решение

Я сам нашел решение, и я опубликую его здесь, так как кто-то может извлечь из него выгоду

Установите KeyboardLayoutEditor и отредактируйте файл раскладки клавиатуры

  1. Я скачал и установил KeyboardLayoutEditor из https://github.com/simos/keyboardlayouteditor

    • Когда я попытался запустить его Я заметил, что отсутствуют некоторые пакеты, которые мне нужно было установить первыми и которые не были указаны в требованиях.
  2. Запустите KeyboardLayoutEditor и загрузите подходящий языковой файл макета (de в моем случае)

    • Затем выберите вариант, который вы хотите редактировать (в моем случае " «базовый», так как я подумал, что, возможно, допустил ошибку при добавлении своего собственного варианта)
  3. Затем нажмите кнопку «Начать карту характера», которая загрузит Gucharmap (мне пришлось сначала установите его через Ubuntu Software Center, чтобы это работало)

  4. Теперь выберите символ, который вы хотите добавить к определенному ключу (вы также можете искать знаки в Gucharmap, вводя Unicode-коды )

  5. И перетащите его на одну из 4 позиций подходящей клавиши в KeyboardLayoutEditor (окончательный код см. Ниже)

    • Кстати, я думаю приложение допустило некоторые ошибки здесь. Потому что при перетаскивании некоторых символов на определенную клавишу, он не записывал в файл правильный юникод-код, а какое-то имя соответствующего символа мертвой клавиши. (Например, он написал «dead_belowdot» вместо U0323, хотя я выбрал последний символ в Gucharmap и перетянул его. Я предполагаю, что это ошибка.
    • В результате было
      • , что с этими deadkey специальные символы Я должен был набрать их ПЕРВЫМ, а затем букву, которую я хотел, чтобы они появлялись над или под.
      • другие вставленные символы с правильным юникод-кодом можно было набрать, набрав ПЕРВЫЙ текст, а затем специальное символ, который я хотел добавить выше или ниже. Это поведение, к которому я привык, поэтому я попытался исправить версии «мертвой клавиши»:
    • Моим решением было редактировать файл путем вручную заменив все неправильно вставленные deadkey-версии на правильный unicode-код для комбинированной символьной версии. Теперь я могу напечатать букву и затем добавить специальный символ.
  6. Когда вы вставили все нужные вам символы, вы можете сохранить файл

    • В моем случае KeyboardLayoutEditor не просто сохранил изменения в "bas IC вариант внутри «de-file», но перезаписал весь «de-file», удалив все остальные варианты
    • Несмотря на то, что я думаю, что мне не нужны другие варианты, мне это не понравилось. Поэтому я скопировал код, который KeyboardLayoutEditor написал в файле de-File, в мой de_backup, заменив там раздел «basic», а затем сохранил de_backup как «de», заменив старый «de».
    • На этот раз не нужно редактировать evdev.xml, так как существующий вариант был отредактирован, поэтому в файл не нужно добавлять новый вариант / макет.
  7. Затем я использовал команду sudo dpkg-reconfigure xkb-data в консоли

  8. Наконец я сделал перезагрузку

[ 1142] Результат: теперь все работает как шарм! :)

Некоторые мысли

Я не знаю, почему это сработало на этот раз с использованием KeyboardLayoutEditor.

  1. Мое первое предположение состоит в том, что это сработало, потому что я не пытался добавить новый вариант в файл раскладки клавиатуры (de), но отредактировал существующий, таким образом избегая некоторых возможных ошибок при редактировании de-file и evdev-xml

  2. Мое второе предположение заключается в том, что это сработало, потому что редактор KeyboardLayout записывал Unicode-коды, отличные от тех, что были у меня при первом ручном редактировании файла.

    ]
    • Например, код Unicode, который я вставил, выглядел так: U + 02BE
    • Код Unicode, написанный приложением, выглядит следующим образом: U02BE [ 1149]
    • Возможно, пропуская "+", это сработало? Поскольку я нуб, я не знаю.
    • Некоторые знающие люди могут увидеть другую причину в коде ниже.

Обновление: согласно Гуннару Хьялмарссону, мое второе предположение, вероятно, может быть правильным, проблема заключается в знаках +

Кодекс, который работал, что я вставлен в файл раскладки клавиатуры (de в моем случае)

(это окончательная версия, где ошибки, допущенные приложением, уже вручную исправлены мной)

//////////////////////////////////////////////////////////////////////////////    ///
//
// 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^ ° ′ ″ 
};
2
ответ дан 2 December 2019 в 03:31

Другие вопросы по тегам:

Похожие вопросы: