リダイレクト (例: Ctrl+pを にリダイレクトするUpなど) を実行するために、xkb 構成ファイルでカスタム キー タイプを定義しました。ただし、このカスタム タイプでは自動繰り返しが機能しません (元のキー (例: 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