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 different 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 session. 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 executing 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 own window manager configuration.
Both logon and wm use the currently bound /dev/draw directory, /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 limited 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