Я знаю, как использовать xmodmap для переназначения ключа блокировки Caps, чтобы он действовал как ключ управления или как Escape-ключ. Я хотел бы объединить обе функции следующим образом:
Когда я нажимаю, затем отпускаю клавишу Caps Lock, она отправляет Escape. Когда я удерживаю Caps Lock и нажимаю другую клавишу (скажем, A), он отправляет Control-A.
Есть ли какая-то комбинация xkb, xmodmap и чего-то еще, что могло бы заставить Caps Lock вести себя таким образом в X?
Я использую Ubuntu Precise на MacBook Air 3,1.
У меня есть эта настройка на моем Mac, и я безуспешно пытался найти путь для Ubuntu.
Ну, теперь это работает. Благодаря tungd для Понтинга меня xcape . То, что я сделал, действительно просто и понятно.
В Системных настройках> Раскладка клавиатуры> Параметры ...> Положение клавиши Ctrl я установил флажок «Caps Lock as Ctrl».
xcape -e 'Control_L = Escape'
Готово, Caps Lock работает как Ctrl, когда используется как модификатор, и как Esc, когда нажата одна (есть небольшая задержка в несколько сотен миллисекунд, как отмечено в файле xcape README, поэтому он все еще не так оптимален, как решение Mac, которое использует KeyRemap4MacBook.)
источник
gnome-tweak-tool
для отображенияCaps Lock
вCtrl
качестве нетKeyboard layout
вSystem Settings
на Ubuntu 14.04. Тогдаxcape -e 'Control_L=Escape'
не работа, но после использованияxcape -d
я обнаружил , чтоCaps Lock
генерирует код ключа 66 и переназначен его соответственно:xcape -e '#66=Escape'
.setxkbmap -option 'caps:ctrl_modifier'
xcape -e 'Caps_Lock=Escape'
setxkbmap -option 'caps:ctrl_modifier'
xcape -e 'Caps_Lock=Escape;Control_L=Escape;Control_R=Escape'
Я тоже это ищу. Неделю назад я нашел частичное решение, используя
xmodmap
:Это, конечно, не работает идеально, оно эффективно посылает и Escape, и Ctrl одновременно, когда я нажимаю CapsLock, но я некоторое время был доволен этим.
Наконец я нашел эту маленькую утилиту https://github.com/alols/xcape . Так что теперь я могу просто переназначить CapsLock на Ctrl и позволить xcape делать свою работу.
источник
РЕДАКТИРОВАТЬ: Исправлено для большинства умных (более новых) дисплеев.
Согласно комментариям Луи и Сергея, я пришел к этому решению, которое работает для меня на Ubuntu 16.04 (Xenial) с LightDM и Unity.
Я поместил следующую строку кода в мой
.xprofile
файл в моем домашнем каталоге.Трейлинг & помещает команду xcape в фоновый режим, чтобы она не блокировала ваш сеанс. Setxkbmap вносит свои изменения немедленно.
Сергий:
Луи:
источник
устанавливать
xcape
Добавьте две строки в свой
~/.bashrc
Обратите внимание на часть
-t 100
, если вы не установите ее, вы можете заметить задержку в Esc, если вы используете vim.источник
sudo apt-get install xcape
(опечатка)Специально для этой цели я создал инструмент на C, который позволяет решить многие проблемы, связанные с решением xcape / xmodmap :
источник