UWM(1) USER COMMANDS UWM(1) NAME uwm - a window manager for X SYNTAX uwm [-display _d_i_s_p_l_a_y] [-f _f_i_l_e_n_a_m_e] DESCRIPTION The _u_w_m program is a window manager for X. When _u_w_m is invoked, it searches a predefined search path to locate any _u_w_m startup files. If no startup files exist, _u_w_m initializes its built-in default file. If startup files exist in any of the following locations, it adds the variables to the default variables. In the case of contention, the variables in the last file found override previous specifications. Files in the _u_w_m search path are: /_u_s_r/_l_i_b/_X_1_1/_u_w_m/_s_y_s_t_e_m._u_w_m_r_c $_H_O_M_E/._u_w_m_r_c To use only the settings defined in a single startup file, include the variables resetbindings, resetmenus, resetvari- ables at the top of that specific startup file. OPTIONS -f _f_i_l_e_n_a_m_e Names an alternate file as a _u_w_m startup file. STARTUP FILE VARIABLES Variables are typically entered first, at the top of the startup file. By convention, resetbindings, resetmenus, and resetvariables head the list. autoselect/noautoselect places the menu cursor in the first menu item. If unspecified, the menu cursor is placed in the menu header when the menu is displayed. background=_c_o_l_o_r specifies the default background color for popup sizing windows, menus, and icons. The default is to use the WhitePixel for the current screen. bordercolor=_c_o_l_o_r specifies the default border color for popup sizing windows, menus, and icons. The default is to use the BlackPixel for the current screen. X Version 11 Last change: 26 October 1988 1 UWM(1) USER COMMANDS UWM(1) borderwidth=_p_i_x_e_l_s specifies the default width in pixels for borders around popup sizing windows, menus, and icons. The default is 2. delta=_p_i_x_e_l_s indicates the number of pixels the cursor is moved before the action is interpreted by the window manager as a command. (Also refer to the delta mouse action.) foreground=_c_o_l_o_r specifies the default foreground color for popup sizing windows, menus, and icons. The default is to use the BlackPixel for the current screen. freeze/nofreeze locks all other client applications out of the server during certain window manager tasks, such as move and resize. grid/nogrid displays a finely-ruled grid to help you position an icon or window during resize or move operations. hiconpad=_p_i_x_e_l_s indicates the number of pixels to pad an icon horizontally. The default is five pixels. hmenupad=_p_i_x_e_l_s indicates the amount of space in pixels that each menu item is padded to the left and to the right of the text. borderwidth=_p_i_x_e_l_s indicates the width in pixels of the border surrounding icons. iconfont=_f_o_n_t_n_a_m_e names the font that is displayed within icons. Font names for a given server can be obtained using _x_l_s_f_o_n_t_s(_1). maxcolors=_n_u_m_b_e_r limits the number of colors the window manager can use in a given invocation. If set to zero, or not specified, _u_w_m assumes no limit to the number of colors it can take from the color map. maxcolors counts colors as they are included in the file. mborderwidth=_p_i_x_e_l_s X Version 11 Last change: 26 October 1988 2 UWM(1) USER COMMANDS UWM(1) indicates the width in pixels of the border surrounding menus. normali/nonormali places icons created with f.newiconify within the root window, even if it is placed par- tially off the screen. With nonormali the icon is placed exactly where the cursor leaves it. normalw/nonormalw places window created with f.newiconify within the root window, even if it is placed partially off the screen. With nonormalw the window is placed exactly where the cursor leaves it. push=_n_u_m_b_e_r moves a window _n_u_m_b_e_r pixels or 1/_n_u_m_b_e_r times the size of the window, depending on whether pushabsolute or pushrelative is specified. Use this variable in conjunction with f.pushup, f.pushdown, f.pushright, or f.pushleft. pushabsolute/pushrelative pushabsolute indicates that the number entered with push is equivalent to pixels. When an f.push (left, right, up, or down) function is called, the window is moved exactly that number of pixels. pushrelative indicates that the number entered with the push variable represents a relative number. When an f.push function is called, the window is invisibly divided into the number of parts you entered with the push variable, and the window is moved one part. resetbindings, resetmenus, and resetvariables resets all previous function bindings, menus, and variable entries, specified in any startup file in the _u_w_m search path, includ- ing those in the default environment. By convention, these variables are entered first in the startup file. resizefont=_f_o_n_t_n_a_m_e identifies the font of the indicator that displays dimensions in the corner of the win- dow as you resize windows. See _x_l_s_f_o_n_t_s(_1) for obtaining font names. X Version 11 Last change: 26 October 1988 3 UWM(1) USER COMMANDS UWM(1) resizerelative/noresizerelative indicates whether or not resize operations should be done relative to moving edge or edges. By default, the dynamic rectangle uses the actual pointer location to define the new size. reverse/noreverse defines the display as black characters on a white background for the window manager win- dows and icons. viconpad=_p_i_x_e_l_s indicates the number of pixels to pad an icon vertically. Default is five pixels. vmenupad=_p_i_x_e_l_s indicates the amount of space in pixels that the menu is padded above and below the text. volume=_n_u_m_b_e_r increases or decreases the base level volume set by the _x_s_e_t(_1) command. Enter an integer from 0 to 7, 7 being the loudest. zap/nozap causes ghost lines to follow the window or icon from its previous default location to its new location during a move or resize operation. BINDING SYNTAX _f_u_n_c_t_i_o_n=[_c_o_n_t_r_o_l _k_e_y(_s)]:[_c_o_n_t_e_x_t]:_m_o_u_s_e _e_v_e_n_t_s:" _m_e_n_u _n_a_m_e " Function and mouse events are required input. Menu name is required with the _f._m_e_n_u function definition only. Function f.beep emits a beep from the keyboard. Loudness is determined by the volume variable. f.circledown causes the top window that is obscuring another window to drop to the bottom of the stack of windows. f.circleup exposes the lowest window that is obscured by other windows. f.continue releases the window server display action after you stop action with the f.pause func- tion. f.focus directs all keyboard input to the selected X Version 11 Last change: 26 October 1988 4 UWM(1) USER COMMANDS UWM(1) window. To reset the focus to all windows, invoke _f._f_o_c_u_s from the root window. f.iconify when implemented from a window, this function converts the window to its respective icon. When implemented from an icon, f.iconify con- verts the icon to its respective window. f.kill kills the client that created a window. f.lower lowers a window that is obstructing a window below it. f.menu invokes a menu. Enclose `menu name' in quotes if it contains blank characters or parentheses. f.menu=[_c_o_n_t_r_o_l _k_e_y(_s)]:[_c_o_n_t_e_x_t ]:_m_o_u_s_e _e_v_e_n_t_s:" _m_e_n_u _n_a_m_e " f.move moves a window or icon to a new location, which becomes the default location. f.moveopaque moves a window or icon to a new screen loca- tion. When using this function, the entire window or icon is moved to the new screen location. The grid effect is not used with this function. f.newiconify allows you to create a window or icon and then position the window or icon in a new default location on the screen. f.pause temporarily stops all display action. To release the screen and immediately update all windows, use the f.continue function. f.pushdown moves a window down. The distance of the push is determined by the push variables. f.pushleft moves a window to the left. The distance of the push is determined by the push variables. f.pushright moves a window to the right. The distance of the push is determined by the push variables. f.pushup moves a window up. The distance of the push is determined by the push variables. f.raise raises a window that is being obstructed by a window above it. X Version 11 Last change: 26 October 1988 5 UWM(1) USER COMMANDS UWM(1) f.refresh results in exposure events being sent to the window server clients for all unobscured or partially obscured windows. The windows will not refresh correctly if the exposure events are not handled properly. f.resize resizes an existing window. Note that some clients, notably editors, react unpredictably if you resize the window while the client is running. f.restart causes the window manager application to res- tart, retracing the _u_w_m search path and ini- tializing the variables it finds. Control Keys By default, the window manager uses meta as its control key. It can also use ctrl, shift, lock, or null (no control key). Control keys must be entered in lower case, and can be abbreviated as: c, l, m, s for ctrl, lock, meta, and shift, respectively. You can bind one, two, or no control keys to a function. Use the bar (|) character to combine control keys. Note that client applications other than the window manager may use pointer button and control key combinations. If the window manager has bound these combinations for its own use, the client application will never see the requested pointer input. Context The context refers to the screen location of the cursor when a command is initiated. When you include a context entry in a binding, the cursor must be in that context or the func- tion will not be activated. The window manager recognizes the following four contexts: icon, window, root, (null). The root context refers to the root, or background window, A (null) context is indicated when the context field is left blank, and allows a function to be invoked from any screen location. Combine contexts using the bar (|) character. Mouse Buttons Any of the following mouse buttons are accepted in lower case and can be abbreviated as l, m, or r, respectively: left, middle, right. With the specific button, you must identify the action of that button. Mouse actions can be: down function occurs when the specified button is X Version 11 Last change: 26 October 1988 6 UWM(1) USER COMMANDS UWM(1) pressed down. up function occurs when the specified button is released. delta indicates that the mouse must be moved the number of pixels specified with the delta variable before the specified function is invoked. The mouse can be moved in any direction to satisfy the delta requirement. MENU DEFINITION After binding a set of function keys and a menu name to f.menu, you must define the menu to be invoked, using the following syntax: menu = " _m_e_n_u _n_a_m_e " { "_i_t_e_m _n_a_m_e" : "_a_c_t_i_o_n" . . . } Enter the menu name exactly the way it is entered with the f.menu function or the window manager will not recognize the link. If the menu name contains blank strings, tabs or parentheses, it must be quoted here and in the f.menu func- tion entry. You can enter as many menu items as your screen is long. You cannot scroll within menus. Any menu entry that contains quotes, special characters, parentheses, tabs, or strings of blanks must be enclosed in double quotes. Follow the item name by a colon (:). Menu Action Window manager functions Any function previously described. E.g., f.move or f.iconify. Shell commands Begin with an exclamation point (!) and set to run in background. You cannot include a new line character within a shell command. Text strings Text strings are placed in the window server's cut buffer. Strings starting with an up arrow (^) will have a new line character appended to the string after the up arrow (^) has been stripped from it. X Version 11 Last change: 26 October 1988 7 UWM(1) USER COMMANDS UWM(1) Strings starting with a bar character (|) will be copied as is after the bar character (|) has been stripped. Color Menus Use the following syntax to add color to menus: menu = "_m_e_n_u _n_a_m_e" (_c_o_l_o_r_1:_c_o_l_o_r_2:_c_o_l_o_r_3:_c_o_l_o_r_4) { "_i_t_e_m _n_a_m_e" : (_c_o_l_o_r_5 :_c_o_l_o_r_6) : " _a_c_t_i_o_n " . . . } color1 Foreground color of the header. color2 Background color of the header. color3 Foreground color of the highlighter, the horizon- tal band of color that moves with the cursor within the menu. color4 Background color of the highlighter. color5 Foreground color for the individual menu item. color6 Background color for the individual menu item. Color Defaults Colors default to the colors of the root window under any of the following conditions: 1) If you run out of color map entries, either before or during an invocation of _u_w_m. 2) If you specify a foreground or background color that does not exist in the RGB color database of the server (see /_u_s_r/_l_i_b/_X_1_1/_r_g_b._t_x_t for a sample) both the foreground and background colors default to the root window colors. 3) If you omit a foreground or background color, both the foreground and background colors default to the root window colors. 4) If the total number of colors specified in the startup file exceeds the number specified in the _m_a_x_c_o_l_o_r_s variable. 5) If you specify no colors in the startup file. Customizing Icon Names X Version 11 Last change: 26 October 1988 8 UWM(1) USER COMMANDS UWM(1) Icon names may be editted by placing the pointer inside the icon and typing. The Backspace, Rubout and Delete keys may used to remove a character from the end of a line and Control-U may be used to delete the whole name. EXAMPLES The following sample startup file shows the default window manager options: # Global variables # resetbindings;resetvariables;resetmenus autoselect delta=25 freeze grid hiconpad=5 hmenupad=6 iconfont=oldeng menufont=timrom12b resizefont=9x15 viconpad=5 vmenupad=3 volume=7 # # Mouse button/key maps # # FUNCTION KEYS CONTEXT BUTTON MENU(if any) # ======== ==== ======= ====== ============ f.menu = meta : :left down :"WINDOW OPS" f.menu = meta : :middle down :"EXTENDED WINDOW OPS" f.move = meta :w|i :right down f.circleup = meta :root :right down # # Menu specifications # menu = "WINDOW OPS" { "(De)Iconify": f.iconify Move: f.move Resize: f.resize Lower: f.lower Raise: f.raise } menu = "EXTENDED WINDOW OPS" { Create Window: !"xterm &" Iconify at New Position: f.lowericonify Focus Keyboard on Window: f.focus Freeze All Windows: f.pause Unfreeze All Windows: f.continue Circulate Windows Up: f.circleup Circulate Windows Down: f.circledown X Version 11 Last change: 26 October 1988 9 UWM(1) USER COMMANDS UWM(1) } RESTRICTIONS The color specifications have no effect on a monochrome sys- tem. Some versions of lex have a hard-wired input buffer limit of 200 characters with no checking for overflow. A .uwmrc file containing lines longer than this limit will cause unpredictable behavior when used with a version of uwm built on such a system. FILES /usr/lib/X11/uwm/system.uwmrc $HOME/.uwmrc SEE ALSO X(1), Xserver(1), xset(1), xlsfonts(1) COPYRIGHT COPYRIGHT 1985, 1986, 1987, 1988 DIGITAL EQUIPMENT CORPORATION MAYNARD, MASSACHUSETTS ALL RIGHTS RESERVED. THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT CORPORATION. DIGITAL MAKES NO REPRESENTATIONS ABOUT THE SUITIBILITY OF THIS SOFTWARE FOR ANY PURPOSE. IT IS SUPPLIED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY. IF THE SOFTWARE IS MODIFIED IN A MANNER CREATING DERIVATIVE COPYRIGHT RIGHTS, APPROPRIATE LEGENDS MAY BE PLACED ON THE DERIVATIVE WORK IN ADDITION TO THAT SET FORTH ABOVE. Permission to use, copy, modify, and distribute this software and its documentation for any purpose and without fee is hereby granted, provided that the above copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting docu- mentation, and that the name of Digital Equipment Corpora- tion not be used in advertising or publicity pertaining to distribution of the software without specific, written prior permission. AUTHOR M. Gancarz, DEC Ultrix Engineering Group, Merrimack, New Hampshire, using some algorithms originally by Bob Scheifler, MIT Laboratory for Computer Science. X Version 11 Last change: 26 October 1988 10 UWM(1) USER COMMANDS UWM(1) X Version 11 Last change: 26 October 1988 11