Пришло время записать результаты моих собственных исследований.
Я думал, что, должно быть, что-то упустил в xmodmap, и что он просто не очень хорошо документирован, и люди путаются. Но оказалось, что дизайн X.Org в отношении XKB и xmodmap просто глуп.
Вы можете использовать xmodmap для переопределения существующих отображений до тех пор, пока эти отображения действительно существуют в вашей оригинальной раскладке клавиатуры. В случае, описанном в вопросе, вы не можете расширить поведение каких-либо клавиш для использования AltGr. Вы можете только изменить AltGr keysyms для кодов клавиш, которые уже используют AltGr.
См. также: http://blog.azundris.com/archives/193-X-treme-pain-XKB-vs-XModMap.html
Это обходное решение описано в ответе @Ned64. Вы можете переназначить AltGr
с ISO_Level3_Shift
на Mode_switch
.
Я успешно использовал следующую командную строку для переназначения AltGr
.
xmodmap -e 'keycode 108 = Mode_switch'
Недостатком является то, что это нарушит текущую раскладку клавиатуры, но вы можете воссоздать все отображения по одному, используя xmodmap
, как уже упоминал @Ned64.
Я использую us(cz_sk_de)
в качестве раскладки клавиатуры и попытался изменить ее, добавив конфигурацию для клавиш, которые я хотел расширить.
key { [ comma, less, doublelowquotemark, leftdoublequotemark ] };
key { [ period, greater, ellipsis, rightdoublequotemark ] };
(В разделе xkb_symbols "cz_sk_de"
из /usr/share/X11/xkb/symbols/us
)
Просто переустановите раскладку клавиатуры, чтобы использовать модифицированную версию.
setxkbmap 'us(cz_sk_de)'
Теперь вы можете (1) набирать чешские и английские кавычки и многоточия, используя комбинации ,
, .
, Shift
и AltGr
и/или (2) переназначить эти клавиши с помощью xmodmap
теперь, когда они определены.
Основным недостатком является то, что setxkbmap
, похоже, не поддерживает произвольное расположение раскладок клавиатуры, и поэтому вам нужно писать в конфигурацию системы, а не в домашний каталог.
Похоже, это пример чрезмерной продуманности и плохого дизайна X.Org, когда даже такая тривиальная вещь, как отображение кода клавиши и комбинации модификаторов в символ, оказывается проблемой. Похоже, инструменты не предоставляют разумного способа просто изменить индивидуальное сопоставление ключей в пользовательской конфигурации без каких-либо побочных эффектов.
Я думаю, чтобы получить прозрачное сжатие, вам нужно использовать zfs. Зачем вам еще больше замедлять своп? Если компьютер должен работать с диском, а не с оперативной памятью, то это неоптимально. Вы, судя по всему, тоже ставите своп в сеть. Это будет иметь серьезные последствия для производительности.