В настоящее время я настраиваю раскладку клавиатуры по умолчанию следующим образом:
setxkbmap -layout us -variant dvorak -option ctrl:nocaps,[...]
Он отключает клавишу caps lock и делает его дополнительной клавишей ctrl вместе с множеством других опций.
Я хотел бы сделать следующее для переключения раскладки клавиатуры:
setxkbmap -layout us -variant dvorak-l -option ctrl:swapcaps
Тем не менее, он не включает ключ блокировки заглавных букв; насколько я вижу, и левая клавиша управления, и фиксатор колпачков остаются клавишами управления.
Я знаю, что могу очистить весь список опций, но в интересах удобства обслуживания я бы предпочел не копировать все варианты. Как мне снова включить блокировку шапки?
Обновление:
Глядя на нажатия клавиш с помощью xev (1), кажется, что ctrl: nocaps дает Control_L
для обеих клавиш, а ctrl: swapcaps "восстанавливает" клавишу блокировки прописных букв (нажатие клавиши дает Caps_Lock
). Тем не менее, светодиод заглушки не загорается и не работает.
Просмотр xkeyboard-config/symbols/ctrl
файла в источниках X.org намекает на проблему:
xkb_symbols "nocaps" {
replace key <CAPS> { [ Control_L, Control_L ] };
modifier_map Control { <CAPS>, <LCTL> };
};
xkb_symbols "swapcaps" {
replace key <CAPS> { [ Control_L ] };
replace key <LCTL> { [ Caps_Lock ] };
};
Последний вариант не имеет строки modifier_map, что бы это ни делало
источник
Ответы:
Следующие команды должны работать:
или
Команды выше прекрасно работают для восстановления поведения по умолчанию, которое, к счастью, мне почти никогда не нужно.
Обычно я переназначаю колпачок на Control (к счастью, VI / VIM поддерживает CTRL-C вместо ESC) с помощью следующей команды:
источник
Пытаться
setxkbmap -option -layout us -variant dvorak-l -option ctrl:swapcaps
Из справочной страницы:
Ирония в том, что здесь на
-option ctrl:swapcaps
самом деле преобладает-option ctrl:nocaps
- я думаю, что поведение изменилось.Редактировать: как указано в ОП, он хочет избежать очистки опций (как это было сделано выше).
/usr/share/X11/xkb/rules/xorg.lst
показывает опциюctrl:aa_ctrl
(элемент управления слева внизу), которая, кажется, сбрасывает заглавные буквы послеnocaps
здесь.Я думаю, стоит попробовать, и вы также можете посмотреть на list (
grep ctrl\:
) и посмотреть, есть ли что-то еще, что может сработать, если это не сработает.Если нет никакой возможности для этого, я думаю, что решение состоит в том, чтобы взломать текущую раскладку клавиатуры, снова связав Caps Lock с ключом Caps Lock (но у меня нет опыта в этом, кроме веры, что есть инструмент, который позволяет вам сделать что с одной строчкой).
источник
swapcaps
самом деле здесь снова активируется блокировка прописных букв), но/usr/share/X11/xkb/rules/xorg.lst
, как я вижу, есть опцияctrl:aa_ctrl
(элемент управления слева внизу), которая, похоже, сбрасывает блокировку прописных букв послеnocaps
этого.xmodmap
но я не совсем уверен, как ее использоватьесть опция "caps: capslock" (которая соответствует добавлению "+ capslock (capslock)" к xkb_symbols), которая включает capslock.
Тем не менее, эта опция (может быть, все заглавные буквы: ххххх?) Добавляется перед существующими ctrl: ххххх; так как ctrl: swapcaps переопределяет ключ capslock, эта опция не имеет никакого эффекта.
Таким образом, вам абсолютно необходимо удалить все параметры и на самом деле поставить те, которые вы хотите; Существуют варианты, они не должны отменять действие предыдущего, и, имея конфликтующие опции (например, две (или более), которые определяют один и тот же ключ), вы не можете определить их порядок.
источник