Do a better job of supporting more than one mouse device

on the system.

To start/stop/check on a specific device give the device name as
the second argument to the script:
	# /etc/rc.d/moused start ums0

To use different rc.conf(5) knobs with different mice use the device
name as part of the knob. For example, if the mouse device is ums0, then:
	moused_ums0_enable=yes
	moused_ums0_flags="-z 4"
	moused_ums0_port="/dev/ums0"

Starting rc.d/moused without the device argument will use the standard
moused_* flags. So, this commit should not disrupt or change current usage.

To preserve current behaviour with respect to usb mice, which appear
automatically when inserted, there is a new knob, moused_nondefault_enable,
which will treat any devices without rc.conf knobs as enabled.

To minimize knobs in /etc/rc.conf, the device file and pid file are
auto-computed, so that in the typical case for a usb mouse you don't
need to add anything extra in /etc/rc.conf to get it working.

Additionally, this updates /etc/usbd.conf to use the rc.d/moused script so
people don't have to modify it to configure their usb mouse anymore.

MFC after: 1 month
This commit is contained in:
mtm 2004-11-01 18:05:41 +00:00
parent 1e775fb678
commit cece67fa00
4 changed files with 57 additions and 5 deletions

View File

@ -362,6 +362,8 @@ font8x14="NO" # font 8x14 from /usr/share/syscons/fonts/* (or NO).
font8x8="NO" # font 8x8 from /usr/share/syscons/fonts/* (or NO).
blanktime="300" # blank time (in seconds) or "NO" to turn it off.
saver="NO" # screen saver: Uses /boot/kernel/${saver}_saver.ko
moused_nondefault_enable="YES" # Treat non-default mice as enabled unless
# specifically overriden in rc.conf(5).
moused_enable="NO" # Run the mouse daemon.
moused_type="auto" # See man page for rc.conf(5) for available settings.
moused_port="/dev/psm0" # Set to your mouse port.

View File

@ -14,11 +14,47 @@ name=moused
rcvar=`set_rcvar`
command="/usr/sbin/${name}"
start_cmd="moused_start"
_pidprefix="/var/run/moused"
pidfile="${_pidprefix}.pid"
_pidarg=
load_rc_config $name
# Set the pid file and variable name. The second argument, if it exists, is
# expected to be the mouse device.
#
if [ -n "$2" ]; then
checkyesno moused_nondefault_enable &&
eval moused_$2_enable=\${moused_$2_enable-YES}
rcvar=`set_rcvar moused_$2`
pidfile="${_pidprefix}.$2.pid"
_pidarg="-I $pidfile"
fi
moused_start()
{
echo -n 'Starting moused:'
/usr/sbin/moused ${moused_flags} -p ${moused_port} -t ${moused_type}
local ms myflags myport mytype
# Set the mouse device and get any related variables. If
# a moused device has been specified on the commandline, then
# rc.conf(5) variables defined for that device take precedence
# over the generic moused_* variables. The only exception is
# the moused_port variable, which if not defined sets it to the
# passed in device name.
#
ms=$1
if [ -n "$ms" ]; then
eval myflags=\${moused_${ms}_flags-$moused_flags}
eval myport=\${moused_${ms}_port-/dev/$ms}
eval mytype=\${moused_${ms}_type-$moused_type}
else
ms="default"
myflags="$moused_flags"
myport="$moused_port"
mytype="$moused_type"
fi
echo -n "Starting ${ms} moused:"
/usr/sbin/moused ${myflags} -p ${myport} -t ${mytype} ${_pidarg}
_mousechar_arg=
case ${mousechar_start} in
@ -36,5 +72,4 @@ moused_start()
echo '.'
}
load_rc_config $name
run_rc_command "$1"
run_rc_command $*

View File

@ -46,7 +46,7 @@ device "Handspring Visor"
#
device "Mouse"
devname "ums[0-9]+"
attach "/usr/sbin/moused -p /dev/${DEVNAME} -I /var/run/moused.${DEVNAME}.pid ; /usr/sbin/vidcontrol -m on"
attach "/etc/rc.d/moused start ${DEVNAME}"
# The fallthrough entry: Nothing is specified, nothing is done. And it isn't
# necessary at all :-). Just for pretty printing in debugging mode.

View File

@ -2223,6 +2223,21 @@ If not set to
this is the actual screen saver to use
.Li ( blank , snake , daemon ,
etc).
.It Va moused_nondefault_enable
.Pq Vt str
If set to
.Dq Li NO
the mouse device specified on
the command line is not automatically treated as enabled by the
.Pa /etc/rc.d/moused
script.
Having this variable set to
.Dq Li YES
allows a
.Xr usb 4
mouse,
for example,
to be enabled as soon as it is plugged in.
.It Va moused_enable
.Pq Vt str
If set to