Я хочу установить свою раскладку клавиатуры на 'de' вариант 'нас'. На моей человечности 15.10 с единицей это хорошо работает с помощью команды setxkbmap de us
.
Проблема, я должен выполнить эту команду после каждой начальной загрузки/после того, как каждое пробуждение от сна. Как я могу настроить свою систему для постоянного использования упомянутого расположения? Я знаю, что могу использовать некоторую форму автоматического запуска (единица или .xinitrc), однако это не будет работать, после приостанавливают. Я также читал об установке расположения в org.gnome.desktop.input-источниках здесь, но это не даст желаемые результаты с помощью строки 'de+us'.
Какие-либо идеи?
Отметьте другими искателями, приземляющимися на этой странице: это по-видимому специфично для 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
, с изменениями в
Мы проверяем, что это правильно отформатировано, не пропустив скобок или чего-либо, и это. Это то, почему 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')]
Я считал необходимым выйти из системы и въехать задним ходом для этого изменения для вступления в силу, но после этого, расположение работало, как можно было бы надеяться, включая выживание приостанавливают/возобновляют циклы.
Добавьте новый сценарий в /etc/pm/sleep.d
, назовите его 20_my-layout
case "${1}" in
resume|thaw)
DISPLAY=:0.0 ; export DISPLAY
setxkbmap de us
;;
esac
Источник: , Как выполнить команду после того, как резюме от приостанавливает?