xkbでカスタムキータイプを自動的に繰り返す方法

xkbでカスタムキータイプを自動的に繰り返す方法

Ctrlいくつかのリダイレクト(たとえば、リダイレクト+pターゲットなど)を実行するために、xkb設定ファイルにカスタムキータイプを定義しましたUp。ただし、このカスタムタイプに対して自動反復を有効にすることはできません(元のキー(たとえば)またはpリダイレクト操作(たとえば+Upからリダイレクト)に自動反復があります)。Ctrlp

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

関連情報