Як знову ввімкнути клавішу блокування шапки?


12

Наразі я налаштовую мою клавіатуру за замовчуванням так:

setxkbmap -layout us -variant dvorak -option ctrl:nocaps,[...]

Він вимикає клавішу "lock lock" і робить її додатковою клавішею ctrl разом із роєм інших опцій.

Я хотів би зробити наступне для переключення макетів клавіатури:

setxkbmap -layout us -variant dvorak-l -option ctrl:swapcaps

Однак він не вмикає повторно ключ блокування заглушок; наскільки я бачу, ліва клавіша керування та блокування ковпачків залишаються керуючими клавішами.

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

Оновлення: Переглядаючи натискання клавіш за допомогою xev (1), з'являється ctrl: nocaps дає a 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 ] };
};

В останньому варіанті відсутня лінія модифікатора_мапи, що б це не було


Я здогадуюсь, що всі, хто намагався допомогти мені, клавіатури приклеїлися до dvorak = (
hhaamu

4
X настільки стара і складна зараз, що не багато людей справді розуміють різні внутрішні механізми. На сторінці чоловіка є навіть розділи, де написано (і я цитую): " Ніхто не хоче сказати, як це працює. Можливо, ніхто не знає ... ". Мені цікаво бачити відповідь і на це запитання, але, можливо, ніхто не знає ...
jw013

Відповіді:


14

Наступні команди повинні працювати:

xmodmap -e 'keycode 0x42 = Caps_Lock'

або

setxkbmap -option

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

Я, як правило, перекомпонувавте блокчейн для керування (на щастя VI / VIM підтримує CTRL-C замість ESC) за допомогою наступної команди:

setxkbmap -option ctrl:nocaps -layout gb

«Опція setxkbmap» для очищення налаштувань - саме те, що я шукав. Я постійно намагався змінити свою поведінку, але він постійно додавав конфліктні елементи до списку параметрів.
m0j0

2

Спробуйте setxkbmap -option -layout us -variant dvorak-l -option ctrl:swapcaps

На сторінці сторінки:

[...] If you want to
replace all previously specified options, use the -option  flag
with an empty argument first.

Іронія полягає в тому, що тут -option ctrl:swapcapsнасправді відміняється -option ctrl:nocaps- я думаю, поведінка змінилася.

Редагувати: Як заявлено в ОП, він хоче уникнути очищення параметрів (як це зроблено вище).

/usr/share/X11/xkb/rules/xorg.lstпоказує параметр ctrl:aa_ctrl(керування внизу ліворуч), який, здається, скидає блокування кришок nocaps.

Я думаю, що варто спробувати, і ви також можете подивитися на список ( grep ctrl\:) і побачити, чи є щось інше, що може спрацювати, на випадок, якщо цього немає.

Якщо для цього немає варіанту, я думаю, що рішення полягає в тому, щоб зламати поточну карту клавіш, пов’язавши знову Caps Lock з клавішею Caps Lock (але я не маю досвіду з цим, окрім як вважати, що є інструмент, який дозволяє вам робити що з однолінійним).


Це дійсно очищає список параметрів, але я хочу зберегти параметри, не пов’язані з кришкою (як я зазначив у запитанні), такі як ключі для створення.
hhaamu

О, вибачте, я неправильно прочитав питання. Я не можу бути впевнений, чи це спрацює (як я вже заявив, swapcapsнасправді знову вмикається блокування шапок тут), але з /usr/share/X11/xkb/rules/xorg.lstцього моменту, я бачу, є варіант ctrl:aa_ctrl(управління внизу ліворуч), який, здається, скидає блокування шапки після nocapsцього.
njsg

Я думаю, що магічна програма є, xmodmapале я не зовсім впевнений, як нею користуватися
hhaamu

0

є опція "caps: capslock" (яка відображає додавання "+ capslock (capslock)" до xkb_symbols), яка дозволяє "capps".

Однак цей варіант (можливо, всі літери: xxxxx?) Додається перед існуючими ctrl: xxxxx; як ctrl: swapcaps перегляньте клавішу caplock, ця опція не має ефекту.

Отже, вам абсолютно потрібно видалити всі параметри і фактично поставити потрібні; як існують варіанти, вони не повинні скасовувати дію попереднього, і маючи суперечливі варіанти (наприклад, два (або більше), які повторно визначають один і той же ключ), ви не можете визначити їх впорядкування.

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