19

Моя ОС - Arch Linux amd64, Gnome ENV.

Я хочу сопоставить ключ Caps Lock с Esc (escape) в Arch Linux. Я запускаю команду:

xmodmap -e 'clear Lock' -e 'keycode 0x42 = Escape'

Это работает хорошо, но мгновение спустя клавиша Caps Lock снова работает. И я должен снова запустить команду.

Я почти уверен, что это решение сработало, может быть, год назад. В чем моя проблема? Может ли кто-нибудь помочь мне навсегда связать ключ Caps Lock с ключом Escape в моей Arch Linux OS?

6 ответов6

39

Любое из следующего (в порядке возрастания сложности):

  1. Используйте setxkbmap для переназначения ключа (не требует демона и не зависит от вашей среды рабочего стола или оконного менеджера). Не забудьте добавить команду перед строкой exec gnome-session (или аналогичной) в вашем ~/.xinitrc или ~/.xsession .

    setxkbmap -option caps:escape
    

    setxkbmap можно найти в extra/xorg-setxkbmap.

  2. dconf-editor > org.gnome.desktop.input-sources.xkb-options > Добавить caps:escape в вышеупомянутое поле.

  3. gnome-session-settings > Автозагрузка программ> Добавить> Имя = Переназначить блокировку прописных букв для сброса , command = setxkbmap -option caps:escape
  4. Создать собственную раскладку клавиатуры

К вашему сведению, я получил правило xkb, выполнив команду grep /usr/share/X11/xkb/rules для caps и esc .

5

Для использования в X на странице Arch Wiki Gnome есть инструкции по изменению клавиатуры с помощью XkbOptions:

С помощью dconf-editor перейдите к ключу org.gnome.desktop.input-sources.xkb-options и добавьте нужные XkbOptions (например, «caps:swapescape») в список.

В консоли вы можете создать пользовательскую раскладку клавиш для того же эффекта. Создайте раскладку с необходимыми изменениями для CapsLock и бежать в /usr/share/kbd/keymaps/i386/qwerty/yourmap на то tar его и включают в себя линию в /etc/vconsole.conf позвонить его:

KEYMAP=yourmap
3

Вы можете использовать xmodmap. Поставь свой ~/.Xmodmap:

remove Lock=Caps_Lock
keysym Escape=Caps_Lock
keysym Caps_Lock=Escape
add Lock=Caps_Lock

(убедитесь, что при запуске X будет использоваться ваш ~/.Xmodmap)

2

Xorg.conf

Вы можете добиться этого, отредактировав файл /etc/X11/xorg.conf.d/00-keyboard.conf .

Пример файла:

Section "InputClass"
        Identifier      "system-keyboard"
        MatchIsKeyboard     "on"
        Option          "XkbLayout" "us"
        Option          "XkbModel"  "pc104"
        Option          "XkbOptions" "caps:swapescape"
EndSection  

Вы можете указать несколько XkbOptions, например caps:swapcaps,terminate:ctrl_alt_bksp для замены esc и caps, но также для разрешения уничтожения X с помощью Ctrl Alt Backspace. Вы можете найти больше информации об этом в man xkeyboard-config .

графический интерфейс пользователя

Вы также можете использовать GNOME Tweak Tool (пакет gnome-tweak-tool). Просто нажмите на Typing а затем выберите все, что вам нравится в меню Ctrl position (см. Изображение ниже).

0

Файл /etc/X11/xorg.conf.d/00-keyboard.conf также может быть автоматически сгенерирован с помощью systemd-localed . Используйте следующую команду:

localectl set-x11-keymap us "" "" caps:escape

Или, включая некоторые другие полезные опции:

localectl set-x11-keymap us,de "" "" caps:escape,grp:alt_caps_toggle,grp_led:caps,lv3:ralt_switch_multikey,terminate:ctrl_alt_bksp,eurosign:e,rupeesign:4

Быстрые объяснения:

  • CapsLk функционирует как Esc
  • Переключение между двумя раскладками клавиатуры us/de с помощью Alt+CapsLk
  • Светодиод CapsLk указывает, какая раскладка активна
  • Right Alt (RAlt) - это "мультиключ" (см. « Compose Key»)
    • RAlt+e генерирует
    • RAlt+4 генерирует (аналогично тому, как Shift+4 генерирует $)
  • Ctrl+Alt+Backspace убивает X
0

! Я не знаю, почему ответы выше не работают. Вот рабочий для меня. В вашем ~/.Xmodmap

! 66 is the keycode of Caps_Lock
clear    Lock
keycode  66 = Escape 

а потом

$ xmodmap ~/.Xmodmap

Я использую Fedora и не оконный менеджер Gnome. НТН

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .