Как мне переделать ключ блокировки колпачка?

65

В прошлом я использовал xmodmap , чтобы предотвратить работу кнопки Caps Lock , а затем сообщите Launchy для обработки нажатия клавиши. Я больше не могу этого делать.

Каков наилучший способ отключить нормальное поведение Caps Lock и сделать что-то еще?

    
задан Mehrdad 14.07.2011 в 05:23
источник

11 ответов

64

Из howtogeek .com , который имеет хороший ответ для любой ОС.

Для Linux (включая Ubuntu):

setxkbmap -option <OPTION>

Где <OPTION> может быть, например,:

  • caps:none - отключает Caps Lock.
  • caps:super - Caps Lock становится дополнительным Super (иначе Win).
  • caps:ctrl_modifier - Caps Lock становится дополнительным Ctrl .
  • caps:numlock - Caps Lock становится дополнительной Num Lock .
  • caps:escape - Caps Lock становится дополнительным Escape .
  • caps:backspace - Caps Lock становится дополнительным Backspace .
  • caps:swapescape - Caps Lock становится Escape, а Escape становится Caps Lock

Примечание. Xmodmap является устаревшим в пользу setxkbmap.

    
ответ дан Wernight 27.04.2015 в 09:52
18

Вы можете отключить его, перейдя на клавиатуру- > Layouts- > options- > блокировки блокировки и выберите "отключить блокировку кепок".

Edit

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

Но Launchy отлично работает со мной, попробовав его с помощью CTRL + Супер + Пробел .

Ивамнужнобелымспискомlaunchyназначкивтрее.См. Как сделать доступ и включение большего количества значков в системный лоток? . Также вам нужно добавить его в приложения Start Up, так как он не будет работать, когда он не будет открыт.

В конце концов, в качестве альтернативы для Launcy попробуйте Synapse для лучшей интеграции с гномом и единством.

    
ответ дан Binarylife 14.07.2011 в 06:16
18

В Ubuntu 11.10 - 13.04

  1. Откройте приложение Макет клавиатуры и нажмите кнопку «Параметры».
  2. Появится список вариантов переупорядочения. Выберите «Caps Lock key behavior».
  3. Выберите предпочтительный вариант повторного копирования Caps Lock.

    
ответ дан Jjed 10.01.2012 в 09:04
15

Это в основном модификация ответа, представленного в Ссылка .

Вы также можете изменить поведение Caps Lock с помощью XKBOption . Эти изменения даже распространяются на виртуальные консоли (/ dev / tty [1-6] или Ctrl-Alt-F [1-6]).

Например, чтобы отключить Caps Lock, в /etc/default/keyboard будет указано следующее:

# Check /usr/share/doc/keyboard-configuration/README.Debian for
# documentation on what to do after having modified this file.

# The following variables describe your keyboard and can have the same
# values as the XkbModel, XkbLayout, XkbVariant and XkbOptions options
# in /etc/X11/xorg.conf.

XKBMODEL="pc105"
XKBLAYOUT="us"
XKBVARIANT=""
XKBOPTIONS="caps:none"

# If you don't want to use the XKB layout on the console, you can
# specify an alternative keymap.  Make sure it will be accessible
# before /usr is mounted.
# KMAP=/etc/console-setup/defkeymap.kmap.gz

Затем вы запускаете:

sudo dpkg-reconfigure keyboard-configuration

Для получения полного списка настроек XKBOPTIONS просмотрите /usr/share/X11/xkb/rules/base.lst . Вот полный список из моего компьютера Ubuntu 13.10: Ссылка

Более подробную информацию можно найти на вики ArchLinux: Ссылка

    
ответ дан Ehtesh Choudhury 22.01.2014 в 19:29
10

Чтобы переназначить бесполезный cap_lock в базовый сдвиг, сделайте

xmodmap -e "keycode 66 = Shift_L"
    
ответ дан jobwat 25.08.2013 в 11:07
6

Следующий метод использует комбинацию Compiz для запуска приложения при нажатии клавиши.

Вкратце -

  1. измените поведение клавиши Caps Lock, чтобы имитировать другой ключ.
  2. Настройте compiz, чтобы прослушать новый ключ mimic'd и запустить собственный скрипт.

Измените клавишу блокировки колпачков

Слишком изменив поведение клавиши Caps Lock, вы можете использовать xmodmap следующим образом:

  • создать файл, например. "CapsLock"
  • скопируйте и вставьте в файл следующее:
keycode 66 = cent
clear Lock
add Control = cent
  • теперь запустите xmodmap, чтобы узнать ваше изменение:

xmodmap capslock

Чтобы выполнить постоянную добавление этой команды в приложения для запуска.

Нажатие Caps Lock теперь просто имитирует нажатие клавиши «cent» - обратите внимание, что это не ключ, который на самом деле существует на моей клавиатуре.

Здесь вы можете получить список имен KeySym .

Настроить Compiz

Запустите диспетчер настроек CompizConfig

В общем разделе убедитесь, что «Команды» включены и настройте команду, как показано:

N.B.активируйтепривязкуклавишииспользуйтекомбинацию«захватитьключ»,чтобыраспознатьваш«цент»ключ.Вынеможетезаставитьcompizраспознатьключблокировкикрышки,ксожалению.

Очевидно - измените «firefox» для любой команды, которую вы используете для запуска «запуска»

Теперь, когда вы нажмете клавишу Caps Lock, compiz распознает отображаемый «cent» ключ и запустит команду - в этом случае firefox - в вашем случае «launchy».

    
ответ дан fossfreedom 01.08.2011 в 09:45
5
  1. Используйте команду xev. Когда вы нажмете enter, xev запустится. xev принимает все ваши данные и копирует информацию о ключе в командную строку. Я рекомендую навести указатель мыши на ключ выхода окна xev, нажав кнопку блокировки (или любой другой ключ, о котором вы хотите узнать) и сразу же выйти из xev. Соответствующие строки в моей системе, для блокировки капель, выглядят примерно так:

    KeyPress event, serial 36, synthetic NO, window 0x4400001,
        root 0x27a, subw 0x0, time 19164277, (16,-9), root:(1156,46),
        state 0x2, keycode 66 (keysym 0xffe5, Caps_Lock), same_screen YES,
        XLookupString gives 0 bytes: 
        XmbLookupString gives 0 bytes: 
        XFilterEvent returns: False
    
    KeyRelease event, serial 36, synthetic NO, window 0x4400001,
        root 0x27a, subw 0x0, time 19164397, (16,-9), root:(1156,46),
        state 0x2, keycode 66 (keysym 0xffe5, Caps_Lock), same_screen YES,
        XLookupString gives 0 bytes: 
        XFilterEvent returns: False
    

    Обратите внимание на keycode (66) и keysym (0xffe5).

    Вы также можете получить данные для другого ключа, который вы действительно не используете, и который в том контексте, в котором вы хотите использовать кнопку блокировки шапок, ничего не делает. Итак, если вы хотите заблокировать блокировку, чтобы активировать поисковый ящик Unity (например, супер обычно), возможно, используйте ", например. На моей машине:

    keycode 49 (keysym 0x60, grave)
    
  2. Привяжите функцию нового ключа к кнопке Caps Lock, используя xmodmap. Я уверен, что вы хотите использовать команду, например:

    xmodmap -e "keycode 66=0x60"
    

    Теперь, если вы нажмете кнопку блокировки физических колпачков в текстовом поле, появится серьезный символ ('). Но если вы наберете для него клавишу быстрого доступа, он сделает что-то еще. Если вы хотите использовать его в текстовом поле, возможно, замените блокировку замка левым сдвигом или f10 или что-то еще, что не похоже на то, что это будет мешать команде, которую вы хотите использовать.

  3. Протестируйте его, чтобы убедиться, что команда, которую я вам дал, работает так, как вы хотите.

  4. Перейдите в приложения запуска и добавьте эту команду в свои приложения для запуска. Таким образом, ключ будет правильно переключаться каждый раз при запуске.

  5. Танец.

(выкрикивайте это письмо) Изменение привязок (аппаратное обеспечение к программному обеспечению)

Кроме того, для получения дополнительной справки по xmodmap:

Ссылка

Ссылка

    
ответ дан Daniel 04.08.2011 в 02:42
3

Ubuntu 16.04

setxkbmap -option <OPTION> от ответа Wernight, похоже, немедленно срабатывал для меня.

Однако при перезагрузке он исчезнет. Для этого я добавил в запускающие приложения

  1. Найдите и запустите Startup Applications > gt; Нажмите «Добавить»
  2. Поместите /usr/bin/setxkbmap -option <OPTION> в качестве команды (Примечание: полный путь важен)

Замените <OPTION> на что-то вроде caps:escape (я использую его для vi)

Фон

Я только что обновил с 15.10 по 16.04 и все, что я использовал, чтобы сопоставить это, прежде чем перестать работать.

    
ответ дан Anthony Astige 04.06.2016 в 01:58
1

Опция, которую я нашел лучшей для меня (в любом X-совместимом wm / de), добавляет

Option "XkbOptions" "caps:swapescape"

внутри

Section "InputClass"
    Identifier "system-keyboard"
    MatchIsKeyboard "on"
    Option "XkbLayout" "US"
    Option "XkbOptions" "caps:swapescape" # << is what you want
EndSection

заблокировать в /etc/X11/xorg.conf.d/00-keyboard.conf (при необходимости создайте).

    
ответ дан Roman Riesen 01.10.2018 в 22:26
1

в то время как, конечно, вариант xmodmap будет работать, я хотел бы найти вариант, который использует графический интерфейс. Это доступно для меня (с использованием Ubuntu 15.10):

  • установить gnome-tweak-tool
  • перейти к типу
  • в разделе «Поведение ключа Caps Lock» выберите «Caps lock is disabled»
ответ дан MichielB 19.11.2015 в 14:28
-1

Самое надежное решение - купить клавиатуру, которая позволяет переназначать ключи в прошивке, т. е. профессиональную программируемую клавиатуру.

Обычно они стоят около 200 баксов, а также имеют механические переключатели высокого класса. Они дороги, но они - единственный способ избежать борьбы с этим на каждой новой машине, на которой вы садитесь, и каждый раз разработчики вносят изменения в инфраструктуру ОС так же фундаментально, как и клавиатурная карта.

    
ответ дан Andrew Wagner 05.05.2014 в 14:23