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