1#!/bin/sh 2# 3# $FreeBSD$ 4# 5 6# PROVIDE: moused 7# REQUIRE: DAEMON FILESYSTEMS 8# KEYWORD: nojail shutdown 9 10. /etc/rc.subr 11 12name="moused" 13desc="Mouse daemon" 14rcvar="moused_enable" 15command="/usr/sbin/${name}" 16start_cmd="moused_start" 17pidprefix="/var/run/moused" 18pidfile="${pidprefix}.pid" 19pidarg= 20load_rc_config $name 21 22# Set the pid file and variable name. The second argument, if it exists, is 23# expected to be the mouse device. 24# 25if [ -n "$2" ]; then 26 eval moused_$2_enable=\${moused_$2_enable-${moused_nondefault_enable}} 27 rcvar="moused_${2}_enable" 28 pidfile="${pidprefix}.$2.pid" 29 pidarg="-I $pidfile" 30fi 31 32moused_start() 33{ 34 local ms myflags myport mytype 35 36 # Set the mouse device and get any related variables. If 37 # a moused device has been specified on the commandline, then 38 # rc.conf(5) variables defined for that device take precedence 39 # over the generic moused_* variables. The only exception is 40 # the moused_port variable, which if not defined sets it to the 41 # passed in device name. 42 # 43 ms=$1 44 if [ -n "$ms" ]; then 45 eval myflags=\${moused_${ms}_flags-$moused_flags} 46 eval myport=\${moused_${ms}_port-/dev/$ms} 47 eval mytype=\${moused_${ms}_type-$moused_type} 48 else 49 ms="default" 50 myflags="$moused_flags" 51 myport="$moused_port" 52 mytype="$moused_type" 53 fi 54 55 startmsg -n "Starting ${ms} moused" 56 /usr/sbin/moused ${myflags} -p ${myport} -t ${mytype} ${pidarg} 57 startmsg '.' 58 59 mousechar_arg= 60 case ${mousechar_start} in 61 [Nn][Oo] | '') 62 ;; 63 *) 64 mousechar_arg="-M ${mousechar_start}" 65 ;; 66 esac 67 68 for ttyv in /dev/ttyv* ; do 69 vidcontrol < ${ttyv} ${mousechar_arg} -m on 70 done 71} 72 73run_rc_command $* 74