Как переназначить клавиши Caps Lock и Ctrl?


77

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

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


1
Кто Это поможет?
Митч

Это может быть полезно: the-flat-trantor-society.blogspot.com/2013/12/…
Кит Томпсон

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. Я не уверен, как это объяснить, но его просто нет. В настройках клавиатуры нет вкладки «Макет», но есть кнопка «Настройки макета», и когда я щелкаю ее, она переходит на вкладку «Источники ввода» на панели «Регион и язык», которой таинственно не хватает. кнопки «Настройки». Единственная кнопка там открывает виртуальную экранную клавиатуру, которая отображает мою разбитую раскладку клавиатуры без возможности изменить, какие клавиши ведут себя в каком направлении.
Робру

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 пользователей ...)
Per Лундберг

63

Один из лучших способов сделать это графически - это установить Gnome Tweak Tool :

sudo apt-get install gnome-tweak-tool

  • Откройте инструмент настройки и нажмите на раздел ввода текста в левом столбце.
  • Теперь вы должны увидеть строку поведения клавиши Caps Lock слева.
  • Выберите Сделать Caps Lock дополнительной дополнительной клавишей Ctrl вместо Disabled в раскрывающемся списке, и все будет хорошо.

Кроме того, панель настроек не занимает много времени, чтобы подняться на моей машине, поэтому я понятия не имею, в чем проблема.

Наслаждайся своим новым Ctrlключом!


Я хотел использовать мой ключ CAPS, чтобы выключить экран. Я настраивал это раньше в окне «Настройки системы»> «Клавиатура», но CAPS по-прежнему переключал состояние и светодиод CapsLock. Поэтому я отключил ключ с помощью инструмента, который вы рекомендовали (у которого есть некоторые ошибки отображения, между прочим - прозрачный фон окна), что также остановило работу моего пользовательского ярлыка. После отключения мне пришлось снова установить ярлык, чтобы он работал. Он был установлен на значение 0xff или что-то вроде этого вместо CAPS. Я думал, что эта процедура может помочь некоторым будущим читателям с подобными пожеланиями.
Byte Commander

Когда я запускаю gnome-tweak-tool из командной строки, появляется сообщение об ошибке, что оболочка не запускает DBus, а затем любые попытки изменить настройки не имеют никакого эффекта.
Эдвард Фальк

1
Обновление: gnome-tweak-tool работает только внутри оболочки гнома
Эдвард Фальк,

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

2
Обратите внимание, что опция в gnome-tweak-tool для замены находится в разделе «Положение клавиши Ctrl», а не «Поведение клавиши Caps Lock».
Фил Гетц

59

Вот способ сделать это без установки дополнительного программного обеспечения:

setxkbmap -layout us -option ctrl:nocaps

Источник:


3
Это не выживает после перезагрузки. Как я могу сделать это постоянным? Я бы предпочел не помещать это в скрипт запуска (например, .bashrc).
Ник

9
@nic Вам нужно также изменить файл sudo vi /etc/default/keyboardи изменить XKBOPTIONS="ctrl:nocaps". После этого запустите команду Хорхе, но 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 / keyboard собирается изменить его для всех.
skierpage

1
у вас есть 3 шага (1, 2, 3). Вы имеете в виду [(1 и 2) или 3] или [1 и (2 или 3)]?
jgomo3

Большой! Запустил sudo dpkg-reconfigure keyboard-configurationи нажал несколько раз, и это сработало !!! РЕДАКТИРОВАТЬ: однако, после того, как я выйду и снова войду в систему, настройка исчезла. :(
Леон - Хан Ли

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) Проверьте код вашего ключа. Запустите эту программу на терминале.

Ксев


В этом примере терминал показывает, что код клавиши для my k- «45».

2) Измените их, как вам нравится, создав этот файл:

gedit ~ / .Xmodmap

Это содержимое должно выглядеть следующим образом:

код клавиши 37 = Caps_Lock NoSymbol Caps_Lock
ключ кода 66 = Control_L NoSymbol Control_L

(Измените номер кода ключа по мере необходимости - посмотрите на шаг «1»)

Иллюстрационная:
(Обс .: если я хочу изменить свой, kя должен использовать «код 45», как показано на шаге «1»)

4) Выйдите из системы и снова войдите в систему или перезагрузите компьютер или выполните следующее:

xmodmap ~ / .Xmodmap

Надеемся, вам понравится ;-)


2
Обратите внимание, что это решение может вызвать проблемы для чего угодно, кроме простейших комбинаций клавиш. Совместимость с xmodmap в новой системе xkb не идеальна, поэтому вам лучше придерживаться xkb, если это возможно.
Джеймс Хенстридж

@ Джеймс, не могли бы вы объяснить, как мы можем это сделать?
Desgua

Смотрите другой ответ на этот вопрос. Стандартная панель управления клавиатурой создаст и раскладку клавиш xkb из выбранной вами базовой раскладки плюс включенные опции.
Джеймс Хенстридж

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

1
@Джеймс. Я искал и узнал о setxkbmap. Но я не смог найти ответ на вопрос: можно ли переназначить ключ на что угодно? Например, что-то эксцентричное, например: «код клавиши 51 = скобка справа скобка справа скобка мужская строка»?
Desgua

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. Смена кодов клавиш работает! Кстати, я расширил это до трех клавиш (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**(надеюсь, различие очевидно). Это различие необходимо в таких случаях.
Джамадагни

3

Принятый ответ вводит в заблуждение, потому что gnome-tweak-tools не показывает никакого раздела «ввода».

Вместо этого нажмите на раздел «Клавиатура и мышь» и затем выберите «Дополнительные параметры макета». Там вы увидите «Поведение Caps Lock», которое позволяет конвертировать Caps Lock в разные ключи.

Скриншот из твик-инструмента


2

В дистрибутивах на основе KDE (например, KDE Neon или Kubuntu) это поведение можно настроить в обычных системных настройках. Откройте системные настройки, выберите «Устройства ввода» => «Клавиатура» => «Дополнительно». В категории «Положение клавиши Ctrl» выберите «Swap 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.