Як програматично поміняти клавіші "lock" та клавіші esc?


18

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

Поки я робив це через діалогове вікно налаштування клавіатури, але зараз я пишу набір сценаріїв, які встановлять Ubuntu так, як мені подобається, і я не зміг знайти спосіб написання сценарію чи програмування для зміни цього елемента конфігурації.

Я не шукаю варіантів, які міняють клавіші на будь-якому іншому рівні, ніж сам gnome, тому те, що я шукаю, - це спосіб скриптувати цю зміну, і якщо вона з'явиться в конфігурації клавіатури, яку я використовував, я повинен вирішити повернути його вручну в майбутньому.


хороша ідея! Я весь час скаржився на те, що я рухав руку Esc під час роботи у Vim, але зараз це рішення! thanx bro ;-)
сазарій

1
Будьте обережні, однак, як тільки ви звикте до того, щоб їх міняли, стає незручно, коли вам доведеться працювати над чужою клавіатурою :)
Jacobo de Vera,

2
Інший варіант - Ctrl-C замість Esc. (Працює на всіх клавіатурах.
Ерік Вілсон,

@FarmBoy, дивовижно! Я цього не знав!
Якобо де Віра

Відповіді:


22

Це можна зробити через графічний інтерфейс, відкривши Keyboard Preferencesпанель управління (під System -> Preferences) і виберіть Layoutвкладку. Натисніть Options...кнопку, щоб відкрити діалогове вікно параметрів макета. Розгорніть Caps Lock key behaviourрозділ і виберіть Swap ESC and Caps Lock.

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

Безпосередньо через Xkb

Ми можемо внести зміни безпосередньо за допомогою наступного:

setxkbmap -option caps:swapescape

Ви можете відключити всі поточні параметри макета (які повернуть шапки блокування до його стандартної поведінки) за допомогою:

setxkbmap -option ''

Через GConf

Панель керування налаштуваннями клавіатури зберігає його конфігурацію за gconfдопомогою макета, що фактично застосовується gnome-settings-daemon. Тому ви можете змусити gnome-settings-daemonкоригувати макет, оновивши gconf самостійно.

Відповідна установка в цьому випадку, здається, є /desktop/gnome/peripherals/keyboard/kbd/options. Таким чином, ви можете встановити параметр за допомогою:

gconftool-2 --set /desktop/gnome/peripherals/keyboard/kbd/options \
    --type list --list-type string \
    '[caps<tab>caps:swapescape]'

У вищесказаному <tab>має бути буквальний символ вкладки, а не пробіли. Ви можете знову відключити поведінку, встановивши клавішу gconf у порожній список.


Опція gconf - це саме те, що я шукав, проте ваша конфігурація перетворювала замок "caps" у ключ евакуації, а ключ "escape" - у клавішу вкладки. Я знову змінив налаштування вручну і переглянув значення в gconf-редакторі, це було насправді [caps<tab>caps:swapescape]. Зараз все працює, я приймаю вашу відповідь і пропоную вам відредагувати її, щоб змінити значення для подальшого використання. Спасибі.
Якобо де Віра

@Jacobo Надалі ви можете запропонувати редагувати самостійно - просто натисніть кнопку редагування під відповіддю. Ваші зміни швидко хтось схвалить. Я зробив для вас редагування (перевірте, чи правильно). У будь-якому випадку, приємна відповідь @James! +1
Стефано Палацо

1
@Stefano, дякую, я не помітив варіант редагування.
Якобо де Віра

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