Я думаю, что ответ на ваш вопрос - нет, нет способа добиться этого, если не модифицировать исходники X.org.
Вот объяснение, почему xset
не будет работать; Я создаю ответ, потому что он соответствует комментариям, найденным как в ОП, так и в ответе выше.
xset r
имеет несколько альтернативных способов вызова. Взаимоисключающие, то есть:
xset r 22
..я включит повторение для кода клавиши 22 (возврат), в то время как xset -r 22
выключит его.
В качестве альтернативы, можно указать скорость клавиатуры, но только для всех клавиш:
xset r rate [num1 [num2]]
Вы не можете объединить два.
Что касается 08 / 22 путаницы: 08 является ASCII кода ASCII символов забоя, и 22 является X окна скана для конкретного физического ключа .
К сожалению, две настройки (скорость / задержка и повторное включение для каждой клавиши) обрабатываются двумя разными расширениями X:
- «скорость / задержка» обрабатывается расширением XF86Misc.
xset
изменяет скорость / задержку с помощью функции XF86MiscGetKbdSettings( display, values )
. Структура values
XF86MiscKbdSettings содержит только поля для частоты повторения и задержки (и двух других здесь неважных), и нет способа применить его, кроме общего.
- "включение / выключение каждого ключа" контролируется расширением XKB. Расширение XKB позволяет управлять выбранными ключами, но структура, содержащая информацию об этих ключах, содержит только поле, которое может принимать одно из трех значений: по умолчанию, нет повторения, повтор.
Короче говоря, это кажется невозможным в текущей настройке X.org.
xset r 22 r rate 120 30
должен делать то, что вы ищете, но на моем ноутбуке это не работает. Код клавиши для возврата - 22, хотя.