xkb에서 사용자 정의 키 유형을 자동 반복하는 방법

xkb에서 사용자 정의 키 유형을 자동 반복하는 방법

Ctrl일부 리디렉션(예: 리디렉션 + pto 등) 을 수행하기 위해 xkb 구성 파일에 사용자 정의 키 유형을 정의했습니다. Up그러나 이 사용자 정의 유형에 대한 자동 반복 작업을 얻을 수 없습니다(원래 키(예: p) 또는 리디렉션 작업( 예를 들어 + Up에서 리디렉션됨 )에는 자동 반복이 있습니다.Ctrlp

나는 에 따라 구성을 repeat=true,추가 하려고 시도했습니다 .keysyms이것은 xfree86 메일링 리스트에서 가져온 것입니다하지만 그것도 작동하지 않습니다.

답변1

man xset옵션을 읽어보시기 바랍니다 r. 명령 에 정수 코드를 제공하여 특정 키에 대해 자동 반복을 활성화할 수 있습니다 xset r. 예를 들어:

나는 가지고있다

<SPCE> = 134;

내 사용자 정의 xkbcom 키맵 파일에 있습니다. 따라서 다음을 발행합니다.

xset r 134

터미널에서 다시 매핑된 Space 키에 대해 자동 반복을 활성화합니다.

이 명령을 파일에 추가할 수 있습니다 ~/.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

관련 정보