выполнить команду, чтобы поменять Caps Lock и Ctrl при запуске

Я немного озадачен, почему это не работает, как задумано. Моя цель состоит в том, чтобы сопоставить ключ блокировки Caps с контролем. Я использую Debian. Для этого я использую следующую команду

/usr/bin/setxkbmap -layout "$(setxkbmap -print | awk -F + '/xkb_symbols/ {print $2}')" -option ctrl:nocaps 

который прекрасно работает, если я выполню его через терминал. Тем не менее, я хочу, чтобы это было сделано при запуске или входе в систему и всегда выполняю это вручную. Я попытался добавить эту команду в приложение сеанса автоматического запуска в XFCE, а также поместить команду в мой ~/.profile . Однако оба варианта не работают. Я все еще должен выполнить это вручную (который после того, как это правильно сопоставлено). Что я делаю неправильно?

Причина, по setxkbmap команда setxkbmap не добавилась после добавления ее в ~/.profile заключается в том, что этот файл читается вашей оболочкой (вероятно, bash) только при запуске оболочки входа в систему . В эмуляторах X терминала не запускаются логины. Вы добавляете setxkbmap в ваш ~/.bashrc если используете Bash но в системах debian есть лучший способ – измените раздел XKBOPTIONS в вашей /etc/default/keyboard , например:

 root@debian:/home/ja# cat /etc/default/keyboard # KEYBOARD CONFIGURATION FILE # Consult the keyboard(5) manual page. XKBMODEL="pc105" XKBLAYOUT="us" XKBVARIANT="" XKBOPTIONS="ctrl:nocaps" BACKSPACE="guess" 

Теперь выполните эту команду, как описано в man 7 keyboard :

 udevadm trigger --subsystem-match=input --action=change 

Вам даже не нужно перезапускать lightdm . При следующем lightdm настройки в /etc/default/keyboard будут применены автоматически. Я только что проверил это на своем Debian 9.4 .

Я думаю, что лучший способ – это создать файл .xsessionrc в вашем домашнем каталоге.

 cat .xsessionrc setxkbmap -option ctrl:nocaps 

Этот файл читается при каждом запуске вашего сеанса.
Таким образом, затрагивается только ваша сессия.
Другие пользователи не понимают этого.
Это нормально для Debian и NetBSD.