FreeBSD の Xorg でホイールマウスの設定
FreeBSD(14.x, 15.x で確認)でのホイールマウスの設定である. X サーバは XFree86 から Xorg に置き換わっており,設定ファイルの場所と書式も変更されている. USB マウスと PS/2 マウスは evdev インタフェース(/dev/input/event*)で扱われ, 機器の着脱は devd(8) が処理するため, かつて必要であった /etc/usbd.conf の編集は不要である.
テキストコンソールでの設定(moused)
テキストコンソールでマウスを使う場合は,moused(8) を有効にする.
root 権限で sysrc を実行して /etc/rc.conf に設定を書き込む.
sysrc moused_enable="YES"
sysrc moused_flags="-z 4"
service moused start
-z 4 は,ホイール(Z軸)の回転をボタン 4 とボタン 5 の押下として報告させるオプションである.
FreeBSD 15 の moused は,既定の -p auto により,接続されたすべての evdev 対応ポインティングデバイスを 1 つのプロセスで扱う.
特定のデバイスだけを扱う場合は,ポートを明示的に指定する.
sysrc moused_port="/dev/input/event0"
コンソールでマウスポインタを表示し,コピー&ペーストを使う場合は,次を実行する.
vidcontrol -m on
Xorg での設定
Xorg は入力機器を libinput により自動認識する. 通常のホイール付きマウスであれば,設定ファイルを作成しなくてもホイールは動作する. Xorg は moused が提供する仮想デバイス(System mouse, /dev/sysmouse)を既定で無視するので, moused を動かしていても X 上のマウス動作には影響しない.
認識されている入力機器は,X セッション内で xinput により確認できる.
xinput
スクロール方向や加速などを変更する場合は, /usr/local/etc/X11/xorg.conf.d/ に設定ファイル(例:40-libinput.conf)を作成する. 単一の xorg.conf を作成するのではなく,項目ごとにファイルを分けるのが現在の方式である.
Section "InputClass"
Identifier "libinput pointer catchall"
MatchIsPointer "on"
MatchDevicePath "/dev/input/event*"
Driver "libinput"
Option "NaturalScrolling" "false"
Option "AccelSpeed" "0.0"
EndSection
デスクトップ環境(KDE Plasma, GNOME など)を使う場合は, これらの項目を設定するグラフィカルなユーティリティが用意されているので,そちらを使ってもよい.
シリアルマウスなど evdev で扱えない機器の場合
evdev で扱えない機器では,moused が提供する /dev/sysmouse を, x11-drivers/xf86-input-mouse ドライバ経由で使用する. このドライバをインストールする.
pkg install xf86-input-mouse
/usr/local/etc/X11/xorg.conf.d/ に設定ファイル(例:40-mouse.conf)を作成し, 自動認識を無効にしたうえで,デバイスを明示的に指定する.
Section "ServerFlags"
Option "AutoAddDevices" "off"
EndSection
Section "InputDevice"
Identifier "Mouse0"
Driver "mouse"
Option "Device" "/dev/sysmouse"
Option "Protocol" "auto"
Option "Buttons" "5"
Option "ZAxisMapping" "4 5"
EndSection
ZAxisMapping "4 5" により,ホイールの回転がボタン 4 とボタン 5 として X アプリケーションに渡される.