Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ vuewmrc(4) — TriTeal VUE 3.0

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

vuewm(1)

vuestyle(1)

X(1)

vuewmrc(4)

NAME

vuewmrc − the TriTeal VUE workspace manager configuration file

DESCRIPTION

vuewmrc is a supplementary resource file that controls much of the operation of the TriTeal Visual User Environment Window Manager (vuewm).  It contains descriptions of resources that are to be used by vuewm, and that cannot be easily written using standard X Window System, Version 11 resource syntax:

Vuewm∗resource_id

The vuewmrc file contains entries that are cross-referenced by entries in the resource defaults files (for example, /usr/vue/app-defaults/Vuewm).  For example, the vuewmrc file enables you to specify different types of window menus; on the other hand, the default resource file enables you to specify which of these window menus the manager should use for a particular window. 

The specifications of the vuewmrc file supported by the TriTeal VUE workspace manager are a strict superset of the specifications supported by the OSF Motif Window Manager (mwm 1.0).  In other words, the /usr/lib/X11/system.mwmrc or $HOME/.mwmrc file that you’ve used for mwm is immediately usable by vuewm: Simply open the vuewmrc file with a text editor (make a copy first!), then cut and paste specifications from your current .mwmrc file into it.  When you restart the workspace manager, your menu, key, and button definitions take immediate effect. 

LOCATION

The workspace manager searches for one of the following vuewmrc files on a per-user basis: $HOME/.vue/vuewmrc /usr/vue/config/sys.vuewmrc

The first file found is the first used. 

If none is found, then a set of built-in specifications is used. 

A particular vuewmrc file can be selected using the configFile resource. 

The following shows how a different vuewmrc can be specified from the command line:

/usr/vue/bin/vuewm -xrm "Vuewm∗configFile: myvuewmrc"

RESOURCE TYPES

The following types of resources can be described in the vuewmrc file:

Buttons Workspace manager functions can be bound (associated) with button events. 

Keys Workspace manager functions can be bound (associated) with key press events. 

Menus Menu panes can be used for the window menu and other menus posted with key bindings and button bindings. 

Front Panel The vuewm front panel can be configured for a custom content or layout. 

VUEWM RESOURCE DESCRIPTION FILE SYNTAX

vuewmrc is a standard text file that contains items of information separated by blanks, tabs, and new lines characters.  Blank lines are ignored.  Items or characters can be quoted to avoid special interpretation (e.g., the comment character can be quoted to prevent it from being interpreted as the comment character).  A quoted item can be contained in double quotes ("). 

Single characters can be quoted by preceding them by the back-slash character (\), except for workspace names, which may contain no back-slash characters. 

All text from an unquoted # to the end of the line is regarded as a comment and is not interpreted as part of a resource description.  If ! is the first character in a line, the line is regarded as a comment. 

Workspace Manager Functions

Workspace manager functions can be accessed with button and key bindings, and with workspace manager menus.  Functions are indicated as part of the specifications for button and key binding sets, and menu panes.  The function specification has the following syntax:
 

function = function_name [function_args]
function_name = workspace manager function
function_args = {quoted_item | unquoted_item}

 
The following functions are supported. If a function is specified that isn’t one of the supported functions then it is interpreted by vuewm as f.nop. 

f.action
This function causes the specified action to be invoked by means of the message server. 

f.beep
This function causes a beep.

f.circle_down [icon | window]
This function causes the window or icon that is on the top of the window stack to be put on the bottom of the window stack (so that it is no longer obscuring any other window or icon). This function affects only those windows and icons that are obscuring other windows and icons, or that are obscured by other windows and icons. Secondary windows (i.e. transient windows) are restacked with their associated primary window. Secondary windows always stay on top of the associated primary window and there can be no other primary windows between the secondary windows and their primary window.  If an icon function argument is specified, then the function applies only to icons.  If a window function argument is specified then the function applies only to windows. 

f.circle_up [icon | window]
This function raises the window or icon on the bottom of the window stack (so that it is not obscured by any other windows). This function affects only those windows and icons that are obscuring other windows and icons, or that are obscured by other windows and icons. Secondary windows (i.e. transient windows) are restacked with their associated primary window. If an icon function argument is specified then the function applies only to icons.  If an window function argument is specified then the function applies only to windows. 

f.exec or !
This function causes command to be executed (using the value of the $SHELL environment variable if it is set, otherwise /bin/sh).  The ! notation can be used in place of the f.exec function name. 

f.exec_fp
This function causes control to be executed as if it was selected in the front panel by the user. control should specify the name of a control defined in the vuewmrc file or the number of a workspace (i.e. "one", "two", etc.) defined in the front panel switch. 

f.execute
This function causes command to be executed (using the value of the $SHELL environment variable if it is set, otherwise /bin/sh).  If the command executes an application which displays windows, then those windows are displayed on the screen with the mouse. 

f.focus_color
This function sets the colormap focus to a client window. If this function is done in a root context, then the default colormap (setup by the X Window System for the screen where vuewm is running) is installed and there is no specific client window colormap focus.  This function is treated as f.nop if colormapFocusPolicy is not explicit. 

f.focus_key
This function sets the keyboard input focus to a client window or icon. This function is treated as f.nop if keyboardFocusPolicy is not explicit or the function is executed in a root context. 

f.goto_workspace
This function causes the workspace manager to switch to the specified workspace.  If no workspace exists by the specified name, then no action occurs. 

f.help [topic [volume]]
This function displays help on the specified topic and volume.  If no volume is given, then the workspace manager volume is assumed. If no topic is given, then help on the front panel is shown. 

f.help_mode
This function causes the workspace manager to enter into help mode. In help mode, the pointer changes shape to indicate that the window manager is waiting for you to select a front panel control. Any help defined for the control is then shown in a help window.

f.killIf the WM_DELETE_WINDOW protocol is set up, the client is sent a client message event indicating that the client window should be deleted.  If the WM_SAVE_YOURSELF protocol is set up and the WM_DELETE_WINDOW protocol is not set up, the client is sent a client message event indicating that the client needs to prepare to be terminated.  If the client does not have the WM_DELETE_WINDOW or WM_SAVE_YOURSELF protocol set up, this function causes a client’s X connection to be terminated (usually resulting in termination of the client).  Refer to the description of the quitTimeout resource and the WM_PROTOCOLS property. 

f.lower [-client]
This function lowers a client window to the bottom of the window stack (where it obscures no other window). Secondary windows (i.e. transient windows) are restacked with their associated primary window. The client argument indicates the name or class of a client to lower.  If the client argument is not specified then the context that the function was invoked in indicates the window or icon to lower. 

f.maximize
This function causes a client window to be displayed with its maximum size.

f.menu
This function associates a cascading (pull-right) menu with a menu pane entry or a menu with a button or key binding. The menu_name function argument identifies the menu to be used. 

f.minimize
This function causes a client window to be minimized (iconified). When a window is minimized with no icon box in use, and if the lowerOnIconify resource has the value True (the default), the icon is placed on the bottom of the window stack (such that it obscures no other window).  If an icon box is used, then the client’s icon changes to its iconified form inside the icon box.  Secondary windows (i.e. transient windows) are minimized with their associated primary window.  There is only one icon for a primary window and all its secondary windows. 

f.move
This function allows a client window or icon to be moved interactively.

f.next_cmap
This function installs the next colormap in the list of colormaps for the window with the colormap focus.

f.next_key [icon | window | transient]
This function sets the keyboard input focus to the next window/icon in the set of windows/icons managed by the workspace manager (the ordering of this set is based on the stacking of windows on the screen). This function is treated as f.nop if keyboardFocusPolicy is not explicit.  The keyboard input focus is only moved to windows that do not have an associated secondary window that is application modal.  If the transient argument is specified, then transient (secondary) windows are traversed (otherwise, if only window is specified, traversal is done only to the last focused window in a transient group).  If an icon function argument is specified, then the function applies only to icons.  If a window function argument is specified, then the function applies only to windows. 

f.next_screen
This function causes the workspace manager to switch focus to the next screen.  If focus is currently on the last screen, the switch occurs to the first screen.  Scrren focus determines which screen and application is started on when the f.exec function is executed. 

f.next_workspace
This function causes the workspace manager to switch to the next workspace.  If you’re viewing the last workspace, the switch occurs to the first workspace.

f.nopThis function does nothing. 

f.normalize
This function causes a client window to be displayed with its normal size. Secondary windows (i.e. transient windows) are placed in their normal state along with their associated primary window.

f.normalize_and_raise
This function causes a client window to be displayed with its normal size and raised to the top of the window stack. Secondary windows (i.e. transient windows) are placed in their normal state along with their associated primary window.

f.occupy_all
This function causes the associated window to be placed in all workspaces.

f.pack_icons
This function is used to relayout icons (based on the layout policy being used) on the root window or in the icon box. In general this causes icons to be "packed" into the icon grid.

f.pass_keys
This function is used to enable/disable (toggle) processing of key bindings for workspace manager functions.  When it disables key binding processing all keys are passed on to the window with the keyboard input focus and no workspace manager functions are invoked. If the f.pass_keys function is invoked with a key binding to disable key binding processing the same key binding can be used to enable key binding processing. 

f.post_wmenu
This function is used to post the window menu.  If a key is used to post the window menu and a window menu button is present, the window menu is automatically placed with its top-left corner at the bottom-left corner of the window menu button for the client window.  If no window menu button is present,  the window menu is placed at the top-left corner of the client window.

f.prev_cmap
This function installs the previous colormap in the list of colormaps for the window with the colormap focus.

f.prev_key [icon | window | transient]
This function sets the keyboard input focus to the previous window/icon in the set of windows/icons managed by the workspace manager (the ordering of this set is based on the stacking of windows on the screen). This function is treated as f.nop if keyboardFocusPolicy is not explicit.  The keyboard input focus is only moved to windows that do not have an associated secondary window that is application modal.  If the transient argument is specified, then transient (secondary) windows are traversed (otherwise, if only window is specified, traversal is done only to the last focused window in a transient group).  If an icon function argument is specified then the function applies only to icons.  If an window function argument is specified then the function applies only to windows. 

f.prev_workspace
This function causes the workspace manager to switch to the previous workspace.  If you’re viewing the first workspace, the switch occurs to the last workspace.

f.quit_vuewm
This function terminates vuewm (but NOT the X window system).

f.raise [-client]
This function raises a client window to the top of the window stack (where it is obscured by no other window).  Secondary windows (i.e. transient windows) are restacked with their associated primary window. The client argument indicates the name or class of a client to raise.  If the client argument is not specified then the context that the function was invoked in indicates the window or icon to raise. 

f.raise_and_focus [-client]
This function raises a client window to the top of the window stack (where it is obscured by no other window) and sets the keyboard focus to the client.  Secondary windows (i.e. transient windows) are restacked with their associated primary window. The client argument indicates the name or class of a client to raise and focus.  If the client argument is not specified then the context that the function was invoked in indicates the window or icon to raise and focus. 

f.raise_focus_and_move [-client]
This function raises a client window to the top of the window stack (where it is obscured by no other window), sets the keyboard focus to the client, and if the client is not in the current workspace, moves the client into the current workspace. The client argument indicates the name or class of a client to raise, focus, and move.  If the client argument is not specified then the context that the function was invoked in indicates the window or icon to raise, focus, and move. 

f.raise_focus_and_switch [-client]
This function raises a client window to the top of the window stack (where it is obscured by no other window), sets the keyboard focus to the client, and if the client is not in the current workspace, switches to the first workspace which contains the client. The client argument indicates the name or class of a client to raise, focus, and switch.  If the client argument is not specified then the context that the function was invoked in indicates the window or icon to raise, focus, and switch. 

f.raise_lower
This function raises a client window to the top of the window stack if it is partially obscured by another window, otherwise it lowers the window to the bottom of the window stack. Secondary windows (i.e. transient windows) are restacked with their associated primary window.

f.refresh
This function causes all windows to be redrawn.

f.refresh_win
This function causes a client window to be redrawn.

f.remove
This function causes a client window to be removed from the current workspace.  If the client window exists only in this workspace, no action occurs.

f.resize
This function allows a client window to be interactively resized.

f.restart
This function causes vuewm to be restarted (effectively terminated and re-executed).

f.send_msg message_number
This function sends a client message of the type _MOTIF_WM_MESSAGES with the message_type indicated by the message_number function argument.  The client message is sent if message_number is included in the client’s _MOTIF_WM_MESSAGES property.  A menu item label is grayed out if the menu item is used to do f.send_msg of a message that is not included in the client’s _MOTIF_WM_MESSAGES property. 

f.send_msg_protocol client.message
This function sends a client message of the type WM_PROTOCOL with the message indicated by the message function argument.  The message argument is the textual representation of the protocol string (i.e. "WM_DELETE_WINDOW").  The message is sent to the client specified by the client fuction argument if message is included in the client’s WM_PROTOCOLS property. 

f.separator
This function causes a menu separator to be put in the menu pane at the specified location (the label is ignored).

f.set_behavior
This function causes the workspace manager to restart with the default behavior (if a custom behavior is configured) or a custom behavior (if a default behavior is configured).

f.show_gwm
This function causes the Graphical Workspace Manager (GWM) to appear. The GWM provides a graphical interface through which the user can visualize the applications running in all workspaces and can access them quickly.

f.titleThis function inserts a title in the menu pane at the specified location. 

f.toggle_frontpanel
This function causes the front panel component of the workspace manager to be minimized or, alternately, normalized.

f.version
This function causes the workspace manager to display its release version in a dialog box.

f.workspace_presence
This function posts the workspace presence dialog box. This allows you to view and set the workspace in which a particular window resides. The root context is disallowed for this function.

f.workspace_rename
This function posts the workspace rename dialog box. This allows you to rename the current workspace.

Each function may be constrained as to which resource types can specify the function (e.g., menu pane) and also what context the function can be used in (e.g., the function is done to the selected client window).  Function contexts are

 

root No client window or icon has been selected as an object for the function. 

window A client window has been selected as an object for the function.  This includes the window’s title bar and frame.  Some functions are applied only when the window is in its normalized state (e.g., f.maximize) or its maximized state (e.g., f.normalize). 

icon An icon has been selected as an object for the function. 

If a function is specified in a type of resource where it is not supported or is invoked in a context that does not apply then the function is treated as f.nop.  The following table indicates the resource types and function contexts in which workspace manager functions apply. 

Function Contexts Resources
f.action root,icon,window button,key,menu
f.beep root,icon,window button,key,menu
f.circle_down root,icon,window button,key,menu
f.circle_up root,icon,window button,key,menu
f.exec root,icon,window button,key,menu
f.exec_fp root,icon,window button,key,menu
f.execute root,icon,window button,key,menu
f.focus_color root,icon,window button,key,menu
f.focus_key root,icon,window button,key,menu
f.goto_workspace root,icon,window button,key,menu
f.help root,icon,window button,key,menu
f.help_mode root,icon,window button,key,menu
f.kill icon,window button,key,menu
f.lower root,icon,window button,key,menu
f.maximize icon,window(normal) button,key,menu
f.menu root,icon,window button,key,menu
f.minimize window button,key,menu
f.move icon,window button,key,menu
f.next_cmap root,icon,window button,key,menu
f.next_key root,icon,window button,key,menu
f.next_screen root,icon,window button,key,menu
f.next_workspace root,icon,window button,key,menu
f.nop root,icon,window button,key,menu
f.normalize icon,window(maximized) button,key,menu
f.normalize_and_raise icon,window button,key,menu
f.occupy_all icon, window button,key,menu
f.pack_icons root,icon,window button,key,menu
f.pass_keys root,icon,window button,key,menu
f.post_wmenu root,icon,window button,key
f.prev_cmap root,icon,window button,key,menu
f.prev_key root,icon,window button,key,menu
f.prev_workspace root,icon,window button,key,menu
f.quit_vuewm root button,key,menu
f.raise root,icon,window button,key,menu
f.raise_and_focus root,icon,window button,key,menu
f.raise_focus_and_move root,icon,window button,key,menu
f.raise_focus_and_switch root,icon,window button,key,menu
f.raise_lower icon,window button,key,menu
f.refresh root,icon,window button,key,menu
f.refresh_win window button,key,menu
f.remove root,icon,window button,key,menu
f.resize window button,key,menu
f.restart root button,key,menu
f.send_msg icon,window button,key,menu
f.send_msg_protocol root,icon,window button,key,menu
f.separator root,icon,window menu
f.set_behavior root,icon,window button,key,menu
f.show_gwm root button,key,menu
f.title root,icon,window menu
f.toggle_frontpanel root,icon,window button,key,menu
f.version root,icon,window button,key,menu
f.workspace_presence window button,key,menu
f.workspace_rename root,icon,window button,key,menu

WORKSPACE MANAGER EVENT SPECIFICATION

Events are indicated as part of the specifications for button and key binding sets, and menu panes. 

Button events have the following syntax:

button = [modifier_list]<button_event_name>
modifier_list = modifier_name {modifier_name}

All modifiers specified are interpreted as being exclusive (this means that only the specified modifiers can be present when the button event occurs).  The following table indicates the values that can be used for modifier_name.  The [Alt] key is frequently labeled [Extend] or [Meta].  Alt and Meta can be used interchangeably in event specification. 

Modifier Description
Ctrl Control Key
Shift Shift Key
Alt Alt/Meta Key
Meta Meta/Alt Key
Lock Lock Key
Mod1 Modifier1
Mod2 Modifier2
Mod3 Modifier3
Mod4 Modifier4
Mod5 Modifier5

The following table indicates the values that can be used for button_event_name. 

Button Description
Btn1Down Button 1 Press
Btn1Up Button 1 Release
Btn1Click Button 1 Press and Release
Btn1Click2 Button 1 Double Click
Btn2Down Button 2 Press
Btn2Up Button 2 Release
Btn2Click Button 2 Press and Release
Btn2Click2 Button 2 Double Click
Btn3Down Button 3 Press
Btn3Up Button 3 Release
Btn3Click Button 3 Press and Release
Btn3Click2 Button 3 Double Click
Btn4Down Button 4 Press
Btn4Up Button 4 Release
Btn4Click Button 4 Press and Release
Btn4Click2 Button 4 Double Click
Btn5Down Button 5 Press
Btn5Up Button 5 Release
Btn5Click Button 5 Press and Release
Btn5Click2 Button 5 Double Click

Key events that are used by the workspace manager for menu mnemonics and for binding to workspace manager functions are single key presses; key releases are ignored. Key events have the following syntax:

key = [modifier_list]<Key>key_name
modifier_list = modifier_name {modifier_name}

All modifiers specified are interpreted as being exclusive (this means that only the specified modifiers can be present when the key event occurs).  Modifiers for keys are the same as those that apply to buttons.  The key_name is an X11 keysym name.  Keysym names can be found in the keysymdef.h file (remove the XK_ prefix). 

BUTTON BINDINGS

The buttonBindings resource value is the name of a set of button bindings that are used to configure workspace manager behavior.  A workspace manager function can be done when a button press  occurs with the pointer over a framed client window, an icon or the root window.  The context for indicating where the button press applies is also the context for invoking the workspace manager function when the button press is done (significant for functions that are context sensitive). 

The button binding syntax is

Buttons bindings_set_name {
    button    context    function
    button    context    function
                         .
                         .
    button    context    function }

The syntax for the context specification is
 

context = object[|context]
object = root | icon | window | title | frame | border | app

 
The context specification indicates where the pointer must be for the button binding to be effective. For example, a context of window indicates that the pointer must be over a client window or window management frame for the button binding to be effective.  The frame context is for the window management frame around a client window (including the border and titlebar), the border context is for the border part of the window management frame (not including the titlebar), the title context is for the title area of the window management frame, and the app context is for the application window (not including the window management frame). 
 
If an f.nop function is specified for a button binding, the button binding is not done. 

KEY BINDINGS

The keyBindings resource value is the name of a set of key bindings that are used to configure workspace manager behavior.  A window manager function can be done when a particular key is pressed.  The context in which the key binding applies is indicated in the key binding specification.  The valid contexts are the same as those that apply to button bindings. 
  The key binding syntax is

Keys bindings_set_name {
    key    context    function
    key    context    function
                .
                .
    key    context    function }

If an f.nop function is specified for a key binding, the key binding is not done.  If an f.post_wmenu or f.menu function is bound to a key, vuewm automatically uses the same key for removing the menu from the screen after it has been popped up. 
 
The context specification syntax is the same as for button bindings.  For key bindings, the frame, title, border, and app contexts are equivalent to the window context.  The context for a key event is the window or icon that has the keyboard input focus (root if no window or icon has the keyboard input focus). 

MENU PANES

Menus can be popped up using the f.post_wmenu and f.menu workspace manager functions.  The context for workspace manager functions that are done from a menu is root, icon or window depending on how the menu was popped up.  In the case of the window menu or menus popped up with a key binding, the location of the keyboard input focus indicates the context.  For menus popped up using a button binding, the context of the button binding is the context of the menu. 
  The menu pane specification syntax is

Menu menu_name {
    label  [mnemonic]  [accelerator]   function
    label  [mnemonic]  [accelerator]   function
                .
                .
    label  [mnemonic]  [accelerator]   function }

Each line in the Menu specification identifies the label for a menu item and the function to be done if the menu item is selected.  Optionally a menu button mnemonic and a menu button keyboard accelerator may be specified.  Mnemonics are functional only when the menu is posted and keyboard traversal applies. 

The label may be a string or a bitmap file.  The label specification has the following syntax:
 

label = text | bitmap_file
bitmap_file = @file_name
text = quoted_item | unquoted_item

  The string encoding for labels must be compatible with the menu font that is used.  Labels are greyed out for menu items that do the f.nop function or an invalid function or a function that doesn’t apply in the current context. 
 
A mnemonic specification has the following syntax

mnemonic = _character

The first matching character in the label is underlined.  If there is no matching character in the label, no mnemonic is registered with the workspace manager for that label.  Although the character must exactly match a character in the label, the mnemonic does not execute if any modifier (such as Shift) is pressed with the character key.  The accelerator specification is a key event specification with the same syntax as is used for key bindings to workspace manager functions. 

FRONT PANEL CONTENT AND LAYOUT

The vuewmrc file enables you to specify the content and layout of the front panel, including the number of controls, their size and arrangement within the front panel, and their operation. 

The layout is arranged horizontally, in terms of boxes of controls. 

The front panel specification syntax is demonstrated in the sys.vuewmrc system file included in the /usr/vue/config directory.  Please refer to that file for working examples of the front panel specification language. 

FRONT PANEL SPECIFICATION SYNTAX

The front panel specification language for TriTeal VUE 3.0 is keyword-oriented, rather than field-oriented as it was in TriTeal VUE 2.0, to make front panels easier to construct. 

Each major construct has the general form of: component <component_name> {
    [attribute
    ...]
    component_ref
    ... }

where component can be PANEL, BOX, or CONTROL.  component_ref is a reference to another component definition. Nested definitions are not allowed. 

A front panel is constructed hierarchically, by first specifying a PANEL which includes references to one or more BOXes. Then the BOXes is specified. Each box refers to one or more CONTROLs.  Finally, each CONTROL is specified. A CONTROL specification may be referred to by more than one BOX. 

The following conventions are used for describing the panel definition language:

Items shown in italics (e.g. box_ref) represent language constructs. 

Items shown in upper case (e.g. "PANEL") are keywords. 

Variables are enclosed in angle brackets (e.g. <panel_name>). 

Optional elements are enclosed in square brackets (‘[’, ‘]’). 

Repeated elements are indicated with an ellipsis ("..."). 

Disjuncts are enclosed in parentheses and separated by a vertical bar (e.g. "(primary | secondary | subpanel)"). 
 
panel_definition =
 
PANEL <panel_name> {
    [panel_attribute
    ...]
    box_ref
    ... }
 
 
panel_attribute = (
    HELP_STRING    <string>           |
    HELP_TOPIC     <help_topic_name> )
 
 
box_ref =
 
    BOX  <box_name>
 

The panel definition is the top-level front panel construct. It lists the boxes that make up the front panel. It may also contain a help string (HELP_STRING), or refer to a predefined vuewm help topic (HELP_TOPIC). Panel help is a second level fallback. It is triggered during item help or context help when there is no help specified for the active control or box. 
 
box_definition =
 
BOX <box_name> {
    [box_attribute
    ...]
    (control_ref | switch_ref)
    ... }
 
 
control_ref =
 
    CONTROL  <control_name>
 
 
switch_ref =
 
    SWITCH  <switch_name>
 
 
box_attribute = (
    TYPE             box_type          |
    BACKGROUND_TILE  <pixmap>          |
    COLOR_SET        <number>          |
    HELP_STRING      <string>          |
    HELP_TOPIC       <help_topic_name> |
    LAYOUT_POLICY    layout_type       | )
 
 
box_type = (
    primary     |
    secondary   |
    subpanel )
 
 
layout_type = (
    standard    |
    as_needed )

The box definition describes each box in the front panel. There are three types of boxes. The primary box is larger. Controls in a primary box may contain subpanels. The secondary box is smaller and has a ribbed background by default. Controls in secondary boxes cannot contain subpanels. Both primary and secondary boxes are horizontal. 

A box of type subpanel is vertically oriented and associated with a control in a primary box (see the SUBPANEL attribute for controls). A subpanel has a small button automatically added to the bottom for dismissing the subpanel. Subpanels are useful for adding functionality to the front panel without permanently increasing the size of the front panel. 

A standard box layout is one in which the height of each primary and secondary box is fixed based on the resolution of the screen.  This restriction can be relaxed by choosing a LAYOUT_POLICY of as_needed. This allows the height of the box to grow based on the size of the controls inside.  Subpanels are not affected by LAYOUT_POLICY.  The width of each subpanel box is determined by the widest control label. 

A box can be given a distinctive background with BACKGROUND_TILE. The value can be a predefined pixmap image (see XmInstallImage(3)), or a bitmap or X pixmap file name. The default background for a primary or subpanel box is background. The default background for secondary box is rib. 

You can choose a different TriTeal VUE color set for a box by using the COLOR_SET attribute. There are eight TriTeal VUE color sets, numbered 1 to 8.  By default, primary and subpanel boxes use the primary color set (specified by the primaryColorSetId resource).  Secondary boxes default to the secondary color set (specified by the secondaryColorSetId resource). 

Help for a box is a first level fallback. It is triggered during item help or context help when there is no help specified for the active control. 

Finally, the box definition includes the list of controls that are contained in the box. The workspace switch (SWITCH) is a special control. There can be only one workspace switch and it must be in a primary or secondary box. Also, there can be only one busy control and it must be in a secondary box. 
 
control_definition =
 
CONTROL <control_name> {
    [control_attribute
    ...] }
 
 
control_attribute = (
    TYPE               control_type          |
    ALTERNATE_IMAGE    <image_file_name>     |
    CLIENT_GEOMETRY    geometry_string       |
    CLIENT_NAME        <string>              |
    DROP_ACTION        command_definition    |
    DROP_ANIMATION     <animation_name>      |
    HELP_STRING        <string>              |
    HELP_TOPIC         <help_topic_name>     |
    IMAGE              <image_file_name>     |
    LABEL              <string>              |
    MONITOR_FILE       <file_name>           |
    PEER_SHELLS        <string>              |
    PUSH_ACTION        command_definition    |
    PUSH_ANIMATION     <animation_name>      |
    PUSH_RECALL        (true | false)        |
    SUBPANEL           <box_name> )
 
 
control_type = (
    clock          |
    date           |
    blank          |
    busy           |
    button         |
    client         |
    iconbox        |
    mail           |
    monitor_file )
 
 
geometry_string =
 
    [width][xheight]
 
 
command_definition = (
    f.action    <action_specification>    |
    f.exec      <command_specification>   |
    f.help      <help_topic_name>         |
    f.help_mode )

A control definition is needed for each control you have in your front panel. Controls exhibit different behavior based on their type:

type description
clock analog clock
date show month, day, and day of the week
blank space holder
busy activity light and logout
button push button control
client embedded client
iconbox controls appearance of iconbox
mail special for monitoring arriving mail
monitor_file monitors an empty/non-empty file

The clock and date controls are self-explanatory. The format for the date control can be set via the format resource (see vuewm (1)). 

The blank control can be used to insert spaces between controls or save positions for future expansion. 

The busy control alternates between its IMAGE and ALTERNATE_IMAGE to indicate system activity. This control is configured by default to perform the logout function when pressed.  Because of this, the busy control has special placement behavior.  It is always moved to the right side of the box it is in. As a box fills up, controls that overlap the busy control are removed.  The can be only one busy control and it must be in a secondary box. 

The behavior of the button control type is determined by its PUSH_ACTION. 

Other clients, such as xload, may be embedded in the front panel in controls of type client. Set the CLIENT_GEOMETRY if you want to alter the size of the area that the client occupies. You may need to change the LAYOUT_POLICY of the enclosing box to as_needed.  Clients are matched to their controls using the WM_CLASS window property. To insure a match, set the CLIENT_NAME for the control to the same string that the client puts in the first member of this property. You may examine this property using the xprop (1X) command. Normally, you can start the client with a -name command line option to set the property to match your control. 

The iconbox control causes vuewm to create an iconbox to hold the window icons. The control recalls the iconbox to the screen after it has been closed. Note that using this control prevents enabling and disabling of the iconbox using vuestyle. 

Controls of type mail have been tuned to be mail indicators. The ALTERNATE_IMAGE is displayed if the mail file (set with MONITOR_FILE) grows in size. The normal IMAGE is displayed if the control is pressed or the mail file shrinks in size. The default mail file is /usr/mail/$LOGNAME. 

Controls of type monitor_file follow the empty/non-empty state of the monitored file. If the file is missing or empty, the normal IMAGE is shown. If the file exists and is non-empty, the ALTERNATE_IMAGE is shown. There is no default file, you must set one using MONITOR_FILE. 

A control can be made into a drop zone by adding a DROP_ACTION. If a DROP_ANIMATION is specified, that animation is used when an item is actually dropped on the control. 

Help for a control may be a simple textual string (HELP_STRING) or a predefined help topic (HELP_TOPIC). This help is triggered when the control is selected during item help mode, or when context help on the control is requested by pressing the help key (normally F1) when the control has the keyboard focus. 

A control can contain an IMAGE, a LABEL, or both. If you choose both, it may be necessary to change the LAYOUT_POLICY of the box to as_needed. 

A control with a PUSH_ACTION may also have a PUSH_ANIMATION. This animation is done when the user presses on the control. 

Normally, a button performs the PUSH_ACTION each time it is depressed. If you wish to have only one copy of a client started, you can set PUSH_RECALL to true for the control. This way, when the client’s window appears on the screen, the control can keep track of the client and simply bring it to the top on subsequent presses rather than starting another copy. The rules used for matching are the same as for controls of type client. It is possible to group multiple top-level shells together in a toggle button (a button control with PUSH_RECALL set to True) by using the PEER_SHELLS field.  Multiple top-level shell names, delimited by commas, can be specified in the PERR_SHELLS field.  Whenever the control’s button is selected, the PEER_SHELLS will be raised along with the client’s shell specified in the CLIENT_NAME field.  See the discussion on CLIENT_NAME. 

A control in a primary box may also have a subpanel. Use SUBPANEL to name the subpanel to use. A control with a subpanel has an additional small button added to its top. Press this button to show the subpanel. 
 
switch_definition =
 
SWITCH  <switch_name> {
    [switch_attribute
    ...] }
 
 
switch_attribute = (
    NUMBER_OF_ROWS      <number>          |
    LAYOUT_POLICY       layout_type       |
    SWITCH_CONTROL      <number> <string> f.exec <string>|
    HELP_STRING         <string>          |
    HELP_TOPIC          <help_topic_name> )

The workspace switch is a special type of control. You can control the number of rows of workspace buttons with NUMBER_OF_ROWS. The default value for NUMBER_OF_ROWS is 2.  If LAYOUT_POLICY is set to as_needed, then the width of the switch buttons is determined by the longest workspace title. When LAYOUT_POLICY has the default value of standard, the geometry of the switch and its contents depends on the resolution of the screen.  There can only be one workspace switch and it must be in a primary or secondary box.  The SWITCH_CONTROL field allows you to bind client applications to a specific workspace.  When the workspace’s button is selected the application will be started if it is not running, otherwise it will be moved to the workspace and raised to the top of the window list.  The first argument is the number of the workspace to which to bind the application.  The second argument is the class name of the application (see the CLIENT_NAME description).  The fourth argument is the full path to the executable for the client application.  animation =
 
ANIMATION <animation_name> {
    <image_file_name>       [<time_delay>]
    ... }
 

ANIMATIONs are referred to by controls using PUSH_ANIMATION or DROP_ANIMATION. Each ANIMATION is a list of images with optional time delays (in milliseconds). 
 

INCLUDING FILES

You may include other files into your vuewmrc file by using the include construct. For example: INCLUDE {
    /users/bob/panels/fp.special
    /users/bob/personal/my.bindings } causes the files named to be read in and interpreted as an additional part of the vuewmrc file. 

Include is a top-level construct. It cannot be nested inside another construct. 
 

WARNINGS

Enabling the iconbox control in the front panel forces the resource useIconBox to True. This prevents the Style Manager (vuestyle) from turning the iconbox on and off an may cause its dialog to show incorrect information about the iconbox. 

Errors that occur as a result of parsing or trying to use the vuewmrc file are reported to a log file under your home directory: $HOME/.vue/errorlog.  Be sure to check this text file if the appearance or behavior of vuewm is not what you expect. 

FILES

 $HOME/.vue/vuewmrc
 /usr/vue/config/sys.vuewmrc
 $HOME/.vue/errorlog

COPYRIGHT

Copyright 1994 TriTeal Corporation. 
Copyright 1989,1990,1991,1992 Open Software Foundation, Inc.
Copyright 1987,1988,1989,1990,1992 Hewlett-Packard Company.
All rights reserved.

ORIGIN

Open Software Foundation, Inc. 
Hewlett-Packard Company

SEE ALSO

vuewm(1), vuestyle(1), and X(1). 

SunOS 3.0  —  Last change:

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026