bbclean-xzero/docs/bblean_details.htm

871 lines
33 KiB
HTML
Executable File

<html>
<head>
<title>bbLean - Readme</title>
<link rel="stylesheet" href="bblean_style.css" type="text/css">
<style type=text/css></style>
<base target="body">
</head>
<body class="frame_body">
<A CLASS="label" NAME="Details"><H1>Details</H1></A>
<A CLASS="label" NAME="Building_The_Menu"><H2>Building&nbsp;The&nbsp;Menu</H2></A>
<P>To build or change your main menu, open menu.rc in a text editor. See also the
included default menu.rc as an example.</P>
<P>Notes:</P>
<UL><LI>Lines starting with # or ! are ignored.
<LI>In a menu label, a single '&amp;' makes a shortcut letter, to display '&amp;', use '&amp;&amp;'.
<LI>You can use environment variables (e.g. %USERNAME%) to make your menu
work for different setups.</UL>
<P>Each menu item consists of 1..3 fields:</P>
<PRE>[command] (label) {data}
</PRE>
<TABLE width=100%><TR ALIGN=LEFT><TH WIDTH=35%>Menu structure</TH>
<TH>&nbsp;</TH>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>[begin] (label)</TD>
<TD>indicates the begin of the menu, label is optional.</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>[end]</TD>
<TD>indicates the end of the menu or submenu, required.</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>[submenu] (label)</TD>
<TD>inserts a submenu into the menu, must be closed by [end]</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>[include] {filename}</TD>
<TD>This will continue reading items from the indicated file.</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>[nop] (label)</TD>
<TD>inserts an inactive item with an optional label</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>[sep]</TD>
<TD>inserts a separator (same as [nop] with no label)</TD>
</TR>
</TABLE>
<BR/>&nbsp;
<TABLE width=100%><TR ALIGN=LEFT><TH WIDTH=35%>Inserting submenus</TH>
<TH>&nbsp;</TH>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>[path] (label) {folder}</TD>
<TD>inserts an submenu with a folder from your computer as specified</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>[path] (label) {folder1|folder2}</TD>
<TD>merges two folders into a single menu</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>[insertpath] {folder}</TD>
<TD>inserts items from a folder into the current menu</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>[stylesmenu] (label) {folder}</TD>
<TD>insert a submenu with stylefiles from a folder</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>[stylesdir] {folder}</TD>
<TD>insert style files from a folder into the current menu</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>[config] (label)</TD>
<TD>inserts the configuration menu</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>[workspaces] (label)</TD>
<TD>insert the workspaces menu</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>[tasks] (label)</TD>
<TD>insert a menu with the current tasks</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>[icons] (label)</TD>
<TD>insert a menu with the currently minimized tasks</TD>
</TR>
</TABLE>
<P>In addition to normal paths like {c:/program files/...}, a number of items may
be used to indicate a special shellfolder. See shellfolders.rc for examples.</P>
<TABLE width=100%><TR ALIGN=LEFT><TH WIDTH=35%>Blackbox commands</TH>
<TH>&nbsp;</TH>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>[style] (label) {filename}</TD>
<TD>insert an item to apply a new style.</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>[toggleplugins] (label)</TD>
<TD>show/hide plugins</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>[aboutplugins] (label)</TD>
<TD>display 'about plugins' info</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>[aboutstyle] (label)</TD>
<TD>display 'about style' info</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>[gather] (label)</TD>
<TD>gather windows in current workspace</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>[reconfig] (label)</TD>
<TD>re-read the configuration files</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>[restart] (label)</TD>
<TD>reload plugins</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>[exit] (label)</TD>
<TD>exit blackbox</TD>
</TR>
</TABLE>
<BR/>&nbsp;
<TABLE width=100%><TR ALIGN=LEFT><TH WIDTH=35%>Edit commands</TH>
<TH>&nbsp;</TH>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>[edit] (label) {file}</TD>
<TD>edit the specified 'file'</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>[editstyle] (label)</TD>
<TD>edit the current style</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>[editmenu] (label)</TD>
<TD>edit menu.rc</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>[editlugins] (label)</TD>
<TD>edit plugins.rc</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>[editextensions] (label)</TD>
<TD>edit extension.rc</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>[editblackbox] (label)</TD>
<TD>edit blackbox.rc</TD>
</TR>
</TABLE>
<P>The 'edit' commands use the 'blackbox.editor', which is specified in
extensions.rc. For example:</P>
<PRE>blackbox.editor: bbnote.exe
</PRE>
<TABLE width=100%><TR ALIGN=LEFT><TH WIDTH=35%>Shutdown commands</TH>
<TH>&nbsp;</TH>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>[logoff] (label)</TD>
<TD>logoff (*)</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>[suspend] (label)</TD>
<TD>suspend the computer (*)</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>[hibernate] (label)</TD>
<TD>hibernate (*)</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>[reboot] (label)</TD>
<TD>reboot the computer (*)</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>[shutdown] (label)</TD>
<TD>shutdown the computer (*)</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>[lockworkstation] (label)</TD>
<TD>lock workstation</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>[switchuser] (label)</TD>
<TD>fast user switch</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>[exitwindows] (label)</TD>
<TD>display standard shutdown dialog</TD>
</TR>
</TABLE>
<P>(*) You can add -q(uiet) for no confirmation. For example</P>
<PRE>[logoff -q] (Log Out)
</PRE>
<TABLE width=100%><TR ALIGN=LEFT><TH WIDTH=35%>External commands</TH>
<TH>&nbsp;</TH>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>[run] (label)</TD>
<TD>show the windows 'run' dialog</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>[exec] (label) {command}</TD>
<TD>run a program (*) or execute a <A HREF="bblean_details.htm#Broadcast_Messages">broam</A>.</TD>
</TR>
</TABLE>
<P>(*) Optionally a working directory or a start workspace can be specified,
or a (console-) program can be started in an hidden window:</P>
<PRE>[exec] (label) { -in &quot;c:\working-dir&quot; : program args ... }
[exec] (label) { -workspace2 : program args ... }
[exec] (label) { -hidden : program args ... }
</PRE>
<A CLASS="label" NAME="Backgrounds"><H2>Backgrounds</H2></A>
<P>Generally, the background can be an image or a dynamically generated
gradient. The background is specified in the current style with
a line that starts like:</P>
<PRE>rootCommand: bsetroot -full &quot;backgrounds\your_image.jpg&quot;
</PRE>
<P>Click on bsetroot.exe to get some help with it. See also the
<A HREF="./bsetroot.htm" target="_parent">documentation</A> for bsetroot.exe.</P>
<P>bbLean uses bsetroot.exe to generate the background and then either
displays it on its own or lets Windows set the wallpaper, depending
on the setting of 'Smart Wallpaper' in 'Configuration-&gt;Graphics'.</P>
<P>Also any processing of the rootCommand may be disabled in
'Configuration-&gt;Graphics'.</P>
<A CLASS="label" NAME="Desktop_Margins"><H2>Desktop&nbsp;Margins</H2></A>
<P>Desktop Margins are the areas of the screen that aren't covered by
maximized windows. They can be set to adjust automatically according
to the placement of the bars or manually from the configuration menu.</P>
<UL><LI>'auto' (-1 in extensions.rc) means automatic adjustment
to the toolbar's or Systembar's thickness.
<LI>Values '0..x' mean fixed margin settings in pixels.
<LI>With 'Full Maximisation' all margin settings are ignored.</UL>
<P>Multiple monitors: Automatic adjustement is supposed to
work independently on monitors. Margins for a 2nd monitor
may be set manually in extensions.rc like:</P>
<PRE>blackbox.desktop.2.marginLeft: ...
</PRE>
<A CLASS="label" NAME="Sticky_Windows"><H2>Sticky&nbsp;Windows</H2></A>
<P>List each application to be common among all workspaces on a separate
line in 'StickyWindows.ini' (located in the blackbox.exe's folder), save
the changes, and 'reconfigure.'</P>
<P>Click 'Show Appnames' from 'Configuration-&gt;Misc.' to get a list of
the currently running tasks and their internal names.</P>
<A CLASS="label" NAME="Install_as_Shell"><H2>Install&nbsp;as&nbsp;Shell</H2></A>
<P>bbLean can be run on top of explorer or installed as default shell. To install
bbLean as default shell, use the included <B>bsetshell</B> tool.</P>
<P>On Win2k/XP/Vista you can install bbLean for all users or for certain users
only. To install bbLean for certain users only you first need to run bsetshell
as administrator (right-click -&gt; &quot;Run as ...&quot;) and enable &quot;per-user&quot; shell
setting. Then from the user account set blackbox as shell for that user.</P>
<P>Notes:</P>
<UL><LI>With unexpected problems after installation, hold down 'Control' during
startup. This will give you the option to uninstall bbLean before it actually
loads.
<LI>When running bbLean over explorer the systray icons won't show in many cases.</UL>
<A CLASS="label" NAME="CommandLine"><H2>CommandLine</H2></A>
<TABLE width=100%><TR ALIGN=LEFT><TH WIDTH=35%>Switches</TH>
<TH>&nbsp;</TH>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>-help</TD>
<TD>Show version and commandline info</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>-install</TD>
<TD>Install Blackbox as default shell</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>-uninstall</TD>
<TD>Reset Explorer as default shell</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>-nostartup</TD>
<TD>Do not run startup programs</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>-rc &lt;file&gt;</TD>
<TD>Specify alternate blackbox.rc</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>-exec &lt;@broam&gt;</TD>
<TD>Send broadcast message to running shell</TD>
</TR>
</TABLE>
<A CLASS="label" NAME="Broadcast_Messages"><H2>Broadcast&nbsp;Messages</H2></A>
<P>Broadcast messages (Broams) are messages sent to Blackbox and plugins
to trigger some actions.</P>
<P>They may be sent</P>
<UL><LI>from the menu, such as:</UL>
<PRE>[exec] (label) {@BroadcastMessage}
</PRE>
<UL><LI>from a key shortcut, in bbkeys.rc:</UL>
<PRE>..., WithAction(@BBCore.ShowMenu)
</PRE>
<UL><LI>by other means, for instance by a 'BBInterface' button.</UL>
<H4>Broadcast&nbsp;messages&nbsp;recognized&nbsp;by&nbsp;the&nbsp;core:</H4>
<TABLE width=100%><TR ALIGN=LEFT><TH WIDTH=35%>Menu</TH>
<TH>&nbsp;</TH>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>@BBCore.ShowMenu</TD>
<TD>show pinned menu, or main menu as default</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>@BBCore.ShowMenu Root</TD>
<TD>show the main menu</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>@BBCore.ShowMenu&nbsp;Workspaces</TD>
<TD>show workspaces menu</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>@BBCore.ShowMenu Tasks</TD>
<TD>show menu with all tasks</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>@BBCore.ShowMenu Icons</TD>
<TD>show menu with minimized tasks</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>@BBCore.ShowMenu&nbsp;Configuration</TD>
<TD>show configuration menu</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>@BBCore.ShowMenu &lt;path&gt;</TD>
<TD>show folder as specified</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>@BBCore.ShowMenu&nbsp;&lt;menu.rc&gt;</TD>
<TD>display alternative menu as specified</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>@BBCore.HideMenu</TD>
<TD>hide all menus that are not 'pinned'</TD>
</TR>
</TABLE>
<BR/>&nbsp;
<TABLE width=100%><TR ALIGN=LEFT><TH WIDTH=35%>ShowMenu Options</TH>
<TH>&nbsp;</TH>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>@BBCore.ShowMenu -at x,y ...</TD>
<TD>show menu at position x,y as specified</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>@BBCore.ShowMenu -at rb x,y ...</TD>
<TD>align at position with right and/or bottom edge</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>@BBCore.ShowMenu -key ...</TD>
<TD>show menu at position as in blackbox.rc</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>@BBCore.ShowMenu -toggle</TD>
<TD>hide menu if it currently has focus</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>@BBCore.ShowMenu -pinned ...</TD>
<TD>make menu stay permanently</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>@BBCore.ShowMenu -ontop ...</TD>
<TD>make menu stay on top</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>@BBCore.ShowMenu -notitle ...</TD>
<TD>show title-less menu</TD>
</TR>
</TABLE>
<BR/>&nbsp;
<TABLE width=100%><TR ALIGN=LEFT><TH WIDTH=35%>Windows</TH>
<TH>&nbsp;</TH>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>@BBCore.PrevWindow</TD>
<TD>activate previous window</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>@BBCore.NextWindow</TD>
<TD>activate next window</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>@BBCore.PrevWindowAllWorkspaces</TD>
<TD>activate previous window (all workspaces)</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>@BBCore.NextWindowAllWorkspaces</TD>
<TD>activate next window (all workspaces)</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>@BBCore.RaiseWindow</TD>
<TD>bring bottom window on top</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>@BBCore.LowerWindow</TD>
<TD>send top window to bottom</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>@BBCore.ShadeWindow</TD>
<TD>shade window</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>@BBCore.StickWindow</TD>
<TD>make window appear on all workspaces</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>@BBCore.OnTopWindow</TD>
<TD>make window always on top</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>@BBCore.MinimizeWindow</TD>
<TD>minimize window</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>@BBCore.MaximizeWindow</TD>
<TD>maximize window</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>@BBCore.MaximizeVertical</TD>
<TD>maximize window vertically</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>@BBCore.MaximizeHorizontal</TD>
<TD>maximize window horizontally</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>@BBCore.RestoreWindow</TD>
<TD>restore window</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>@BBCore.MoveWindow</TD>
<TD>move the window</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>@BBCore.ResizeWindow</TD>
<TD>resize the window</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>@BBCore.CloseWindow</TD>
<TD>close window</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>@BBCore.ActivateWindow</TD>
<TD>activate the window in the foreground</TD>
</TR>
</TABLE>
<BR/>&nbsp;
<TABLE width=100%><TR ALIGN=LEFT><TH WIDTH=35%>All Windows</TH>
<TH>&nbsp;</TH>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>@BBCore.MinimizeAll</TD>
<TD>minimize all windows</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>@BBCore.RestoreAll</TD>
<TD>restore all windows</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>@BBCore.Cascade</TD>
<TD>cascade windows</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>@BBCore.TileVertical</TD>
<TD>tile windows vertically</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>@BBCore.TileHorizontal</TD>
<TD>tile windows horizontally</TD>
</TR>
</TABLE>
<BR/>&nbsp;
<TABLE width=100%><TR ALIGN=LEFT><TH WIDTH=35%>Workspaces</TH>
<TH>&nbsp;</TH>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>@BBCore.PrevWorkspace</TD>
<TD>previous workspace</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>@BBCore.NextWorkspace</TD>
<TD>next workspace</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>@BBCore.SwitchToWorkspace&nbsp;#n</TD>
<TD>switch to workspace number #n</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>@BBCore.LastWorkspace</TD>
<TD>switch to last used workspace</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>@BBCore.MoveWindowLeft</TD>
<TD>move window to previous workspace</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>@BBCore.MoveWindowRight</TD>
<TD>move window to next workspace</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>@BBCore.MoveWindowToWS&nbsp;#n</TD>
<TD>move window to workspace number #n and switch WS</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>@BBCore.SendWindowToWS&nbsp;#n</TD>
<TD>send window to workspace number #n and don't switch</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>@BBCore.GatherWindows</TD>
<TD>gather all windows in the current workspace</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>@BBCore.AddWorkspace</TD>
<TD>add another workspace</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>@BBCore.DelWorkspace</TD>
<TD>remove the last workspace</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>@BBCore.EditWorkspaceNames</TD>
<TD>edit the names of workspaces</TD>
</TR>
</TABLE>
<BR/>&nbsp;
<TABLE width=100%><TR ALIGN=LEFT><TH WIDTH=35%>Blackbox</TH>
<TH>&nbsp;</TH>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>@BBCore.toggleplugins</TD>
<TD>toggle plugins (if configured to 'toggle with plugins')</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>@BBCore.toggleplugins&nbsp;true/false</TD>
<TD>show/hide plugins (if configured to 'toggle with plugins')</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>@BBCore.aboutstyle</TD>
<TD>display style info</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>@BBCore.aboutplugins</TD>
<TD>display plugin info</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>@BBCore.about</TD>
<TD>display core info</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>@BBCore.reconfig</TD>
<TD>reload style-settings and rc-settings</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>@BBCore.restart [-p]</TD>
<TD>unload and reload all plugins. (*) -p(ause) = paused restart.</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>@BBCore.exit [-q]</TD>
<TD>exit the blackbox shell. -q(uiet) = no confirmation.</TD>
</TR>
</TABLE>
<BR/>&nbsp;
<TABLE width=100%><TR ALIGN=LEFT><TH WIDTH=35%>Edit</TH>
<TH>&nbsp;</TH>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>@BBCore.editstyle</TD>
<TD>run the 'blackbox editor' on the current style</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>@BBCore.editmenu</TD>
<TD>run the 'blackbox editor' on menu.rc</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>@BBCore.editplugins</TD>
<TD>run the 'blackbox editor' on plugins.rc</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>@BBCore.editextensions</TD>
<TD>run the 'blackbox editor' on extensions.rc</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>@BBCore.editblackbox</TD>
<TD>run the 'blackbox editor' on blackbox.rc</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>@BBCore.edit &lt;file&gt;</TD>
<TD>run the 'blackbox editor' on the specified file</TD>
</TR>
</TABLE>
<P>The 'blackbox editor' is specified in extensions.rc.</P>
<TABLE width=100%><TR ALIGN=LEFT><TH WIDTH=35%>Shutdown</TH>
<TH>&nbsp;</TH>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>@BBCore.shutdown [-q]</TD>
<TD>shutdown the computer. -q(uiet) = no confirmation.</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>@BBCore.reboot [-q]</TD>
<TD>reboot the computer</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>@BBCore.logoff [-q]</TD>
<TD>logoff</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>@BBCore.hibernate [-q]</TD>
<TD>hibernate</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>@BBCore.suspend [-q]</TD>
<TD>suspend the computer</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>@BBCore.lockworkstation</TD>
<TD>lock workstation</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>@BBCore.switchuser</TD>
<TD>fast user switch</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>@BBCore.exitwindows</TD>
<TD>display standard shutdown dialog</TD>
</TR>
</TABLE>
<BR/>&nbsp;
<TABLE width=100%><TR ALIGN=LEFT><TH WIDTH=35%>Other</TH>
<TH>&nbsp;</TH>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>@BBCore.exec&nbsp;&lt;command&gt;</TD>
<TD>execute command</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>@BBCore.style &lt;stylefile&gt;</TD>
<TD>apply the specified style</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>@BBCore.rootCommand&nbsp;&lt;command&gt;</TD>
<TD>set wallpaper, command is any line, 'style' or 'none'.</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>@BBCore.run</TD>
<TD>display the windows 'run' dialog</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>@BBCore.message&nbsp;&lt;message&gt;</TD>
<TD>popup a message box for confirmation</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>@BBCore.label&nbsp;&lt;message&gt;</TD>
<TD>display message on the toolbar label for 2 seconds</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>@BBCore.pause #n</TD>
<TD>pause for #n milliseconds</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>@BBCore.nop</TD>
<TD>do nothing</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>@BBCore.post&nbsp;&lt;command&gt;</TD>
<TD>execute command slightly later. Useful to unload a plugin from itself.</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>@BBCore.showAppnames</TD>
<TD>display module information of running tasks.</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>@BBCore.showRecoverMenu</TD>
<TD>display a menu that can be used to recover hidden windows
after a crash while alternate workspace method was enabled.
Use with care.</TD>
</TR>
</TABLE>
<BR/>&nbsp;
<TABLE width=100%><TR ALIGN=LEFT><TH WIDTH=35%>Configuration</TH>
<TH>&nbsp;</TH>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>@BBCfg.plugin.load&nbsp;&lt;plugin&gt;</TD>
<TD>load/unload a plugin</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>@BBCfg.plugin.inslit&nbsp;&lt;plugin&gt;</TD>
<TD>toggle slit mode for plugin</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>@BBCfg.plugin.add&nbsp;&lt;pathToPlugin&gt;</TD>
<TD>add a plugin to the list and load it</TD>
</TR>
</TABLE>
<P>Any '@BBCfg...' command that toggles a setting, can have an optional
argument 'true' or 'false' to specify the new state. For example to unload
bbLeanBar if loaded and do nothing otherwise:</P>
<PRE>@BBCfg.plugin.load bbLeanBar false
</PRE>
<P>Use the <B>Show Bro@ms</B> option in Configuration-&gt;Menus to view other
broadcast messages for core configuration and plugins.</P>
<H4>Mini-Script</H4>
<P>This is to execute multiple commands on one broadcast message. The
command list must be enclosed into '[&nbsp;]'s, and single commands are
separated by '|'s and may be broams or external executables.</P>
<PRE>@Script [@SomeBroam | some_prog arguments | @AnotherBroam]
</PRE>
<A CLASS="label" NAME="Hotkeys"><H2>Hotkeys</H2></A>
<P>Hotkeys are done with the 'bbKeys' plugin and its configuration file 'bbKeys.rc'.
The line-format in bbkeys.rc is like this:</P>
<PRE>KeyToGrab(&lt;hotkey&gt;), WithModifier(&lt;modifiers&gt;), WithAction(&lt;action&gt;)
</PRE>
<P>Available hotkeys:</P>
<UL><LI>A..Z and 0..9
<LI>F1..F12
<LI>LEFT RIGHT UP DOWN HOME END PAGEUP PAGEDOWN INSERT DELETE
<LI>TAB BACKSPACE SPACEBAR ENTER ESCAPE APPS PRTSCN PAUSE
<LI>NUM0..NUM9
<LI>MUL DIV ADD SUB DEC
<LI>LWIN RWIN
<LI>VK### - General virtual key code (decimal). For example VK112 is the same
as F1. Tables for virtual key codes can be found on the internet.</UL>
<P>Available modifiers:</P>
<UL><LI>CTRL SHIFT ALT WIN</UL>
<P>Available actions:</P>
<UL><LI>Any of the <A HREF="bblean_details.htm#Broadcast_Messages">@BBCore&nbsp;commands</A>, but omitting the '@BBCore.'
part. To run programs or to send other broadcast messages, the 'exec' action
can be used.</UL>
<P>Default Hotkey Bindings:</P>
<UL><LI>Read -&gt; <A HREF="bblean_overview.htm#Keyboard">here</A>.</UL>
<A CLASS="label" NAME="Clock_Formatting"><H2>Clock&nbsp;Formatting</H2></A>
<P>These codes are used for formatting the clock displays, for ...</P>
<UL><LI>the Toolbar, in blackbox.rc:</UL>
<PRE>session.screen0.strftimeFormat: %#I:%M:%S %p
</PRE>
<UL><LI>bbLeanbar, in bbleanbar.rc:</UL>
<PRE>bbleanbar.strftimeFormat: %d %a %#H:%M
</PRE>
<TABLE width=100%><TR ALIGN=LEFT><TH WIDTH=35%>Label</TH>
<TH>Value</TH>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>%a</TD>
<TD>Abbreviated weekday name</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>%A</TD>
<TD>Full weekday name</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>%b</TD>
<TD>Abbreviated month name</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>%B</TD>
<TD>Full month name</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>%c</TD>
<TD>Date and time representation appropriate for locale</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>%d</TD>
<TD>Day of month as decimal number (01 - 31)</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>%H</TD>
<TD>Hour in 24-hour format (00 - 23)</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>%I</TD>
<TD>Hour in 12-hour format (01 - 12)</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>%j</TD>
<TD>Day of year as decimal number (001 - 366)</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>%m</TD>
<TD>Month as decimal number (01 - 12)</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>%M</TD>
<TD>Minute as decimal number (00 - 59)</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>%p</TD>
<TD>Current locale's A.M./P.M. indicator for 12-hour clock</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>%S</TD>
<TD>Second as decimal number (00 - 59)</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>%U</TD>
<TD>Week of year as decimal number, with Sunday as first day of week (00 - 53)</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>%w</TD>
<TD>Weekday as decimal number (0 - 6; Sunday is 0)</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>%W</TD>
<TD>Week of year as decimal number, with Monday as first day of week (00 - 53)</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>%x</TD>
<TD>Date representation for current locale</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>%X</TD>
<TD>Time representation for current locale</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>%y</TD>
<TD>Year without century, as decimal number (00 - 99)</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>%Y</TD>
<TD>Year with century, as decimal number</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>%z</TD>
<TD>Either the time-zone name or time zone abbreviation, depending on registry
settings; no characters if time zone is unknown</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>%Z</TD>
<TD>same as above</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>%%</TD>
<TD>Percent sign</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>%K</TD>
<TD>Special extension with bbLeanBar: Two letter abbreviation for the active
keyboard layout</TD>
</TR>
</TABLE>
<P>The # flag modifies some of the above as follows:</P>
<TABLE width=100%><TR ALIGN=LEFT><TH WIDTH=35%>Format</TH>
<TH>Effect</TH>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>%#c</TD>
<TD>Long date and time representation, appropriate for current locale.</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>%#x</TD>
<TD>Long date representation, appropriate to current locale.</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>%#d,H,I,j,m,M,S,U,w,W,y,Y</TD>
<TD>Remove leading zeros (if any).</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>%#a,A,b,B,p,X,z,Z,%</TD>
<TD># flag is ignored</TD>
</TR>
</TABLE>
<P>&nbsp;</P>
<P>You can set another language for the clock display in extensions.rc.</P>
<PRE>blackbox.options.locale: &lt;locale-id&gt;
</PRE>
<P>For locale-id's see <A HREF="http://en.wikipedia.org/wiki/ISO_3166-1_alpha-3" target="_parent">http://en.wikipedia.org/wiki/ISO_3166-1_alpha-3</A></P>
<A CLASS="label" NAME="Hacks"><H2>Hacks</H2></A>
<H4>Experimental&nbsp;options&nbsp;in&nbsp;extensions.rc</H4>
<P>Some options are supported to disable parts of the bbLean shell for
special purposes:</P>
<TABLE width=100%><TR ALIGN=LEFT><TH WIDTH=35%>Option</TH>
<TH>Default</TH>
<TH>Description</TH>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>blackbox.options.hideExplorer</TD>
<TD>true</TD>
<TD>hide desktop icons when run under explorer (Q)</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>blackbox.options.hideTaskbar</TD>
<TD>true</TD>
<TD>hide explorer taskbar when run under explorer (Q)</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>blackbox.options.disableTray</TD>
<TD>false</TD>
<TD>do not receive tray events (Q)</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>blackbox.options.disableMargins</TD>
<TD>false</TD>
<TD>do not set desktop margins (Q)</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>blackbox.options.disableVWM</TD>
<TD>false</TD>
<TD>disable workspaces (Q)</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>blackbox.options.disableDDE</TD>
<TD>false</TD>
<TD>do not initialize DDE in shdocvw.dll (Q)</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>blackbox.options.shellContextMenu</TD>
<TD>false</TD>
<TD>use plain grey context menu (right-click)</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>blackbox.options.disableDesk</TD>
<TD>false</TD>
<TD>do not create an own desktop window (Q)</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>blackbox.options.desktopHook</TD>
<TD>false</TD>
<TD>use deskhook.dll to receive desktop clicks (Q) (D)</TD>
</TR>
</TABLE>
<P>(R) Restart the shell to apply -
(Q) Quit and restart the shell to apply -
(L) Logout and login again to apply</P>
<P>(D) deskhook.dll can be used in combination with no own desktop window to receive mouse
clicks on the explore desktop background. deskhook.dll is not part of the binary package,
but is included in the source code.</P>
<P>&nbsp;</P>
<P>Other options for extensions.rc:</P>
<TABLE width=100%><TR ALIGN=LEFT><TH WIDTH=35%>Option</TH>
<TH>Default</TH>
<TH>Description</TH>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>blackbox.options.openFolderCommand</TD>
<TD>explorer</TD>
<TD>for menu double-click, e.g. explorer.exe /e,&quot;%1&quot; (R)</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>blackbox.options.locale</TD>
<TD>C</TD>
<TD>locale identifier for clock and date strings (R)</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>blackbox.options.UTF8Encoding</TD>
<TD>false</TD>
<TD>use unicode and read menu.rc etc. as UTF-8 files (R)</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>blackbox.options.OldTray</TD>
<TD>false</TD>
<TD>Vista Support with older Taskbars (e.g. SystembarEx) (Q)</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>blackbox.options.translation</TD>
<TD>&nbsp;</TD>
<TD>translation file for messages and menus. See &quot;docs/nls-c.txt&quot; (R)</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>blackbox.options.log</TD>
<TD>&nbsp;</TD>
<TD>enable blackbox.log. Possible options: Startup, Tray (L)</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>blackbox.editor</TD>
<TD>notepad</TD>
<TD>editor to edit styles and rc files (R)</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>blackbox.startup.run</TD>
<TD>&nbsp;</TD>
<TD>program or script to run after system startup (L)</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>blackbox.contextmenu.itemAdjust</TD>
<TD>28/28</TD>
<TD>left adjust for contextmenus/sendto. (R)</TD>
</TR>
<TR ALIGN=LEFT><TD WIDTH=35%>blackbox.appearance.bullet.bitmap</TD>
<TD>&nbsp;</TD>
<TD>bitmap for menu bullets. See &quot;docs/menu-bullets.bmp&quot; (R)</TD>
</TR>
</TABLE>
<P>(R) Restart the shell to apply -
(Q) Quit and restart the shell to apply -
(L) Logout and login again to apply</P>
<A CLASS="label" NAME="Issues"><H2>Issues</H2></A>
<P>bbLean runs on windows versions 95/98/me/2000/xp/vista. Still there may be
potential problems:</P>
<DL><DT>Systray icons missing:</DT>
<DD>You need to install blackbox as shell to get all systray icons.
See -> <A HREF="bblean_details.htm#Install_as_Shell">Install as Shell</A></DD></DL>
<DL><DT>Shell crashes, hangs, does not start, etc.:</DT>
<DD>Unload all plugins first, then try again. Also some anti-virus/spyware
programs cah cause problems with bbLeanSkin and/or blackbox itself.</DD></DL>
<DL><DT>Drawing issues with applications, unresponsive applications:</DT>
<DD>May be caused by bbLeanSkin. See bbLeanSkin/readme.txt for details on
how to exclude applications from being skinned. Also, on XP/Vista it is
recommended to use the 'Windows Classic' design option (in 'Display Properties').</DD></DL>
<DL><DT>Titlebars flickers:</DT>
<DD>May happen with bbLeanSkin when the caption text is frequently updated.
Can't be fixed.</DD></DL>
<DL><DT>Find files:</DT>
<DD>Does not work from the context menu. Hit F3 or Ctrl-F in an explorer window
instead. Or use an alternate tool like Agent Ransack...</DD></DL>
<DL><DT>Network Places and Recent Documents folder don't update:</DT>
<DD>This also does not seem to work without the explorer shell. On a blackbox
menu you can press F5 to refresh.</DD></DL>
<DL><DT>'SendTo' or 'Open With' menus empty or scrambled:</DT>
<DD>Turn off 'ClearType' fonts (XP/Vista).</DD></DL>
<DL><DT>Plugins conflict with gaming:</DT>
<DD>Disable 'Always On Top' and 'AutoHide' with plugins. Or hit Win+Ctrl+P
to toggle plugin visibility.</DD></DL>
<DL><DT>Lost Windows, other issues with workspaces:</DT>
<DD>Hit Win-G to 'Gather Windows' in the current workspace. If the problem
continues, try 'Alternate Workspace Method' off or on, respectively.
With Winamp, checkout its 'LiteStep Virtual Desktop' options, or
add it to <A HREF="bblean_details.htm#Sticky_Windows">StickyWindows.ini</A>.</DD></DL>
<DL><DT>Browse long menus:</DT>
<DD>Drag the scroll button (under the menu titlebar) or use the mouse wheel
or the arrow keys.</DD></DL>
<DL><DT>Show file extensions in menus:</DT>
<DD>Uncheck &quot;Hide Extensions for Known File Types&quot; in windows explorer options.</DD></DL>
<DL><DT>Memory usage:</DT>
<DD>bbLean itself uses about 1..2MB. However as it is the shell, bbLean is also
responsible to load other things into its own process. For example on Vista
just loading the systray applets causes something like 15MB additional memory
usage. Of course if you don't need the network and volume icons, you could
always compile your own bb-super-lean version.</DD></DL>
<DL><DT>Unknow procedure DrawShadowText in comctl32.dll:</DT>
<DD>This is a problem in the Microsoft products. See <A HREF="http://support.microsoft.com/?kbid=884883
" target="_parent">http://support.microsoft.com/?kbid=884883
</A> It means basically that some application has an old comctl32.dll installed,
most likely in its own directory. Try to remove that dll or rename it to
something else.</DD></DL>
<DL><DT>Windows 95:</DT>
<DD>You might need to install msvcrt.dll.</DD></DL>
<p>&nbsp;</p>
<p class="footer">Copyright 2003-2009 grischka@users.sourceforge.net</p>
</body>
</html>