梅本です。

>>> Wed, 11 Feb 2009 12:51:57 +0900 の刻に「t-matubara」、すなわち
>>> Takashi Matsubara <t-matub...@miracle.ocn.ne.jp> 氏曰く

t-matubara> 3)/usr/local/etc/hal/fdi/policy に下記のファイル、内容で追加

t-matubara> ファイル名:11-x11-synaptics.fdi

t-matubara> 内容:

t-matubara> <?xml version="1.0" encoding="ISO-8859-1"?>
t-matubara> <deviceinfo version="0.2">
t-matubara>   <device>
t-matubara>     <match key="info.capabilities" contains="input.mouse">
t-matubara>         <merge key="input.x11_driver" 
type="string">synaptics</merge>
                略
t-matubara>     </match>
t-matubara>   </device>
t-matubara> </deviceinfo>

  info.capabilities に input.mouse が含まれていたら、synaptics ドライバ
を使うようにされたわけですね。
/usr/local/share/hal/fdi/policy/10osvendor/11-x11-synaptics.fdi がある
のにどうして synaptics が使われないのだろうと疑問に思っていたのですが、
確かに、このようにすれば、強制的に synaptics ドライバを使えるようにでき
ますね。
  しかし、これだと、USBマウスをつないだときも synaptics ドライバを使う
ようになってしまうように思います。また、実害があるのかどうか分かりませ
んが、/usr/local/share/hal/fdi/policy/10osvendor/10-mouse-sysmouse.fdi
にもマッチしてしまい、hald-addon-mouse-sysmouse が実行されるため、少し
気持ち悪いです。加えて、折角 11-x11-synaptics.fdi があるのに、使われな
いのはもったいない気がします。
  というわけで、/usr/local/etc/hal/fdi/information/mouse-sysmouse.fdi
をでっち上げてみました。

<?xml version="1.0" encoding="ISO-8859-1"?>
<deviceinfo version="0.2">
  <device>
    <match key="info.capabilities" contains="input.mouse">
      <match key="info.udi" string="/org/freedesktop/Hal/devices/psm_0">
        <merge key="info.capabilities" type="strlist">input</merge>
        <append key="info.capabilities" type="strlist">input.touchpad</append>
      </match>
    </match>
  </device>
</deviceinfo>

  psm0 の場合にのみ、info.capabilities から input.mouse を落として、
11-x11-synaptics.fdi が期待している input.touchpad にすげ替えています。
  これにより、作成された 11-x11-synaptics.fdi から
        <merge key="input.x11_driver" type="string">synaptics</merge>
をなくせます。

  参考までに、私の /usr/local/etc/hal/fdi/policy/x11-synaptics.fdi です。
CF-R4 なので、circular touchpad を有効にしています。

<?xml version="1.0" encoding="ISO-8859-1"?>
<deviceinfo version="0.2">
  <device>
    <match key="info.capabilities" contains="input.touchpad">
      <merge key="input.x11_options.Protocol" type="string">psm</merge>

      <merge key="input.x11_options.LeftEdge" type="string">1700</merge>
      <merge key="input.x11_options.RightEdge" type="string">5300</merge>
      <merge key="input.x11_options.TopEdge" type="string">1700</merge>
      <merge key="input.x11_options.BottomEdge" type="string">4200</merge>

      <merge key="input.x11_options.FingerLow" type="string">25</merge>
      <merge key="input.x11_options.FingerHigh" type="string">30</merge>

      <merge key="input.x11_options.MaxTapTime" type="string">180</merge>
      <merge key="input.x11_options.MaxTapMove" type="string">220</merge>

      <merge key="input.x11_options.VertScrollDelta" type="string">100</merge>
      <merge key="input.x11_options.HorizScrollDelta" type="string">100</merge>

      <merge key="input.x11_options.MinSpeed" type="string">0.06</merge>
      <merge key="input.x11_options.MaxSpeed" type="string">0.06</merge>
      <merge key="input.x11_options.AccelFactor" type="string">0.0010</merge>

      <merge key="input.x11_options.ScrollButtonRepeat" 
type="string">100</merge>
      <merge key="input.x11_options.UpDownScrolling" type="string">true</merge>
      <merge key="input.x11_options.UpDownRepeat" type="string">true</merge>
      <merge key="input.x11_options.LeftRightScrolling" 
type="string">true</merge>
      <merge key="input.x11_options.LeftRightRepeat" type="string">true</merge>

      <!-- "SHMConfig on" seems good works with synclient(1).  But this
           options is insecure.  I recommended "off" as default. -->
      <merge key="input.x11_options.SHMConfig" type="string">true</merge>

      <!-- If you use circular touchpad, uncomment them. -->
      <merge key="input.x11_options.CircularPad" type="string">true</merge>
      <merge key="input.x11_options.CircularScrolling" 
type="string">true</merge>
      <!-- merge key="input.x11_options.CircScrollDelta" 
type="string">0.5</merge -->
    </match>
  </device>
</deviceinfo>

t-matubara> 1)lshal のマウス認識部分です。

  上記 fdi により、以下のようになります。

udi = '/org/freedesktop/Hal/devices/psm_0'
  freebsd.device_file = '/dev/psm0'  (string)
  freebsd.driver = 'psm'  (string)
  freebsd.unit = 0  (0x0)  (int)
  info.capabilities = {'input', 'input.touchpad'} (string list)
  info.category = 'input.mouse'  (string)
  info.parent = '/org/freedesktop/Hal/devices/atkbdc_0'  (string)
  info.product = 'PS/2 Mouse'  (string)
  info.subsystem = 'platform'  (string)
  info.udi = '/org/freedesktop/Hal/devices/psm_0'  (string)
  input.device = '/dev/psm0'  (string)
  input.x11_driver = 'synaptics'  (string)
  input.x11_options.AccelFactor = '0.0010'  (string)
  input.x11_options.BottomEdge = '4200'  (string)
  input.x11_options.CircularPad = 'true'  (string)
  input.x11_options.CircularScrolling = 'true'  (string)
  input.x11_options.FingerHigh = '30'  (string)
  input.x11_options.FingerLow = '25'  (string)
  input.x11_options.HorizScrollDelta = '100'  (string)
  input.x11_options.LeftEdge = '1700'  (string)
  input.x11_options.LeftRightRepeat = 'true'  (string)
  input.x11_options.LeftRightScrolling = 'true'  (string)
  input.x11_options.MaxSpeed = '0.06'  (string)
  input.x11_options.MaxTapMove = '220'  (string)
  input.x11_options.MaxTapTime = '180'  (string)
  input.x11_options.MinSpeed = '0.06'  (string)
  input.x11_options.Protocol = 'psm'  (string)
  input.x11_options.RightEdge = '5300'  (string)
  input.x11_options.SHMConfig = 'true'  (string)
  input.x11_options.ScrollButtonRepeat = '100'  (string)
  input.x11_options.TopEdge = '1700'  (string)
  input.x11_options.UpDownRepeat = 'true'  (string)
  input.x11_options.UpDownScrolling = 'true'  (string)
  input.x11_options.VertScrollDelta = '100'  (string)
  platform.id = 'psm.0'  (string)

t-matubara> Section "ServerLayout"
t-matubara>         Identifier     "X.org Configured"
t-matubara>         Screen      0  "Screen0" 0 0
t-matubara>         InputDevice    "Mouse0" "CorePointer"
t-matubara>         InputDevice    "Keyboard0" "CoreKeyboard"
t-matubara>         Option         "AIGLX" "true" # ADD 2009/02/07
t-matubara> EndSection

  hal で認識させているので、

    "Mouse0" "CorePointer"
    "Keyboard0" "CoreKeyboard"

は不要です。また、対応する InputDevice セクションも不要です。

  参考になれば幸いです。

-- 
梅本 肇 @ インターネット互助会横浜  http://www.imasy.org/~ume/
u...@mahoroba.org  u...@{,jp.}FreeBSD.org
プログラムは書いた人の意図ではなく書かれた通り動く  I hate Modula-3 :-)

メールによる返信