MOUSED(8)               NetBSD System Manager's Manual               MOUSED(8)

NAME
     moused -- pass mouse data to mouse mux

SYNOPSIS
     moused [-DPRacdfs] [-I file] [-F rate] [-r resolution] [-S baudrate]
            [-W devicename] [-a X[,Y]] [-m N=M] [-w N] [-z target]
            [-t mousetype] [-3 [-E timeout]] -p port

     moused [-Pd] -p port -i info

DESCRIPTION
     The mouse daemon moused and the console driver work together to support
     access to serial mice from user programs.  They virtualize the mouse and
     provide user programs with mouse data in the standard format (see
     wsmouse(4)).

     moused listens to the specified port for mouse data, interprets and then
     passes it via ioctls to the console driver.  It reports translation move-
     ment, button press/release events and movement of the roller or the wheel
     if available.  The roller/wheel movement is reported as ``Z'' axis move-
     ment.

     If moused receives the signal SIGHUP, it will reopen the mouse port and
     reinitializes itself.  Useful if the mouse is attached/detached while the
     system is suspended.

     The following options are available:

     -3      Emulate the third (middle) button for 2-button mice.  It is emu-
             lated by pressing the left and right physical buttons simultane-
             ously.

     -D      Lower DTR on the serial port.  This option is valid only if
             mousesystems is selected as the protocol type.  The DTR line may
             need to be dropped for a 3-button mouse to operate in the
             mousesystems mode.

     -E timeout
             When the third button emulation is enabled (see above), moused
             waits timeout milliseconds at most before deciding whether two
             buttons are being pressed simultaneously.  The default timeout is
             100 milliseconds.

     -F rate
             Set the report rate (reports per second) of the device if sup-
             ported.

     -I file
             Write the process id of moused in the specified file.  Without
             this option, the process id will be stored in
             /var/run/moused.pid.

     -P      Do not start the Plug and Play COM device enumeration procedure
             when identifying the serial mouse.  If this option is given
             together with the -i option, moused will not be able to print
             useful information for the serial mouse.

     -R      Lower RTS on the serial port.  This option is valid only if
             mousesystems is selected as the protocol type by the -t option
             below.  It is often used with the -D option above.  Both RTS and
             DTR lines may need to be dropped for a 3-button mouse to operate
             in the mousesystems mode.

     -S baudrate
             Select the baudrate for the serial port (1200 to 9600).  Not all
             serial mice support this option.

     -W devicename
             Select the wsmux(4) control device.  The default is
             /dev/wsmuxctl0.

     -a X[,Y]
             Accelerate or decelerate the mouse input.  This is a linear
             acceleration only.  Values less than 1.0 slow down movement, val-
             ues greater than 1.0 speed it up.  Specifying only one value sets
             the acceleration for both axes.

     -c      Some mice report middle button down events as if the left and
             right buttons are being pressed.  This option handles this.

     -d      Enable debugging messages.

     -f      Do not become a daemon and instead run as a foreground process.
             Useful for testing and debugging.

     -i info
             Print specified information and quit.  Available pieces of infor-
             mation are:

             port      Port (device file) name, e.g. /dev/tty00.
             if        Interface type: serial, bus, inport or ps/2.
             type      Protocol type.  It is one of the types listed under the
                       -t option below.
             model     Mouse model.  moused may not always be able to identify
                       the model.
             all       All of the above items.  Print port, interface, type
                       and model in this order in one line.

             If moused cannot determine the requested information, it prints
             ``unknown'' or ``generic''.

     -m N=M  Assign the physical button M to the logical button N.  You may
             specify as many instances of this option as you like.  More than
             one physical button may be assigned to a logical button at the
             same time.  In this case the logical button will be down, if
             either of the assigned physical buttons is held down.  Do not put
             space around `='.

     -p port
             Use port to communicate with the mouse.

     -r resolution
             Set the resolution of the device; in Dots Per Inch, or low,
             medium-low, medium-high or high.  This option may not be sup-
             ported by all the device.

     -s      Select a baudrate of 9600 for the serial line.  Not all serial
             mice support this option.

     -t type
             Specify the protocol type of the mouse attached to the port.  You
             may explicitly specify a type listed below, or use auto to let
             moused automatically select an appropriate protocol for the given
             mouse.  If you entirely omit this option on the command line, -t
             auto is assumed.  Under normal circumstances, you need to use
             this option only if moused is not able to detect the protocol
             automatically.

             Note that if a protocol type is specified with this option, the
             -P option above is implied and Plug and Play COM device enumera-
             tion procedure will be disabled.

             Valid types for this option are listed below.

             For the serial mouse:
             microsoft        Microsoft serial mouse protocol.  Most 2-button
                              serial mice use this protocol.
             intellimouse     Microsoft IntelliMouse protocol.  Genius Net-
                              Mouse, ASCII Mie Mouse, Logitech MouseMan+ and
                              FirstMouse+ use this protocol too.  Other mice
                              with a roller/wheel may be compatible with this
                              protocol.
             mousesystems     MouseSystems 5-byte protocol.  3-button mice may
                              use this protocol.
             mmseries         MM Series mouse protocol.
             logitech         Logitech mouse protocol.  Note that this is for
                              old Logitech models.  mouseman or intellimouse
                              should be specified for newer models.
             mouseman         Logitech MouseMan and TrackMan protocol.  Some
                              3-button mice may be compatible with this proto-
                              col.  Note that MouseMan+ and FirstMouse+ use
                              intellimouse protocol rather than this one.
             glidepoint       ALPS GlidePoint protocol.
             thinkingmouse    Kensington ThinkingMouse protocol.
             mmhitab          Hitachi tablet protocol.
             x10mouseremote   X10 MouseRemote.
             kidspad          Genius Kidspad and Easypad protocol.
             versapad         Interlink VersaPad protocol.

     -w N    Make the physical button N act as the wheel mode button.  While
             this button is pressed, X and Y axis movement is reported to be
             zero and the Y axis movement is mapped to Z axis.  You may fur-
             ther map the Z axis movement to virtual buttons by the -z option
             below.

     -z target
             Map Z axis (roller/wheel) movement to another axis or to virtual
             buttons.  Valid target maybe:
             x
             y    X or Y axis movement will be reported when the Z axis move-
                  ment is detected.
             N    Report down events for the virtual buttons N and N+1 respec-
                  tively when negative and positive Z axis movement is
                  detected.  There do not need to be physical buttons N and
                  N+1.  Note that mapping to logical buttons is carried out
                  after mapping from the Z axis movement to the virtual but-
                  tons is done.
             N1 N2
                  Report down events for the virtual buttons N1 and N2 respec-
                  tively when negative and positive Z axis movement is
                  detected.
             N1 N2 N3 N4
                  This is useful for the mouse with two wheels of which the
                  second wheel is used to generate horizontal scroll action,
                  and for the mouse which has a knob or a stick which can
                  detect the horizontal force applied by the user.

                  The motion of the second wheel will be mapped to the buttons
                  N3, for the negative direction, and N4, for the positive
                  direction.  If the buttons N3 and N4 actually exist in this
                  mouse, their actions will not be detected.

                  Note that horizontal movement or second roller/wheel move-
                  ment may not always be detected, because there appears to be
                  no accepted standard as to how it is encoded.

                  Note also that some mice think left is the negative horizon-
                  tal direction, others may think otherwise.  Moreover, there
                  are some mice whose two wheels are both mounted vertically,
                  and the direction of the second vertical wheel does not
                  match the first one's.

   Multiple Mice
     As many instances of moused as the number of mice attached to the system
     may be run simultaneously; one instance for each serial mouse.

FILES
     /dev/wsmuxctl0       default device to control mouse mux
     /var/run/moused.pid  process id of the currently running moused

EXAMPLES
           moused -p /dev/tty00 -i type

     Let moused determine the protocol type of the mouse at the serial port
     /dev/tty00.  If successful, moused will print the type, otherwise it will
     say ``unknown''.

           moused -p /dev/tty00

     If moused is able to identify the protocol type of the mouse at the spec-
     ified port automatically, you can start the daemon without the -t option
     and enable the mouse pointer in the text console as above.

           moused -p /dev/tty01 -t microsoft

     Start moused on the serial port /dev/tty01.  The protocol type microsoft
     is explicitly specified by the -t option.

           moused -p /dev/tty01 -m 1=3 -m 3=1

     Assign the physical button 3 (right button) to the logical button 1 (log-
     ical left) and the physical button 1 (left) to the logical button 3 (log-
     ical right).  This will effectively swap the left and right buttons.

           moused -p /dev/tty01 -t intellimouse -z 4

     Report negative Z axis (roller) movement as the button 4 pressed and pos-
     itive Z axis movement as the button 5 pressed.

     The mouse daemon is normally enabled by setting moused=YES in
     /etc/rc.conf.

SEE ALSO
     wsmouse(4), wsmux(4), rc.conf(5), wsmoused(8)

STANDARDS
     moused partially supports ``Plug and Play External COM Device
     Specification'' in order to support PnP serial mice.  However, due to
     various degrees of conformance to the specification by existing serial
     mice, it does not strictly follow version 1.0 of the standard.  Even with
     this less strict approach, it may not always determine an appropriate
     protocol type for the given serial mouse.

HISTORY
     The mouse daemon moused first appeared in FreeBSD 2.2 and NetBSD 1.6.

AUTHORS
     moused was written by Michael Smith <msmith@FreeBSD.org>.  This manual
     page was written by
     Mike Pritchard <mpp@FreeBSD.org>.  The daemon and manual page have since
     been updated by
     Kazutaka Yokota <yokota@FreeBSD.org>.  The NetBSD port was done by
     Lennart Augustsson <augustss@NetBSD.org>.

BUGS
     Many pad devices behave as if the first (left) button were pressed if the
     user `taps' the surface of the pad.  In contrast, some ALPS GlidePoint
     and Interlink VersaPad models treat the tapping action as fourth button
     events.  Use the option ``-m 1=4'' for these models to obtain the same
     effect as the other pad devices.

NetBSD 5.0_STABLE              October 29, 2001              NetBSD 5.0_STABLE
