WM(1)                                                       WM(1)

     NAME
          logon, wm - window manager

     SYNOPSIS
          wm/logon [ -u username ]
          wm/wm [ -s ]

     DESCRIPTION
          Wm is the Inferno Tk-based window manager, providing the
          control mechanisms for the user to manage the order and
          position of a dynamic collection of application windows with
          a Limbo/Tk environment.  (Mux(1) provides a completely dif-
          ferent environment based not on Tk but rather the Prefab
          module described in prefab-intro(2).)

          Wm is normally started by running wm/logon, which acquires
          and validates a username to use for the window manager ses-
          sion.  The -u option to logon specifies the initial username
          to try, otherwise a prompt is displayed for username input.
          Logon verifies that the user has a home directory and if a
          system licence exists, that the user has agreed to it.  If
          agreement to the licence is required, the licence text is
          displayed and the user is requested to accept or reject the
          terms.  If the user's directory does not exist or the user
          rejects the licence terms then the logon is rejected and the
          username prompt will be displayed again.

          Before launching wm/wm, logon tests to see if the file
          /usr/username/lib/namespace exists.  If so, newns(2) is
          given it to construct the namespace in which wm will be run
          (see namespace(6)).

          When wm is started, it configures itself by means of the
          /lib/wmsetup shell script.  Wm loads the shell sh(1), and
          defines the following shell built-in commands before execut-
          ing the script:

          menu title1 [title2] command
               Insert an item at the top of the start menu.  Title1 is
               the text of the item on the main menu.  If title2 is
               given then title1 is a sub-menu with title2 as the menu
               item.  Command is executed by the shell whenever the
               item is selected.  An item with an empty command is
               displayed as a separator.

          delmenu
               Forget all menu items.

          The standard /lib/wmsetup script executes the script
          /usr/username/lib/wmsetup, enabling each user to have their

     Page 1                       Plan 9            (printed 12/21/24)

     WM(1)                                                       WM(1)

          own window manager configuration.

          Both logon and wm use the currently bound /dev/draw direc-
          tory, /dev/keyboard, and /dev/pointer for their graphical
          display, keyboard and mouse input.  The display size will
          depend upon the particular device that is being used, or
          upon the arguments given to emu(1). The -s option causes wm
          to suppress the start menu; available applications are lim-
          ited to those started by wmsetup and applications they start
          in turn.

     FILES
          /chan/snarf     File representing global `snarf' buffer for
                          text exchange between windows
          /chan/wm        Control channel used by wmlib(2)
          /chan/wmstdout  Standard output for processes started by wm
          /chan/wmstderr  Standard error for processes started by wm
          /dev/pointer    Source of mouse events to feed to tk(2)
          /dev/keyboard   Source of keyboard data to feed to tk(2)

     SOURCE
          /appl/wm/logon.b
          /appl/wm/wm.b

     SEE ALSO
          sh(1), emu(1), wm-license(1), wmlib(2), namespace(6)

     Page 2                       Plan 9            (printed 12/21/24)