Я хотел сделать то же самое, и после некоторых поисков и экспериментов, наконец, это заработало.
Решение 1
(См. решение 2 ниже, которое потенциально лучше)
Шаг 1 (сопоставление caps _lock + hjkl):Следуйте этому ответу и добавьте файл config.Вы должны добавить в файл «us», если вы используете раскладку клавиатуры для США, и пропустить другие сочетания клавиш, которые вам не интересны. Затем запустите setxkbmap -layout us
.
Шаг 2 (колпачки _запираются как выход):Прогон xcape -e 'ISO_Level3_Shift=Escape'
. Вы можете добавить эту строку в свой /etc/profile
, чтобы вам не приходилось запускать ее вручную после перезагрузки.
============================================== ====
Решение 2 (возможно лучше)
Я был доволен решением 1, пока не понял, что не могу использовать привязки клавиш в IntelliJ, что является большим обломком. В конце концов я понял, что могу просто использовать xmodmap и xcape для выполнения этой работы, но при этом иметь возможность использовать их в IntelliJ!
Шаг 1 (сопоставление заглавных букв _lock + hjkl):Создайте файл (скажем «~/.xmodmap» )со следующим содержимым:
keycode 66 = Mode_switch
keysym h = h H Left
keysym l = l L Right
keysym k = k K Up
keysym j = j J Down
keysym u = u U Prior
keysym i = i I Home
keysym o = o O End
keysym p = p P Next
Можете пропустить последние 4 строки. Я вставил их, потому что они могут быть полезны и вам. На самом деле, я очень надеюсь, что caps _улучшение блокировки будет работать в Linux.
Затем запустите xmodmap ~/.xmodmap
.
Шаг 2 (колпачки _запираются как выход):Прогон xcape -e 'Mode_switch=Escape'
.
Шаг 3 (необязательный):Чтобы не применять сочетания клавиш вручную, поместите 2 приведенные выше команды в свой /etc/profile
.
Вы можете обновить файлы /etc/skel
в каталогах пользователей с помощью скрипта, подобного этому.
#!/bin/bash
#
getent passwd |
while IFS=: read username x uid gid gecos home shell
do
[[ "$username" == root || ! -d "$home" ]] && continue
tar -cf - -C /etc/skel. | sudo -Hu "$username" tar --skip-old-files -xf -
done
Примечания
root
вообще не будут обновляться Для тех, кто найдет этот вопрос и использует FreeBSD, команда
pw usermod user -m
сделает именно это. Обратите внимание, что вы также можете использовать -k dir
для выбора другого каталога скелета как часть этой команды.