Я думаю, проблема в том, что вы смешиваете команды xmodmap с командами setxkbmap (будь то в командной строке или с помощью меню графических настроек). Как вы заметили, команды setxkbmap будут переопределять команды xmodmap при изменении раскладки клавиатуры. Таким образом, логическим решением будет использование setxkbmap для изменения как макета, так и запятой клавиатуры до десятичного периода.
Когда вы используете setxkbmap для изменения макета, будут также применяться любые указанные настройки: полный список опций доступен на /usr/share/X11/xkb/rules/evdev.lst. Я не знаю, какие языковые макеты вы используете, поэтому я поместил всего два примера в конце следующей команды, которую вы можете использовать для переключения макетов с помощью ALt + Shift. Если у вас есть еще какие-либо ключевые сопоставления или привязки, которые вы хотите активировать, просто добавьте их в команду:
setxkbmap -option '' -option kpdl:dot -option grp:switch,grp:alt_shift_toggle gb,nl
Первый командный переключатель (-option '') очищает любые текущие настройки, как при новых настройках поскольку они добавлены и не заменяют существующие, если только эта опция не используется. Второй (-option kpdl:dot) гарантирует, что клавиша соответствующей клавиатуры будет точкой или периодом; третий командный переключатель (-option grp:switch,grp:alt_shift_toggle) устанавливает вашу способность переключать макеты с помощью ALt + Shift, а последний (gb,nl) указывает макеты для переключения.
[d8 ] Чтобы проверить свои настройки, вы можете ввестиsetxkbmap -query
, что приводит к:
rules: evdev
model: pc105
layout: gb,nl
options: kpdl:dot,grp:switch,grp:alt_shift_toggle
Добавьте полную строку setxkbmap выше, как элемент запуска, чтобы убедиться, что это
Более подробную информацию о setxkbmap можно получить, введя man setxkbmap или просмотрев man-файлы Ubuntu онлайн.