Как переназначить ключ с помощью shift и alt с помощью xmodmap?


9

Я хочу поставить иметь следующее поведение для ключа с кодом 94:

1) по умолчанию это <

2) со сдвигом это '>'

3) с alt это '|'

Мне удалось получить поведение по умолчанию и сдвиг только с помощью команды (имена из xev):

xmodmap -e "keycode 94 = less greater"

Я попробовал три вещи для всего поведения:

1)

xmodmap -e "keycode 94 mod1 = less greater bar"

2)

xmodmap -e "keycode 94 shift mod1 = less greater bar"

3)

xmodmap -e "keycode 94 = less greater"
xmodmap -e "add mod1 = less bar"

Первые два добавляют эффект наличия «<» по умолчанию и «|» со смещением. Я не совсем уверен, что сделал третий.

Я также получил то же поведение, что и в 1) и 2) (смещение имеет значение, alt ничего не делает) из команды:

xmodmap -e "keycode 94 mod1 = less bar"

Моя информация в основном основана на этом ответе (особенно в разделе бонусов).

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


1
Может быть, askubuntu.com/a/423245/16395 может помочь вам. Обратите внимание, что xmodmapбольше не рекомендуется в Ubuntu. Вы должны использовать более мощную (но гораздо более сложную) систему xkbd ... Вы можете найти ссылки в ответе по ссылке здесь
Rmano

Если это помогло, пожалуйста, проголосуйте. Вы должны высказать все ответы и вопросы, которые вы считаете полезными - это единственный способ сделать сайт полезным для новичков.
Rmano

1
К сожалению, я не могу проголосовать за него (у меня репутация 11, но нужно 15).
user1335014

Ответы:


6

Только что выяснил, эвристически! Посмотрите на следующее:

xmodmap -e "keycode 38 = a A aacute Aacute ae AE ae"

Это в основном

  1. а: нормальный а
  2. A: сдвиг + а
  3. б: altgr + a
  4. Á: shift + altgr + a
  5. æ: [некоторая комбинация модификаторов] + a
  6. Shift: shift + [некоторая комбинация модификаторов] + a
  7. æ: ???

Так что просто перенастройте ключ на нужные вам представления. Например, я переназначил точку + altgr для взаимодействия (хотя и немного целесообразно):

xmodmap -e "keycode 60 = period greater 0x00b7 0x00b7 0x00b7 0x00b7"    

вроде старый, но как выбрать / узнать, какой модификатор активировать 5. и 6.? я не могу заставить их срабатывать
fogx
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.