Я запускаю Ubuntu под virtualbox на MacBook Pro и пытаюсь переназначить ключ Caps-Lock на mod3, чтобы использовать его в качестве замены клавиши Alt в Xmonad. Я могу переназначить ключевые символы, но проблема, с которой я сталкиваюсь, состоит в том, что, если я нажимаю клавишу Caps-Lock, то это генерирует событие нажатия клавиши, немедленно сопровождаемое событием выпуска клавиши. Как я могу предотвратить это поведение? Я хочу, чтобы событие освобождения произошло, когда ключ действительно выпущен (как в случае с другими ключами). Это то, что делает OSX или это какое-то секретное свойство, которое привязано к определенному коду ключа в X?
Я использую xmodmap для отмены отображения Super_R, сопоставления кода клавиши 66 с Super_R, а затем назначаю Super_R модификатору mod3.
Обновление:
Я работал над этим, используя Seil в OSX, чтобы переназначить Caps-Lock на код 110 (PC_APPLICATION). По какой-то причине X переназначает это на 135, но я мог бы затем переназначить Super_R на 135, отключить повторение ключа для 135 с помощью «xset -r 135», а затем назначить Super_R для mod3.
PC_APPLICATION и Super_R были выбраны просто потому, что я не использовал их ни для чего другого, я думаю, что это должно работать с большинством или всеми кодами клавиш и символами клавиш.
Я написал (намного) более длинное объяснение о том, как это сделать здесь.
Я почти уверен, что поведение Caps-Lock с ключом вверх / вниз - это то, что делает X.