2009年1月26日 (月)

[FreeBSD] XkbDisable

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 なものなので副作用等があるかもしれない。

コメント

1: 2009-07-09 22:56 / N

Slackware Linux (12.1, 12.2) で、xorg-server-1.4.2 ですが、
[mi] mieqEnequeue: out-of-order valuator event; dropping
といってキーボードがまったくキーリピートしない、それと M のキーだけが、毎回、2度押ししないと入らないって、不可解な問題があって、Slackware 11.0 からずっとアップグレードできずにいました。

それじゃ xkb エクステを使やいいのかっていうと、今度はキーリピートどころか1押しでどのキーも 10〜20 発くらい入ってしまって、要するに全く使いものにならない。

困ってましたが、書いていただいた patch で綺麗さっぱり直りました。ありがとうございました。

xkbdisable で、コンソールで作ったキー配列を使う、ってもうごく少数派なんだろうか。



ちなみに、video は nvidia FX5200 か 8400GS、ドライバは nvidia (最近のもののうちいくつか)のですが、どっちのカード、どのドライバでもこの問題は起きましたね。

ところが、同じサーバが HP 2133 (VIA-P4M900) では問題がなかった(xorg.conf の整備過程で一度だけ発症したが再現不能)りして、もしかしたら相性問題でしょうかね。

2: 2009-07-21 22:13 / でーたな

コメントありがとうございます。Linux 方面でも役に立ったようでうれしいです。GNOME などで、GUI でキーボード関連のアクセシビリティ設定ができるようにするためには、XkbDisable が置き去りなのは致し方ないのでしょうね。

にしても最近のXのキーボードまわりは腐ってます。コードみても長年の増築の結果かほとんどわけわかりませんし、動作の方も細かいところまで気にすると、Ubuntu でさえまともに動いてないように見えます。

3: 2010-04-23 11:09 / おき

linux debian でもいつの頃からか同じ症状に悩まされていました。
4.0(etch) xorg 7.1.0-19 までは問題なく、5.0(lenny) xorg 7.3+20 からですね。
非常に貴重な役に立つ情報、パッチをありがとうございました。

> X.org 7.3 以降、xorg.conf で Option "XkbDisalbe" "True" すると、
> "XkbDisalbe"
ここだけTYPOのようです。

4: 2010-04-23 21:44 / でーたな

Debian でもでしたか。もう XkbDisable でもないんですね。Typoのご指摘ありがとうございます。検索エンジンにひっかけてもらうためにも修正しました。

5: 2010-05-05 12:59 / でーたな

xorg-server-1.7 で XkbDisable が廃止になりました...

お名前:



円周率を小数点以下二桁まで入力してください:


最近のコメント


つぶやき



過去の記事



現在の星空