Я определил пользовательский тип клавиши в своем файле конфигурации xkb для выполнения некоторого перенаправления (например, перенаправление Ctrl+ pна Upи т. д.). Однако я не могу заставить работать автоповтор для этого пользовательского типа (ни исходная клавиша (например, p), ни действие перенаправления (например, Upперенаправление с Ctrl+ p) не имеют автоповтора).
Я попробовал добавить repeat=true,
в keysyms
конфигурацию согласноэто из списка рассылки xfree86но это тоже не работает.
решение1
Пожалуйста, прочтите man xset
об этой r
опции. Можно включить автоповтор для определенной клавиши, указав ее целочисленный код в xset r
команде. Например:
У меня есть
<SPCE> = 134;
в моем пользовательском файле раскладки xkbcom. Итак, выдавая:
xset r 134
в терминале включит автоповтор для моей переназначенной клавиши пробела.
Вы можете добавить эту команду в свой ~/.xinitrc
файл. Нет необходимости возиться с самим файлом конфигурации xkb.
решение2
Я наткнулся на патч в репозитории Chromium OS, который может помочь с этим; похоже, его удалили после того, как они фактически пропатчили его в самом Chrome. Не уверен, что случилось с QA для патча или был ли он отправлен в апстрим или нет.
ссылки здесь:X: Сопоставить Alt-Up и Alt-Down с Page Up и Page Down
Патч выглядит следующим образом:
This is a probably-wrong fix for an issue where autorepeat
is disabled for keys assigned by XKB. As far as I can tell,
XKB has the correct autorepeat settings for the keys before
a completely-empty autorepeat array from X is copied over
it; then the XKB array is copied back to X. This makes us
skip the first copy.
diff --git a/xkb/xkbUtils.c b/xkb/xkbUtils.c
index 75e243c..bceb55c 100644
--- a/xkb/xkbUtils.c
+++ b/xkb/xkbUtils.c
@@ -342,9 +342,6 @@ CARD8 * repeat;
xkb= xkbi->desc;
repeat= xkb->ctrls->per_key_repeat;
- if (pXDev->kbdfeed)
- memcpy(repeat,pXDev->kbdfeed->ctrl.autoRepeats,32);
-
XkbUpdateDescActions(xkb,first,num,changes);
if ((pXDev->kbdfeed)&&
Я сам еще не пробовал, но, возможно, попробую сделать это в ближайшее время.
решение3
У меня была та же проблема, я перенаправил ее SUPER + Hна LEFTстраницу, которая сработала, но больше не повторял.
Это сработало, когда я добавил autorepeat = yes
определение символа ключа.
Нашел здесь:http://web.archive.org/web/20190320180541/http://pascal.tsu.ru/en/xkb/gram-symbols.html