Як зіставити клавішу Caps Lock на клавішу Escape в Arch Linux


23

Моя ОС - 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 Arch?

Відповіді:


47

Будь-яке з наступного (у зростаючому порядку складності):

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

    setxkbmap -option caps:escape
    

setxkbmapможна знайти в пакет extra / xorg-setxkbmap .

  1. dconf-editororg.gnome.desktop.input-sources.xkb-options → Додати caps:escapeдо вищезазначеного поля.
  2. gnome-session-settings → Програми запуску → Додати → Ім'я = Перезапустити шапки блокування, щоб вийти, команда =setxkbmap -option caps:escape
  3. Створіть власну розкладку клавіатури

FYI, я отримав правило XKB grep ping /usr/share/X11/xkb/rulesfor capsі esc.


2
Спасибі метод dconf відмінно працював для мене!
Кіт Смайлі

Дякую за ні. 2. Я шукав цю інформацію протягом століть. Ні, я не можу встановити це в командному рядку черезgsettings org.gnome.desktop.input-sources xkb-options ['caps:none', 'numpad:pc', 'numpad:mac']
Олівер Ян Крилов

Щодо ні. 1: Якщо ви хочете замінити його замість двох клавіш втечі, можете запустити setxkbmap -option caps:swapescape.
comfreak

5

Для використання на Xсторінці Arch Wiki Gnome є вказівки щодо зміни клавіатури за допомогою XkbOptions :

Використовуючи dconf-редактор, перейдіть до ключа під назвою org.gnome.desktop.input-source.xkb-options та додайте до списку потрібні XkbOptions (наприклад, 'caps: swapescape').

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

KEYMAP=yourmap

3

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 та cap, але також дозволяти X вбити CtrlAlt Backspace. Більше інформації про це можна знайти вman xkeyboard-config .

GUI

Ви також можете скористатися GNOME Tweak Tool (пакет gnome-tweak-tool). Просто натисніть на кнопку Typingта виберіть у меню все, що вам подобається Ctrl position(див. Зображення нижче).

введіть тут опис зображення


2

Ви можете використовувати xmodmap. Поставте своє ~/.Xmodmap:

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

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


Це правильна, дистрогенна та настільно-агностична відповідь.
dotancohen

Коли я це вкладаю ~/.Xmodmap, нічого не відбувається :(
Jan Warchoł

Покладіть рядок xmodmap ~/.Xmodmapдо свого ~/.xinitrc!
uzsolt

Коли я ставлю це, ~/.Xmodmapа потім запускаю, xmodmap ~/.Xmodmapя отримую помилки:xmodmap: .Xmodmap:1: bad remove modifier name 'lock=caps_lock', not allowed xmodmap: .Xmodmap:2: bad keysym target key symbol 'Escape=Caps_Lock' xmodmap: .Xmodmap:3: bad keysym target key symbol 'Caps_Lock=Escape' xmodmap: .Xmodmap:4: bad add modifier name 'lock=caps_lock', not allowed xmodmap: 4 errors encountered, aborting
comfreak

Вам знадобляться пробіли навколо знака рівності. Я змінив відповідь.
uzsolt

0

! Я не знаю, чому відповіді вище не працюють. Ось робочий для мене. У вашій ~ / .Xmodmap

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

і потім

$ xmodmap ~/.Xmodmap

Я використовую Fedora та менеджер вікон не для Gnome. HTH


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 вказує, який макет активний
  • Правий Alt ( RAlt) - це "мультиквітка" (див. Ключ складання) )
    • RAlt+ eпороджує
    • RAlt+ 4генерує (подібно до того, як Shift+ 4генерує $)
  • Ctrl+ Alt+ Backspaceвбиває X
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.