Ключевое слово xmodmap не работает

Я пытаюсь использовать Xmodmap, чтобы добавить некоторые немецкие diarees / umlauts на клавиатуру, но Xmodmap не работает с ними (но с другими перенаправлениями).

Я следую этому руководству: немецкий Umlauts на американской клавиатуре в X (Ubuntu 10.04) .

Xmodmap

Я добавил это к своему ~/.Xmodmap :

 keysym a = a A adiaeresis Adiaeresis keysym o = o O odiaeresis Odiaeresis keysym u = u U udiaeresis Udiaeresis keysym s = s S ssharp ssharp 

Ксев

Однако это не сработает. Вот результат от xev когда я xev o , удерживая AltGr , нажмите o , нажмите x :

 KeyPress event, serial 34, synthetic NO, window 0x4e00001, root 0x8e, subw 0x0, time 642618, (108,138), root:(173,190), state 0x10, keycode 32 (keysym 0x6f, o), same_screen YES, XLookupString gives 1 bytes: (6f) "o" XmbLookupString gives 1 bytes: (6f) "o" XFilterEvent returns: False KeyRelease event, serial 37, synthetic NO, window 0x4e00001, root 0x8e, subw 0x0, time 642644, (108,138), root:(173,190), state 0x10, keycode 32 (keysym 0x6f, o), same_screen YES, XLookupString gives 1 bytes: (6f) "o" XFilterEvent returns: False KeyPress event, serial 37, synthetic NO, window 0x4e00001, root 0x8e, subw 0x0, time 643792, (108,138), root:(173,190), state 0x10, keycode 108 (keysym 0xfe03, ISO_Level3_Shift), same_screen YES, XKeysymToKeycode returns keycode: 92 XLookupString gives 0 bytes: XmbLookupString gives 0 bytes: XFilterEvent returns: False KeyPress event, serial 37, synthetic NO, window 0x4e00001, root 0x8e, subw 0x0, time 645365, (108,138), root:(173,190), state 0x90, keycode 32 (keysym 0x0, NoSymbol), same_screen YES, XLookupString gives 0 bytes: XmbLookupString gives 0 bytes: XFilterEvent returns: False KeyRelease event, serial 37, synthetic NO, window 0x4e00001, root 0x8e, subw 0x0, time 645409, (108,138), root:(173,190), state 0x90, keycode 32 (keysym 0x0, NoSymbol), same_screen YES, XLookupString gives 0 bytes: XFilterEvent returns: False KeyPress event, serial 37, synthetic NO, window 0x4e00001, root 0x8e, subw 0x0, time 647660, (108,138), root:(173,190), state 0x90, keycode 53 (keysym 0xd7, multiply), same_screen YES, XLookupString gives 2 bytes: (c3 97) "×" XmbLookupString gives 2 bytes: (c3 97) "×" XFilterEvent returns: False KeyRelease event, serial 37, synthetic NO, window 0x4e00001, root 0x8e, subw 0x0, time 647722, (108,138), root:(173,190), state 0x90, keycode 53 (keysym 0xd7, multiply), same_screen YES, XLookupString gives 2 bytes: (c3 97) "×" XFilterEvent returns: False KeyRelease event, serial 37, synthetic NO, window 0x4e00001, root 0x8e, subw 0x0, time 650223, (108,138), root:(173,190), state 0x90, keycode 108 (keysym 0xfe03, ISO_Level3_Shift), same_screen YES, XKeysymToKeycode returns keycode: 92 XLookupString gives 0 bytes: XFilterEvent returns: False 

Вы заметите, что нажатие AltGr интерпретируется как ISO_Level3_Shift , и когда это и x нажаты, я получаю keysym 0xd7, multiply , т.е. × , который устанавливается как мой третий уровень для x . Так AltGr работает.

 $ xmodmap -pke | grep 53 keycode 53 = x X x X multiply approximate 

Однако, когда я keysym 0x0, NoSymbol o, я получаю keysym 0x0, NoSymbol , несмотря на настройку третьего уровня:

 $ xmodmap -pke | grep 32 keycode 32 = o O odiaeresis Odiaeresis 

То же самое происходит, когда я пытаюсь использовать AltGr + ( a | u | s ).

Xmodmap работает для других переназначений

Поскольку мой ключ PgUp на моем ноутбуке невелик, я переназначил num pad + на страницу Up в моей ~/.Xmodmap , и это работает нормально. Таким образом, мой файл XModmap читается (частично).

Почему мои повторные попытки для o / a / u не работают?

Я использую Ubuntu 14.0.1 с Ubuntu Unity.

2 Solutions collect form web for “Ключевое слово xmodmap не работает”

Предварительная заметка: похоже, что xmodmap недавно изменился; старые настройки не будут работать.

В вашем случае просмотрите количество значений для кода 53 (6 значений: x X x X multiply approximate ), который работает, и для o O odiaeresis Odiaeresis 32 (4 значения: o O odiaeresis Odiaeresis ), который не работает.

ISO_Level3_Shift выберет 5-е или 6-е значение, но в вашем случае они не будут установлены для кодового ключа 32. Следовательно, результат keysym 0x0, NoSymbol .

Что вам нужно:

 keysym a = a A a A adiaeresis Adiaeresis keysym o = o O o O odiaeresis Odiaeresis keysym u = u U u U udiaeresis Udiaeresis keysym s = s S s S ssharp ssharp 

Но лучше использовать XKB напрямую ( пример ).

Чтобы сделать правильный Alt ключ работой Alt Gr , его нужно сопоставить с Mode_switch вместо ISO_Level3_Shift , добавив строку

 keycode 108 = Mode_switch 

до ~/.Xmodmap :

 keycode 108 = Mode_switch keycode 38 = a A adiaeresis Adiaeresis keycode 30 = u U udiaeresis Udiaeresis keycode 32 = o O odiaeresis Odiaeresis keycode 39 = s S ssharp 

Если вы хотите, чтобы умлауты были на ключах, которые они имеют на немецкой клавиатуре, используйте:

 keycode 108 = Mode_switch keycode 48 = apostrophe quotedbl adiaeresis Adiaeresis keycode 47 = semicolon colon odiaeresis Odiaeresis keycode 34 = bracketleft braceleft udiaeresis Udiaeresis keycode 20 = minus underscore ssharp 

(Конечно, вы могли бы их объединить).

  • Параметр уровня ядра Debian - xorg не запускается с драйверами NVIDIA
  • Могу ли я отключить устройства отображения с помощью команды xrandr?
  • Выделите файлы в X и выполните некоторую функцию, как?
  • Как создать полный макет xkb и заставить его работать?
  • Как подключить клавиатуру и мышь к другому экрану?
  • Активировать выход HDMI без использования в качестве рабочего стола
  • Xvfb: требуется ли какая-то задержка для запуска какой-либо программы в новом сеансе?
  • Может ли Xorg использовать неквадратные пиксели?
  • Как установить xorg внутри виртуального хоста?
  • Как редактировать текст в любом месте с любимым редактором в Linux?
  • Debian 7 - Startx не запускает систему
  • Interesting Posts

    Как регистрировать все системные вызовы, сделанные программой, скажем, хром, используя аудит linux?

    Переместить каталог (с содержимым) в домашний каталог другого пользователя (без sudo)?

    btrfs баланс слишком длинный

    Установка списка пакетов с URL

    Мониторинг процессов в Solaris

    Какой процесс отправляет TCP SYN на Solaris 10?

    xdg-open игнорирует мои определения приложений

    Используя cURL, как я могу получить числовую строку, содержащую запятые и пробелы, и преобразовать их в строку NON COMAFIED

    Удалить дубликаты записей в текстовом файле

    в соответствии с SMART жестким диском не нарушена, но у меня есть ошибки в dmesg

    Изменить пароль пользователя в / etc / shadow

    Комбинация терминала и веб-браузера

    Почему терминал говорит, что у меня есть почта каждый раз, когда я его открываю?

    Команда, чтобы выделить появление метода в файле?

    Можно ли использовать дерево для отображения количества файлов на уровне?

    Linux и Unix - лучшая ОС в мире.