/ etc / X11 / Xmodmap не работает для Ubuntu?

3087
Xiè Jìléi

После нескольких дней исследований я обнаружил, что в Ubuntu /etc/gdm/Xsession выполняется вместо /etc/X11/Xsession. Хотя оба запускают скрипты под /etc/X11/Xsession.d.

Я определил /etc/X11/Xmodmapи создал скрипт подключения /etc/X11/Xsession.d/40load-xmodmap, но загруженный xmodmap теряется после 99x11-common_start.

Коды отладки:

/etc/X11/Xseesion: ... for file in Xsession.d/*; do . $file  echo The current xmodmap is:  xmodmap done ... 

Печатная версия xmodmap 40load-xmodmapработает очень хорошо, но определенные ключевые моды теряются после запуска рабочего стола.

Наконец, я определил xmodmap в пользовательском каталоге ~/.Xmodmap, на этот раз, когда сеанс запускается, всплывающее окно предлагает мне включить Xmodmap. Итак, я думаю, может быть, рабочий стол GNOME сбрасывает xmodmap?

2

1 ответ на вопрос

3
Gilles

Во-первых, вы должны знать, что есть два интерфейса для настройки клавиатуры под X:

  • Xmodmap: традиционный, простой, ограниченный.
  • XKB: современный, сложный, мощный.

Вы можете определить раскладку клавиатуры в /etc/X11/xorg.confс KBD устройством. (Похоже, что страница руководства по какой-то причине не находится в настоящем дистрибутиве.) Если вы этого не сделаете, настройки из /etc/default/console-setupприменяются.

Если ваш менеджер дисплеев - Gdm, он загружает настройки XKB и xmodmap (смотрите /etc/gdm/Xsession) из /etc/X11/Xkbmapи /etc/X11/Xmodmapсоответственно. Другие менеджеры дисплеев оставляют ваши настройки без изменений.

Когда вы входите в систему, среда рабочего стола может переопределять ваши настройки своими собственными настройками. Если вы используете стандартную среду Ubuntu, посмотрите этот вопрос .

Я рекомендую выбрать встроенную раскладку, которая соответствует вашей клавиатуре, в качестве раскладки системы, используя графический интерфейс Ubuntu Keyboard Preferences и нажимая «Применить для всей системы», а также отдельно сохраняя ваши личные настройки в ~/.xmodmapили ~/.xkbmap.

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