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:
parent
1e775fb678
commit
cece67fa00
@ -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.
|
||||
|
@ -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 $*
|
||||
|
@ -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.
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user