Установите раскладку клавиатуры на de, вариант нас

Я хочу установить свою раскладку клавиатуры на 'de' вариант 'нас'. На моей человечности 15.10 с единицей это хорошо работает с помощью команды setxkbmap de us.

Проблема, я должен выполнить эту команду после каждой начальной загрузки/после того, как каждое пробуждение от сна. Как я могу настроить свою систему для постоянного использования упомянутого расположения? Я знаю, что могу использовать некоторую форму автоматического запуска (единица или .xinitrc), однако это не будет работать, после приостанавливают. Я также читал об установке расположения в org.gnome.desktop.input-источниках здесь, но это не даст желаемые результаты с помощью строки 'de+us'.

Какие-либо идеи?

3
задан 13 April 2017 в 15:24

2 ответа

Отметьте другими искателями, приземляющимися на этой странице: это по-видимому специфично для de-us расположение в среде Единицы, потому что по некоторым причинам это испытывает недостаток в записи в конкретном конфигурационном файле.


Как данные клавиатуры хранятся в Ubuntu

В Ubuntu существует названная папка /usr/share/X11/xkb/symbols который содержит несколько подпапок, а также много текстовых файлов, каждый представляющий различное расположение. Большинство, если не все, этих разметок, имеют много вариантов. Тот, которым мы интересуемся, us вариант de клавиатура, таким образом, мы открываем файл de и прокрутите вниз к следующей записи (это было в строке 686 для меня, но я не нахожусь на 15,10).

partial alphanumeric_keys
xkb_symbols "us" {
    include "us"

    name[Group1]="German (US keyboard with German letters)";

    key <AC01> { [           a,          A, adiaeresis, Adiaeresis ] };
    key <AC02> { [           s,          S,     ssharp,     ssharp ] };
    key <AC10> { [   semicolon,      colon, odiaeresis, Odiaeresis ] };
    key <AC11> { [  apostrophe,   quotedbl, adiaeresis, Adiaeresis ] };
    key <AD03> { [           e,          E,   EuroSign,   EuroSign ] };
    key <AD07> { [           u,          U, udiaeresis, Udiaeresis ] };
    key <AD09> { [           o,          O, odiaeresis, Odiaeresis ] };
    key <AD11> { [ bracketleft,  braceleft, udiaeresis, Udiaeresis ] };
    key <AE03> { [           3, numbersign,    section,    section ] };
    key <AE11> { [       minus, underscore,     ssharp,   question ] };

    include "level3(ralt_switch)"
};

Это определяет клавиатуру, чтобы быть идентичным стандартному разнообразию QWERTY us, с изменениями в

  • ключи 1 (A), 2 (S), 10 (;), и 11 (') на домашней строке
  • ключи 3 (E), 7 (U), 9 (O), и 11 ([) на верхнем ряде
  • ключи 3 (3) и 11 (-) на строке чисел
  • клавиша ALT раньше получала доступ к специальным символам

Мы проверяем, что это правильно отформатировано, не пропустив скобок или чего-либо, и это. Это то, почему setxkbmap de us успешно выполняется, если только временно. Мы скопируем описание с этой записи позже.

Как доступы Ubuntu те данные

Ubuntu имеет установку реестра, где она сохраняет название клавиатуры или вводит с клавиатуры пользователя, хочет. Однако мы должны зафиксировать запись в другом конфигурационном файле, прежде чем Ubuntu примет нашу предпочтительную клавиатуру. Файл, который должен быть изменен, /usr/share/X11/xkb/rules/evdev.xml.

Этот файл имеет три главных раздела:

  • список известных моделей клавиатуры (описание физического расположения кнопок)
  • список известных раскладок клавиатуры (описание логического присвоения символов к ключам)
  • список опций (описание возможных модификаций к расположению)

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

<layout>
  <configItem>
    <name>de</name>

    <shortDescription>de</shortDescription>
    <description>German</description>
    <languageList>
      <iso639Id>ger</iso639Id>
    </languageList>
  </configItem>
  <variantList>
    <variant>
      <configItem>
        <name>us</name>
        <description>German (US keyboard with German letters)</description>
      </configItem>
    </variant>

Заметьте структуру этого раздела. Каждое расположение содержит конфигурацию и несколько вариантов. Я добавил новое variant запись (последние шесть строк), сразу после открытия тега variantList, содержание которого соответствует тому, что я нашел в файле данных клавиатуры выше.

После сохранения измените настройки реестра для выбора нашей недавно добавленной записи:

gsettings set org.gnome.desktop.input-sources sources [('xkb', 'de+us')]

Я считал необходимым выйти из системы и въехать задним ходом для этого изменения для вступления в силу, но после этого, расположение работало, как можно было бы надеяться, включая выживание приостанавливают/возобновляют циклы.

3
ответ дан 1 December 2019 в 15:55

Добавьте новый сценарий в /etc/pm/sleep.d, назовите его 20_my-layout

case "${1}" in
    resume|thaw)
        DISPLAY=:0.0 ; export DISPLAY
        setxkbmap de us
;;
esac

Источник: , Как выполнить команду после того, как резюме от приостанавливает?

1
ответ дан 1 December 2019 в 15:55

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

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