Як перезавантажити клавіші Caps Lock та Ctrl?


77

Я хотів би перевстановити свої ключі таким чином, що він Ctrlповодиться як Caps Lockключ і навпаки. Також, якщо можливо, я хотів би, щоб налаштування були доступні лише в поточного користувача, який увійшов. Як я можу цього досягти?

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


1
Хто Це допоможе?
Мітч


4
Мене вражає, що це не стандартна функція в налаштуваннях Linux сьогодні та віку.
Едвард Фолк

Відповіді:


59

13.10+:

Установка і використання gnome-tweak-tool> Keyboard & Mouse> Keyboard> Additional Layout Options> Caps Lock behavior.

Попередньо 13.10:

Відкрийте діалогове вікно Налаштування клавіатури ( System -> Preferences -> Keyboard). На вкладці макета натисніть Options...кнопку. Розгорніть Ctrl key positionрозділ і виберіть Swap Ctrl and Caps Lock.

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


2
Ця опція зникла в Ubuntu Saucy. Я не впевнений, як це пояснити, але його просто немає. У налаштуваннях клавіатури немає вкладки "Макет", але є кнопка "Налаштування макета", і коли я натискаю на неї, переходить на вкладку "Джерела введення" на панелі "Регіон і мова", якої загадково не вистачає будь-якого виду кнопки "Параметри". Єдина кнопка там відкриває віртуальну екранну клавіатуру, яка відображає мій розбитий розклад клавіатури для мене, не змінюючи, які клавіші ведуть себе в якому напрямку.
robru

4
Для Ubuntu 13.10 вам потрібно буде використовувати gnome-tweak-tool.
Джеремі Біча

1
Попередньо варіант 13.10 працює для мене в 14.04
JeremyKun

Те саме, що і @JeremyKun. У моєму випадку, використовуючи 14.04, розчин до 13.10 працював, але 13.10+ не
ставав

Дякую за цю відповідь! gnome-tweak-toolДуже приємно; Ви також можете використовувати його для приємностей, таких як "використовувати Caps Lock для перемикання розкладок клавіатури" (особистий фаворит) та "переключення Alt / Win" (що корисно, якщо ви давно користуєтеся Mac ...)
Пер Лундберг

63

Один з найкращих способів зробити це графічно - це встановити інструмент налаштування Gnome Tweak :

sudo apt-get install gnome-tweak-tool

  • Відкрийте інструмент налаштування та натисніть на розділ набору тексту в лівій колонці.
  • Тепер ви побачите ліворуч поведінку клавіші Caps Lock .
  • У спадному списку виберіть Зробити Caps Блокування додаткового ключа Ctrl замість Вимкнено, і ви повинні бути хорошими.

Крім того, панель налаштувань не потребує багато часу, щоб підняти на моїй машині, тому я не маю поняття, у чому проблема.

Насолоджуйтесь своїм новим Ctrlключем!


Я хотів використовувати клавішу CAPS, щоб вимкнути екран. Я налаштовував це раніше у вікні «Налаштування системи»> «Клавіатура», але CAPS все ще перемикав стан CapsLock та світлодіод. Тому я відключив ключ із рекомендованим вами інструментом (який має деякі помилки на дисплеї btw. - прозорий фон вікна), який також зупинив роботу мого користувацького ярлика. Після відключення мені довелося знову встановити ярлик, щоб він працював. Він встановив значення 0xff або щось подібне замість CAPS. Я думав, що ця процедура може допомогти деяким майбутнім читачам з подібними побажаннями.
Байт-командир

Коли я запускаю gnome-tweak-tool з командного рядка, з'являється повідомлення про помилку про те, що оболонка не запускає DBus, і тоді будь-які спроби змінити налаштування не дають ефекту.
Едвард Фолк

1
Оновлення: інструмент gnome-tweak працює лише всередині оболонки gnome
Edward Falk

1
у лівій колонці немає розділу "набір тексту": лише робочий стіл, шрифти, оболонки, розширення оболонки, тема, Windows.
Reb.Cabin

2
Зверніть увагу, що параметр в gnome-tweak-tool для заміни знаходиться в розділі "Позиція клавіші Ctrl", а не "Поведінка ключа Caps Lock".
Філ Гец

58

Ось спосіб це зробити без встановлення додаткового програмного забезпечення:

setxkbmap -layout us -option ctrl:nocaps

Джерело:


3
Це не витримає після перезавантаження. Як я можу зробити це постійним? Я краще не ставлю це до сценарію запуску (наприклад, .bashrc).
нік

8
@nic Також потрібно змінити файл sudo vi /etc/default/keyboardі змінити XKBOPTIONS="ctrl:nocaps". Запустіть команду Jorge після цього, але як setxkbmap -option ctrl:nocapsтаку, щоб вона не змінила стандартну розкладку клавіатури.
Лео Леопольд Герц 준영

43

Для редагування відкрийте наступне:

sudo vi /etc/default/keyboard

І редагуйте XKBOPTIONS="ctrl:swapcaps"

Потім переконфігуруйте:

sudo dpkg-reconfigure keyboard-configuration

або

/usr/bin/setxkbmap -option "ctrl:swapcaps"

Питання було "Я хотів би ці налаштування лише для мого облікового запису". Редагування / etc / default / клавіатура змінить її для всіх.
лижник

1
у вас є 3 кроки (1, 2, 3). Ви маєте на увазі [(1 і 2) або 3] або [1 і (2 або 3)]?
jgomo3

Чудово! Побіг sudo dpkg-reconfigure keyboard-configurationі натисніть кілька входів, і це спрацювало !!! РЕДАКТУВАННЯ: однак, після того як я вийшов із системи та знову ввійшов у систему, налаштування вимкнулось. :(
LeOn - Хан Лі

24

Щоб назавжди змінити поведінку:

  1. бігати dconf-editor

  2. виберіть org.gnome.desktop.input-sources

  3. Зміна xkb-optionsдо ['ctrl:nocaps'](або додати його в будь-які існуючі варіанти)

або в командному рядку ( Увага! це перезаписує ваші існуючі налаштування! ):

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

Цей один вкладиш можна також додати до ~ / .profile для переносу.
jthetzel

Це не спрацювало для мене на Kubuntu 16.04 навіть після перезавантаження.
zplizzi

3
Налаштування dconf застосовуються негайно та є стійкими, тому не має сенсу вводити його в ~ / .profile і немає потреби в перезавантаженні. Цей конкретний параметр стосується лише Gnome / Unity, а не KDE, який використовується в Kubuntu.
Антон Еліассон

4

Це легке завдання, як тільки ви знаєте, як це зробити.

1) Перевірте код вашого ключа. Запустіть цю програму на терміналі.

xev


У цьому прикладі термінал показує, що код ключа для мого k"45".

2) Змініть їх так, як вам подобається створити цей файл:

gedit ~ / .Xmodmap

Його вміст повинен виглядати приблизно так:

keycode 37 = Caps_Lock NoSymbol Код
клавіші Caps_Lock 66 = Control_L NoSymbol Control_L

(Змініть номер коду за потребою - подивіться крок "1")

Ілюстрація:
( Пояснення: якщо я хочу змінити свою, kя повинен використовувати "keycode 45", як показано на кроці "1").

4) Вийдіть із системи та увійдіть знову, перезавантажте або запустіть це:

xmodmap ~ / .Xmodmap

Сподіваюся, вам сподобається ;-)


2
Зауважте, що це рішення, ймовірно, може спричинити проблеми для будь-якого, крім найпростіших макетів. Сумісність xmodmap в новій системі xkb не є ідеальною, тому вам, мабуть, краще дотримуватися xkb, якщо можливо.
James Henstridge

@James Ви хотіли б пояснити, як ми можемо це зробити?
десгуа

Дивіться іншу відповідь на це питання. На стандартній панелі керування клавіатурою буде побудовано та викладено xkb клавіатурну карту із вибраного базового макета та додаткові параметри.
Джеймс Генстридж

1
Що ж, ви можете налаштувати ті самі карти ключів за допомогою програми командного рядка setxkbmap. Написання нових мап клавіш можливо, але трохи більше, ніж відображення ключових кодів Xmodmap. Добре, що більшість варіантів варіантів, які ви хочете, вже доступні.
James Henstridge

1
@James. Я шукав і дізнавався про setxkbmap. Але я не зміг знайти відповідь на те: чи можна переробити ключ до всього, що ми хочемо? Наприклад, щось ексцентричне на кшталт: "keycode 51 = bracketright braceright bracketright braceright maskirine bar"?
десгуа

4

Ось як це зробити вручну (без додаткових інструментів) через XKB, який є менеджером клавіш за замовчуванням для недавнього Ubuntus. Змінити /usr/share/X11/xkb/symbols/pc, розділ xkb_symbols "pc105":

//key <CAPS> {  [ Caps_Lock     ]   };
//key <LCTL> {  [ Control_L     ]   };
key <CAPS> {    [ Control_L ]   };
key <LCTL> {    [ Caps_Lock     ]   };

Вхід / вихід або перезавантаження. Дивіться тут для більш детальної інформації.

Крім того, ви можете змінювати місцями на рівні клавішних кодів, які випромінюються цими кнопками. Modify /usr/share/X11/xkb/keycodes/evdev:

<CAPS> = 64; //66;
<LCTL> = 66; //64

Вам потрібно sudo rm -rf /var/lib/xkb/*буде застосувати зміни.


Відмінний момент щодо роботи на рівні клавішних кодів. На моїх ноутбуках під керуванням Kubuntu Bionic просто зміна на рівні символів не є задовільним, оскільки натискання фізичної клавіші Caps все ще перемикає внутрішній стан Caps. Зміна клавішних кодів працює! BTW Я розширив це на три клавіші (Caps, Meta та RAlt) і хотів би зазначити, що вам потрібно писати, <CAPS> = *orig code of the physical key you want to act **as** CAPS*а не <CAPS> = *orig code of the key you want physical CAPS to act **as**(сподіваюся, що розрізнення зрозуміло). Ця відмінність потрібна в таких випадках.
jamadagni

3

Прийнята відповідь є заплутаною, оскільки gnome-tweak-tools не містить жодного розділу "набору тексту".

Замість цього натисніть на розділ «Клавіатура та миша», а потім виберіть «Додатковий варіант компонування». Там ви побачите "Поведінка Caps Lock", яка дозволяє перетворити блокування шапки в різні клавіші.

Знімок екрана з інструменту


2

У дистрибутивах на основі KDE (наприклад, KDE Neon або Kubuntu) цю поведінку можна налаштувати в звичайних системних налаштуваннях. Відкрийте налаштування системи, виберіть "Пристрої введення" => "Клавіатура" => "Додатково". У категорії "Позиція клавіш Ctrl" виберіть "Замінити Ctrl і Caps Lock".

Знімок екрана клавіатури модуля системних налаштувань KDE


0

gnome-tweaks 3.28.1 не має Typingрозділу.
Таким чином, setxkbmap -layout us -option ctrl:nocapsабо setxkbmap -layout us -option ctrl:swapcapsбули б здійсненні варіанти.

Щоб зробити його постійним, можна звернутися до відповіді @name.


Клавіатура та миша -> додаткова опція компонування
Voyager
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.