Могу ли я сопоставить клавишу (заглавные буквы), чтобы она выполняла одно нажатие одной, а другую - нажатием второй клавиши?

Просто прочитайте этот серьезно одержимый пост о настройке клавиатуры , и хотя я не собираюсь делать там все, есть пара идей, которые я хотел бы назвать. В частности, он настроил клавишу Caps Lock так, чтобы:

  • при нажатии и отпускании по отдельности она отображалась в Esc
  • при нажатии и удерживании, а также при нажатии второй клавиши она отображается на Ctrl

Как он говорит, это отлично подходит для пользователей vim. Возможно ли это в Ubuntu?

Он также делает нечто подобное с правой и левой клавишами Shift . При одиночном нажатии они отображаются на ( и ) , но если нажата другая клавиша, они действуют так, как вы ожидаете, что Shift будет работать.

3
задан 4 October 2012 в 12:42

2 ответа

Я нашел ответ на unix.se как минимум на часть Caps Lock / Ctrl / Esc.

Сначала переназначьте Caps Lock на дополнительный элемент управления, поместив следующее в ~/.profile

if [ $DISPLAY ]
then
  # Add the 3 lines below to Convert caps-lock into Control
  xmodmap -e 'remove Lock = Caps_Lock'
  xmodmap -e 'keysym Caps_Lock = Control_L'
  xmodmap -e 'add Control = Control_L'

  # and xcape is in Startup Applications
fi

Затем перейдите получить xcape - вам нужно установить зависимости (см. ПРОЧИТАЙТЕ) и сделайте make и sudo make install. И затем он делает то, что говорит README:

xcape работает как демон и перехватывает управляющий ключ. Если клавиша управления нажата и отпущена сама по себе, она сгенерирует событие клавиши Escape.

Я использую его сейчас, и это очень приятно :))

Я думаю, модифицированная версия могла бы также выполнять сдвиг / скобки.

0
ответ дан 4 October 2012 в 12:42

На Ubuntu 16.04

1-я Опция

Caps_Lock как Ctrl

  • откройте файл /etc/default/keyboard, и изменение XKBOPTIONS="" кому:

    XKBOPTIONS="caps:ctrl_modifier"
    

Caps_Lock как Esc

  • установите xcape с

    sudo apt install xcape
    
  • создать .xsessionrc в корневом каталоге (или редактирование, если это уже существует),

  • добавьте следующую строку к ~/.xsessionrc

    #!/bin/bash
    
    /usr/bin/xcape -e 'Caps_Lock=Escape'
    

Примечание:

  • необходимо выйти из системы затем вход в систему.
  • для полного списка всех опций, которые можно установить в (1), проверьте ! options раздел в

    /usr/share/X11/xkb/rules/*.lst
    

2-я Опция

можно использовать следующий сценарий для получения того же поведения на сессии.

#!/bin/sh

# Super Caps

/usr/bin/setxkbmap -option 'caps:ctrl_modifier'  # rebind Caps_Lock to Ctrl, when held down, accomapgnied with other button
/usr/bin/xcape -e 'Caps_Lock=Escape'             # rebind Caps_Lock to Esp, when tapped alone
  1. поместите вышеупомянутое содержание в файл в любом месте

например. custom_capslock в ~/.local/bin/

  1. сделайте это исполняемым файлом

     chmod a+x custom_capslock
    
  2. добавьте его для Запущения Приложений путем добавления ПОЛНОГО ПУТИ сценария к полю Command.

например, /home/yourname/.local/custom_capslock

PS: если Вы хотите использовать systemd или /etc/rc.local вместо "Приложений Запуска", удостоверьтесь, что Ваш сценарий не стал переопределенным другими системными службами

2
ответ дан 4 October 2012 в 12:42

Другие вопросы по тегам:

Похожие вопросы: