X.org 7.3 以降、xorg.conf で Option "XkbDisable" "True" すると、コンソールに [mi] mieqEnequeue: out-of-order valuator event; dropping. と出力してキーリピートが効かなくなっていたので、ad-hoc だが対策パッチを作った。どれだけ需要があるか分からないが、コンソールの kbdcontrol で設定したキーボードのカスタマイズを X で引き継ぎたいひとのために、まとめておく。
1. xorg-server のビルド
以下のパッチをあてて xorg-server をビルドする。
patch-local-xkbdisable:
--- dix/getevents.c.orig 2008-02-28 22:49:11.000000000 +0900
+++ dix/getevents.c 2008-02-28 22:49:59.000000000 +0900
@@ -420,6 +420,7 @@
numEvents += (num_valuators / 6) + 1;
}
+#if 0
#ifdef XKB
if (noXkbExtension)
#endif
@@ -457,6 +458,7 @@
events += numEvents;
}
}
+#endif
ms = GetTimeInMillis();
2. xorg.conf
以下のように記述する。
xorg.conf:
Section "ServerFlags" Option "XkbDisable" "True" EndSection
3. 環境変数
libxklavier が独自に xmodmap をハンドリングしないようにする。
.xinitrc:
XKL_XMODMAP_DISABLE=TRUE export XKL_XMODMAP_DISABLE
パッチは ad-hoc なものなので副作用等があるかもしれない。