PLUMBER(8)                                             PLUMBER(8)

     NAME
          plumber - plumber for interapplication message routing

     SYNOPSIS
          plumber [ -v ] [ -w ] [ -c wmchan ] [ rulefile ...  ]

     DESCRIPTION
          Plumber provides high-level message-passing between applica-
          tions.  In a plumbed environment, applications can receive
          messages on an input port, which is given a logical name.
          Messages are not sent directly between applications but are
          routed via the plumber, following user-specified rules.

          Plumber is typically started by wm(1)'s startup script.  It
          reads each rulefile (default: /usr/user/lib/plumbing) in
          turn.  Each file has the form described in plumbing(6); the
          rules direct the routing of each message plumber receives.
          Plumber then lurks in the background with its mate, awaiting
          plumbing requests sent by plumbmsg(2), by windowing applica-
          tions in response to events such as button clicks or drag-
          and-drop, or by plumb(1).

          When a message arrives, plumber applies the rules to decide
          how to route it.  It forwards the message to the selected
          application's input port, starting it if necessary.  If no
          rule applies (or some other error occurs), plumber returns
          an error to the message's sender.  The -v option causes
          plumber to log the contents of messages it receives, to help
          debug plumbing rules and applications.

          Plumber normally starts applications directly.  For use on
          devices that have specialised window managers, not wm(1),
          the -w option causes plumber to start applications indi-
          rectly, by sending a message to a window manager listening
          on /chan/wm, allowing the window manager to track every
          application started.  The -c option can select an alterna-
          tive wmchan to /chan/wm.

     FILES
          /usr/user/lib/plumbing  default plumbing rules for user

     SOURCE
          /appl/cmd/plumber.b
          /appl/lib/plumbing.b

     SEE ALSO
          plumb(1), wm(1), plumbmsg(2), plumbing(6)