Как использовать пробел в качестве клавиши-модификатора, переназначив [Shift] + [Пробел] на Super/Hyper?

Если вы выполняете длинную команду, где где-то в середине есть grep, вы также можете

vim `command1 | grep whatever | awk '{do_something_else}'`
4
08.05.2020, 00:09
1 ответ

Самое близкое, что я нашел, это довольно сложный набор упражнений с xmodmap и xcape, подробно описанный в разделе примеров файла xcape README .

Вот отрывок:

# Map an unused modifier's keysym to the spacebar's keycode and make it a
# control modifier. It needs to be an existing key so that emacs won't
# spazz out when you press it. Hyper_L is a good candidate.
spare_modifier="Hyper_L"
xmodmap -e "keycode 65 = $spare_modifier"
xmodmap -e "remove mod4 = $spare_modifier" # hyper_l is mod4 by default
xmodmap -e "add Control = $spare_modifier"

# Map space to an unused keycode (to keep it around for xcape to
# use).
xmodmap -e "keycode any = space"

# Finally use xcape to cause the space bar to generate a space when tapped.
xcape -e "$spare_modifier=space"

Я попробовал это, и мне удалось заставить пространство действовать как модификатор Super _L при использовании стиля модификатора, но я обнаружил, что синхронизация мешает нормальному вводу обычных пробелов, и я отключил это на следующий день. Возможно, есть какой-то способ настроить тайминги и заставить его работать, но я пока не вникал в подробности.

1
28.04.2021, 23:17

Теги

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