Як постійно перемикати Caps Lock та Esc


116

Як я можу постійно перемикати функції Caps Lockта Escклавіші в Saucy? Я можу використовувати цю команду для тимчасового виконання (до перезавантаження):

/usr/bin/setxkbmap -option "caps:swapescape"

Я спробував додати цю команду як додаток до запуску, але, схоже, нічого не робить.


1
Я поклав цю команду в свою, ~/.bashrcщоб вона зберігалася між перезавантаженнями системи. ( ctrl:nocapsдля мене, правда, для tmux)
опіят

2
@opyate Я поставив би цю команду в ~ / .profile, щоб вона запустилася лише один раз після інтерактивного входу.
suzanshakya

Відповіді:


125

Ще один спосіб зробити це через dconf-editor. Цей метод має кілька додаткових кроків gnome-tweak-tool, але він корисний, якщо ви не хочете втягувати залежності від інструменту налаштування.

Це дозволить вам використовувати caps:swapescapeсинтаксис і автоматично зробити зміни постійними.

sudo apt-get install dconf-tools

Після запуску dconf-editorперейдіть до org >> gnome >> desktop >> вхідних джерел

Додайте потрібні параметри xkb-options. Параметри рядків оточені одинарними лапками і розділені комами. Будьте уважні, щоб не видалити дужки на кінцях.

xkb-параметри в dconf-редакторі

За допомогою цього методу можна ввести більшість традиційних параметрів xkb, які більше не доступні в Налаштуваннях системи >> Введення тексту . Виняток становлять налаштування для перемикання макетів клавіатури, які наразі не працюють через помилку.

Для переліку параметрів та синтаксису використовуйте man 7 xkeyboard-configтермінал.

Ще один поширений варіант, який можна використовувати, - terminate:ctrl_alt_bkspдозволити ctrl+ alt+ backspaceзакінчити X-сеанс.


5
+1 для посилання keyboard-config(7), саме це я шукав.
ulidtko

61
Ви також можете зробити це з командного рядка, не встановлюючи dconf-редактор:dconf write /org/gnome/desktop/input-sources/xkb-options "['caps:escape']"
Pi Delport

4
Не виконайте вищевказану команду, використовуючи 'sudo', оскільки ця настройка здається конкретною для користувача.
Бор

11
Зауважте, що вам потрібно скористатися, 'caps:swapescape'якщо вам потрібно поміняти дві клавіші (замість того, щоб просто призначити Escїх Caps Lock).
thameera

1
або ви можете зробитиgsettings set org.gnome.desktop.input-sources xkb-options "['caps:escape']"
ACyclic

50

Рішення, яке повинно працювати для більшості дистрибутивів Linux:

setxkbmap -option caps:swapescape

Можливі й інші варіанти:

  • caps:none відключити
  • caps:escape щоб зробити це додатковою втечею
  • caps:super щоб зробити його додатковою клавішею супер (windows).

Щоб зробити цю роботу під час запуску , потрібно ввести її, ~/.profileоскільки це запуститься лише після інтерактивного входу.


1
Це працює в Ubuntu 14.04, Unity.
Чад

2
Також працював для мене в Ubuntu 16.04
Джессі Чан

4
станом на 18.04, введення setxkbmapкоманд ~/.xsessionrcі ~/.profileбільше не відображає налаштування зберігаються між
входами

2
@ Conrad.Dean Я використовую це в монетному дворі 19, який базується на 18.04 LTS: Тут немає проблем. Налаштування не повинні зберігатися, але завантажуються під час входу.
жоджо

~/.profileце бідне місце для цього - цей файл читається на кожній оболонці входу. Помістіть його у файл, який використовується при запуску X11, як-от ~/.xinitrcабо ~/.xsession.
sarnold

39

Гаразд, знайшов спосіб це зробити за допомогою інструменту gnome-tweak-tool.

З терміналу запустіть

sudo apt-get install gnome-tweak-tool -y && gnome-tweak-tool

Ви можете знайти можливість замінити Caps Lock та Esc у розділі "Введення тексту -> Ключова поведінка Caps Lock".


5
На Ubuntu 14 макет вікна дуже кричущий, але він все ще працює.
uvasal

1
Так, я думаю, gnome-tweak-toolне слід використовувати для цього завдання, оскільки для цього є інструменти за замовчуванням.
Лео Леопольд Герц 준영

Це, безумовно, найкраще рішення.
Джейсон Макветта

2
Для Ubuntu> 18.04 його можна знайти в Keyboard & Mouse> Additional Layout Options>Caps Lock Behavior
Adracus

Це працювало для мене 19.04. Я не міг отримати будь-який з xmodmapабо setxkbmapрішень зберігаються на 19.04.
ахморріс

23

Ви можете використовувати Xmodmap в терміналі , щоб поміняти місцями Caps Lockз Esc:

xmodmap -e "keycode 9 = Caps_Lock NoSymbol Caps_Lock"   #this will make Esc to act as Caps Lock
xmodmap -e "keycode 66 = Escape NoSymbol Escape"        #this will make Caps Lock to act as Esc

Щоб отримати цю зміну для кожного сеансу, після запуску попередніх команд створіть файл, викликаний .xmodmapза допомогою нових макетів ключів, використовуючи таку команду:

xmodmap -pke > ~/.xmodmap

Потім створіть файл, який називається .xinitrcу вашому домашньому каталозі, що містить такий рядок / команду:

xmodmap .xmodmap

6
Це не працює в Ubuntu 14.04. Я також спробував .xsessionrc файл, і він також не працював.
miguel.martin

Як скасувати налаштування?
hlin117

@ hlin117 Просто очистіть вміст ~/.xmodmapфайлу (запустившись лише > ~/.xmodmapу своєму терміналі), після чого перезапустіть сеанс.
Radu Rădeanu

2
У Ubuntu 14.04 це робить карти Escape на Caps_Lock, але Caps_Lock не відображається у Escape.
користувач1691145

1
Привіт, я це зробив, і це працює. Однак, крім того, що esc прив'язується до caplock, cap-lock тепер пов'язаний як з cap-lock, так і з втечею. Чи можливо, що настільне середовище якось все-таки перекриває це? Я використовую KDE
xor

18

Подібно @ Раду відповідь , але сумісний з 14.04 (дивись також ця відповідь ).

xmodmap -e "remove Lock = Caps_Lock"
xmodmap -e "keycode 9 = Caps_Lock NoSymbol Caps_Lock"
xmodmap -e "keycode 66 = Escape NoSymbol Escape"
xmodmap -pke > ~/.xmodmap

Якщо це не працює, замініть:

xmodmap -e "remove Lock = Caps_Lock"

з:

xmodmap -e "clear Lock"

Не працює в Linux Mint 17.1 (який базується на Ubuntu) :(
Jan Warchoł

3
довелося змінити "видалити замок = Caps_Lock" на "очистити блокування", щоб воно працювало
Софія

13

Перейдіть до значка шестерень у верхньому правому куті екрана та:

  • натисніть Налаштування системи
  • розкладка клавіатури
  • параметри ... (нижній правий кут)
  • Ключова поведінка шапки блокування (четверте вниз)
  • Прокрутіть униз і виберіть "Замінити ESC і Caps Lock".

Готово!


Джо : Ласкаво просимо до запитання Ubuntu! ;-) Чи можете ви, будь ласка, переглянути мої зміни, а також переглянути допомогу щодо редагування, щоб покращити читабельність ваших відповідей у ​​майбутньому ... ;-)
Fabby

2
Це має бути найкращою відповіддю для ubuntu та м'яти
prasad

Чи робить це щось на додаток до зазначених тут сценаріїв оновлень? Віддайте перевагу це за сценарієм.
Бен Крізі

7

Виконайте цю команду один раз у терміналі. dconfмає бути вже встановлено за допомогою gnome 3.

dconf write "/org/gnome/desktop/input-sources/xkb-options" "['caps:swapescape']"

Це рішення щойно перевірено на RedHat Enterprise Linux 7.
Чад Скітер

3

Це можна зробити за допомогою системного налаштування «Розкладка клавіатури» . Клацніть на "Параметри" для використовуваного макета, потім у розділі "Поведінка клавіші Caps Lock" виберіть "Перемикач Escape and Capslock".


Це недоступно принаймні 13.10.
Ісаак Донджі Лінделл


2

Я пізно , щоб відповісти, але звичайний спосіб поміняти Escі Ctrlце такі рядки в ~/.Xmodmapфайлі:

clear Lock
keysym Caps_Lock = Escape
keysym Escape = Caps_Lock
add Lock = Caps_Lock

Це повинно працювати з усіма робочими середовищами (KDE, Gnome) на найбільш поширених дистрибутивах (сімейство Ubuntu і Debian, сім'я Fedora та RH).


він не працював на ubuntu 16.04, не могли б ви, будь ласка, розробити більше?
MaikoID

@MaikoID: Це в значній мірі канонічний спосіб одноосібного обміну CapsLock та Esc. Я розумію, що новіші версії Ubuntu з Unity руйнують багато "канонічних unixy" речей, тому, мабуть, тому всі інші відповіді стосуються певного варіанту, характерного для версії, або DE-специфічного (Unity) методу. Оскільки це варте, це справді працює на Kubuntu, яким я особисто користуюся.
dotancohen

2

Для Ubuntu 18.04 та Gnome 3.30 це працює для мене:

gsettings set org.gnome.desktop.input-sources xkb-options "['caps:swapescape']"

ще працює 19.04.
Exeleration-G

1

На графічному інтерфейсі KDE (графічний інтерфейс користувача) це можна зробити з клавіатури макета в системних налаштуваннях. Клацніть на "Пристрої введення". У верхньому лівому куті натисніть Клавіатура. Потім натисніть на кнопку "Додатково" та в розділі "Поведінка клавіші Caps Lock" виберіть "Перемикач Escape and Capslock".


Чудово, що ви дали відповідь на це питання. Чи можете ви відредагувати своє запитання, щоб трохи розширити, можливо, з бажаним результатом, як тільки виберіть "Поміняти ESC та Caps Lock". вибрано.
Філ Великобританія

Привіт і ласкаво просимо до запитання Ubuntu! У своєму нинішньому стані ця відповідь справді не є повною, а тому ризикує видалити. Будь ласка, прочитайте нашу довідкову сторінку " Як відповісти ", а потім поверніться та відредагуйте свою відповідь, щоб включити більше деталей, зокрема, як це вирішує питання ОП. Крім того, прочитайте нашу екскурсію, щоб отримати знак та краще уявлення про те, як працює наш сайт. Побачимося!
Kaz Wolfe

завдяки вашим порадам. Я хочу, щоб це редагування було те, що ви хочете.
farhad goodarzi

FYI, посилання на ваш домен, здається, не працює (принаймні для мене), але попередній домен IP-адреси працює.
Ендрю Т.

1

Відповідь "Розкладка клавіатури" з відповіддю "Перемикач Escape and Capslock" вище не відповідає дійсності для Ubuntu 16.04 та ввімкнено (це було раніше? Dunno). Відповідь: щоб уникнути суєти з дозволами тощо, просто переключіться на root перед тим, як почати це робити, suввівши свій пароль root. Тоді:

    cd /etc/default/
    vim keyboard

Там ви побачите рядок:

    XKBOPTIONS=""

Змініть його на:

    XKBOPTIONS="caps:swapescape"

Вихід із vim із збереженням:

    :wqa

Перезавантажте.

І це буде постійним , обіцяю. :)


0

Примітка. Це не змінюється, лише карти з капсулами блокуються до esc. (Це було досить добре для моєї візитної картки.)

Для ubuntu 16:04 (із середовищем i3): створений файл ~ / .xessionrc із вмістом

xmodmap -e "clear lock" #disable caps lock switch
xmodmap -e "keysym Caps_Lock = Escape" #set caps_lock as escape

1
Хоча ця відповідь і справді може вирішити 1/2 питання, яке ОП запитало про те, що воно відображається у черзі відповідей низької якості через (я припускаю) довжини. Ви можете розглянути можливість її розширення з додатковими подробицями. Як і чому, можливо, це працює.
Старійшина Гек
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.