Latest version of xTaskbar is 2.3
This is xTaskbar-2.3, a LiteStep module used to display a list of the currently running programs/tasks.
You need to load xPaintClass-1.0 before xTaskbar, otherwise xTaskbar won't load! xTaskbar can also use the features of xStatsClass. If you want to use those features you need to load xStatsClass before xTaskbar.
You can also simply put xPaintClass-1.0 in your LiteStep folder.
You can download the latest xPaintClass-1.0.dll at: www.ls-universe.info
Add some new LoadModule lines somewhere in your theme configuration, similar to the following (this assumes that xTaskbar-2.3.dll resides in "C:\LiteStep\Modules"):
LoadModule "C:\LiteStep\Modules\xPaintClass-1.0.dll" LoadModule "C:\LiteStep\Modules\xStatsClass-1.1.dll" LoadModule "C:\LiteStep\Modules\xTaskbar-2.3.dll"
or the newer *NetLoadModule lines:
*NetLoadModule xPaintClass-1.0 *NetLoadModule xStatsClass-1.1 *NetLoadModule xTaskbar-2.3
To make the newest version available for your theme, you should probably add the following lines somewhere in your theme configuration:
*NetLoadModuleSite "http://www.modules.shellfront.org/" *NetLoadModuleSite "http://www.modules.ls-universe.info/modules/" *NetLoadModuleSite "http://www.modules.nbi-studio.com/" *NetloadModuleSite "http://www.ls-themes.org/modules/download/"
The following commands are typically placed somewhere in your theme configuration. See the LiteStep documentation for help modifying these files.
All commands must be prefixed with the name of the xTaskbar, normally this is xTaskbar.
Occurrences of (taskbar-name) should be replaced by the actual name of the xTaskbar, normally this is xTaskbar.
true or false)Examples:
xTaskbarX 5 ; 5 pixels to the right of the LEFT side of the parent xTaskbarX ~5 ; 5 pixels to the left of the LEFT side of the parent ; (Just as info, this is outside the parent) xTaskbarX -5 ; 5 pixels to the left of the RIGHT side of the parent xTaskbarX 1@-5 ; 5 pixels to the left of the RIGHT side of the primary monitor
Examples:
xTaskbarY 5 ; 5 pixels to the bottom of the TOP side of the parent xTaskbarY ~5 ; 5 pixels to the top of the TOP side of the parent ; (Just as info, this is outside the parent) xTaskbarY -5 ; 5 pixels to the top of the BOTTOM side of the parent xTaskbarY 1@-5 ; 5 pixels to the top of the BOTTOM side of the primary monitor
maxtaskbarsize steps delaysteps and size are set.maxtaskbarsize sets the maximum width or height the taskbar will automatically resize to. maxtaskbarsize controls the maximum width if the taskbar layout is .horizontal and the maximum height if the taskbar layout is .vertical.steps sets the animation steps and time sets the pause time between two steps in milliseconds. Maximum pause time is 50ms.ButtonMaxWidth and ButtonMaxHeight must also be set.classname windowtextclassname (and windowtext) is set, the taskbar is placed behind this window and will "never" come to front.classname, the taskbar tries to stay on top of other windows. Only one module should use the "HWND_TOP" classname. AlwaysOnTop isn't set)..horizontal or .vertical..horizontal..left, .right, .top or .bottom..right (.bottom for vertical layouts)..horizontal layout) or rows in the taskbar (.vertical layout). Lines.top, .bottom, .left or .right..bottom (.right for vertical layouts).!xTaskbarScrollButtons.AutoSize$ResolutionX$.WrapCount (or Lines), then the width of the task buttons is adapted to fill up the available taskbar space completely if more than WrapCount buttons are visible.ButtonMaxWidth of 200 and WrapCount set to 2. When a third task is added the new task button will be added to a new row of tasks. Without setting ButtonAdaptiveSize you would have 100 pixels that never get used on the first row of task buttons. With ButtonAdaptiveSize the task buttons would be made 250 pixels wide, overriding ButtonMaxWidth, to fill the entire taskbar.LeftBorder, RightBorder, TopBorder, and BottomBorder true..prefix-caption-file.caption-file.prefix-caption.caption.prefix-file.fileAdditionally all xPaintTooltip settings are valid for the taskbar tooltips.
The needed xPaintTooltip prefix is (taskbar-name), normally this is xTaskbar.
AlphaTransparency doesn't work with a hooked taskbar.AlphaMap doesn't work with a hooked taskbar.AlphaFade doesn't work with a hooked taskbar.stepsize delaystepsize is the number of transparency steps to take when animating (range 0 - 255). delay is the time in ms to pause at each step.CustomAlphaFade doesn't work with a hooked taskbar.flashing, all, normal, active, minimized, normal+active, normal+minimized or active+minimized.all is the default and it is not recommended to change this unless you have more than one taskbar.flashing, all, normal, active, minimized, normal+active, normal+minimized or active+minimized.HoverStateDisplay setting to determine if they should be used or not..none, .filename, .classname, .windowname or .zorder..none is the default.Sort is set to .none.matchingstringsmatchingstrings. The search is case-insensitive. You can add as many wildcard strings as you want/need.matchingstrings support normal wildcards and the strings to search for are separated with a semicolon ";". Each string specifies a part of a window classname or title to search for.Example:
; xTaskbar will only show tasks whose classname or windowtext ; either starts with "super", or contains "free" at any ; place inside them. xTaskbarAddOnlyMatching "super*;*free*"
matchingstringsmatchingstrings. The search is case-insensitive. You can add as many wildcard strings as you want/need.matchingstrings support normal wildcards and the strings to search for are separated with a semicolon ";". Each string specifies a part of a window classname or title to search for.Example:
; xTaskbar will not show tasks whose classname or windowtext ; either starts with "super", or contains "free" at any ; place inside them. xTaskbarRemoveOnlyMatching "super*;*free*"
Attention: You have to load the vwm module before xTaskbar!
true.thresholdIconSize (of the xPaintIcon class) is equal to or bigger than threshold a large icon is extracted and used.true.HoverStateDisplayfalse, then (the visual part of) flashing is deactivated.true (flashing is enabled).All xPaintTexture settings are valid for the taskbar background.
The needed xPaintTexture prefix is (taskbar-name), normally this is xTaskbar.
Example:
xTaskbarPaintingMode .singlecolor
xTaskbarColors ff0000
First of all, an overlay taskbar isn't a normal taskbar, it's only a plain image overlay below all the buttons. You can use an overlay taskbar for alpha map overlays, texture overlays, colorizing, etc. You can combine as many overlay taskbars as you want and they can overlap each other.
a, t or a combination of both. If it's set to a that means that the overlay uses an image with alpha map information. If it's set to t that means the overlay is painted on top of the task buttons. The # sign should always be present.All xPaintTexture settings are valid for the overlay taskbar.
The needed xPaintTexture prefix is "settings prefix".
The "settings prefix" is defined in your *(taskbar-name)OverlayTaskbar line.
You MUST load xStatsClass-1.x before xTaskbar to use this feature!
Any "conditional text escape sequence" from xStatsClass, which returns a value can be used.
If the return value is 0 or false, then the overlay isn't painted, otherwise it is painted.
Examples:
; This would paint the overlay for the last 30 seconds of every minute. *xTaskbarOverlayTaskbar 0 0 50% 50% Overlay # "[ifeval(time('ss'),'<=','30')]0[else]1[endif]"
; This would paint the overlay, if Winamp is stopped. *xTaskbarOverlayTaskbar 0 0 50% 50% Overlay # "[winampstopped]"
; This would paint the overlay, if the evar $blah$ is empty. *xTaskbarOverlayTaskbar 0 0 50% 50% Overlay # "[empty(exportedevar('blah'))]"
; This overlay will cover the entire taskbar. *xTaskbarOverlayTaskbar 0 0 100% 100% TestOverlay #
; This overlay will cover the entire taskbar except for a 20 pixels wide area along the right side. *xTaskbarOverlayTaskbar 0 0 -20 100% TestOverlay #
;An example with extra settings *xTaskbarOverlayTaskbar 10 10 24 24 TestOverlay # TestOverlayPaintingMode ".image" TestOverlayImage "ghost.png" TestOverlaySaturationIntensity 75
The "(Button Type)" in front of each setting means that every setting can be:
"Button", "NormalButton", "ActiveButton", "MinimizedButton", "FlashingButton", "HoverButton", "PressedButton", or "GroupedButton"
If you don't set any of these seven specific modifiers, the default settings will be used for all modes. (See Examples)
ShowHoverState must be enabled for the hover settings to work.
ShowPressedState must be enabled for the pressed settings to work.
UseGrouping must be enabled for the grouped settings to work.
Examples:
; All button states gets a saturation intensity of 70%. xTaskbarButtonSaturationIntensity 70 ; Minimized buttons have a saturation intensity of 70%. xTaskbarMinimizedButtonSaturationIntensity 70
All xPaintTexture settings are valid for the task buttons background.
(Button Type) used below is a place holder and can be one of the following:
ShowHoverState.ShowPressedState.UseGrouping.
The needed xPaintTexture prefix is (taskbar-name)+(Button Type).
Example:
xTaskbarHoverButtonPaintingMode .image xTaskbarHoverButtonImage "taskbuttonhover.bmp"
The "(Button Type)" in front of each setting means that every setting can be:
<nothing>, "Normal", "Active", "Minimized", "Flashing", "Hover", "Pressed", or "Grouped"
If you don't set any of these seven specific modifiers, the default settings will be used for all modes. (See Examples)
ShowHoverState and UseHoverIconSettings must be enabled for the hover settings to work.
ShowPressedState and UsePressedIconSettings must be enabled for the pressed settings to work.
UseGrouping and UseGroupedIconSettings must be enabled for the grouped settings to work.
Examples:
; All button states have a horizontal icon position of 5. xTaskbarIconX 5 ; Minimized buttons have a horizontal icon position of 5. xTaskbarMinimizedIconX 5
All xPaintIcon settings are valid for the task button icons.
(Button Type) used below is a place holder and can be one of the following:
ShowHoverState and UseHoverIconSettings.ShowPressedState and UsePressedIconSettings.UseGrouping and UseGroupedIconSettings.
The needed xPaintIcon prefix is (taskbar-name)+(Button Type).
xTaskbarIconSize 32 xTaskbarIconAlphaTransparency 100 xTaskbarNormalIconSize 32 xTaskbarNormalIconAlphaTransparency 150
The "(Button Type)" in front of each setting means that every setting can be:
<nothing>, "Normal", "Active", "Minimized", "Flashing", "Hover", "Pressed", or "Grouped"
If you don't set any of these seven specific modifiers, the default settings will be used for all modes. (See Examples)
ShowHoverState and UseHoverFontSettings must be enabled for the hover settings to work.
ShowPressedState and UsePressedFontSettings must be enabled for the pressed settings to work.
UseGrouping and UseGroupedFontSettings must be enabled for the grouped settings to work.
Examples:
; All button states get a font height of 20. xTaskbarFontHeight 20 ; Minimized buttons get a font height of 20. xTaskbarMinimizedFontHeight 20
You can modify the displayed text in the different button states if you load xStatsClass-1.x before xTaskbar. xStatsClass-1.x provides all text escape sequences you know from xLabel.
; Load xStatsClass before xTaskbar *NetLoadModule xstatsclass-1.x *NetLoadModule xtaskbar-2.x.x
The settings for the different button states are:
Example:
; Displays the CPU usage of the task in the caption of the task button if the task is active. xTaskbarActiveButtonText "[cpu(before(afterlast('%executable%', '\'), '.'))]% %caption%"
All xPaintText settings are valid for the task button text.
(Button Type) used below is a place holder and can be one of the following:
ShowHoverState and UseHoverFontSettings.ShowPressedState and UsePressedFontSettings.UseGrouping and UseGroupedFontSettings.
The needed xPaintText prefix is (taskbar-name)+(Button Type).
xTaskbarFontHeight 12 xTaskbarFontColor 002200 xTaskbarHoverFontHeight 14 xTaskbarHoverFontColor 009900
First of all, an overlay button isn't a normal task button. It's only a plain image overlay over the existing buttons. You can use overlay buttons for alpha map overlays, texture overlays, colorizing, etc. You can combine as many overlay buttons as you want and they can even overlap each other.
x y width height settingsprefix flags conditionalescapesequencewidth and height.settingsprefix is used for all overlay button settings. They work exactly like (taskbar-name) for normal xTaskbar settings.flags can be a, t, or both. a specifies that the overlay uses an alpha map image. t specifies that the overlay is painted on top of the icon and text. The # must always be present, even if no flags are set.conditionalescapesequence is detailed further down.All xPaintTexture settings are valid for the overlay buttons.
(Button Type) used below is a place holder and can be one of the following:
ShowHoverState.ShowPressedState.UseGrouping.
The needed xPaintTexture prefix is settingsprefix+(Button Type), settingsprefix is defined in your *(taskbar-name)OverlayButton line.
You must load xStatsClass-1.x before xTaskbar to use this feature!
Any "conditional text escape sequence" from xStatsClass that returns a value can be used.
If the return value is 0 or false the overlay isn't painted, otherwise it is painted.
Examples:
; This would paint the overlay for the last 30 seconds of every minute. *xTaskbarOverlayButton 0 0 50% 50% Overlay # "[ifeval(time('ss'),'<=','30')]0[else]1[endif]"
; This would paint the overlay, if Winamp is stopped. *xTaskbarOverlayButton 0 0 50% 50% Overlay # "[winampstopped]"
; This would paint the overlay, if the evar $blah$ is empty. *xTaskbarOverlayButton 0 0 50% 50% Overlay # "[empty(exportedevar('blah'))]"
*xTaskbarOverlayButton 10 10 24 24 OverlayButton # ; The correct syntax for the overlay button settings are now: OverlayButtonNormalButtonPaintingMode .image OverlayButtonNormalButtonImage "ghost_n.png" OverlayButtonActiveButtonPaintingMode .image OverlayButtonActiveButtonImage "ghost_a.png"
For a complete and automatically adapted overlay use for instance:
*xTaskbarOverlayButton 0 0 100% 100% OverlayButton #
For a 20 pixel border on the right side without overlay:
*xTaskbarOverlayButton 0 0 -20 100% OverlayButton #
This would display an overlay button that is six pixels bigger than the normal button ("Glow Effect")
*xTaskbarOverlayButton ~6 ~6 100%+12 100%+12 testoverlay #a
Remember that all values in between [ and ] are optional. This means that if you didn't specify more than one taskbar you never need to specify (taskbar-name).
(taskbar-name) must naturally be replaced with the actual name of the taskbar you want to be affected.
The exact purpose of every Bang command should be quite obvious.
(taskbar-name) statestate can be:
true or on toggle or switchfalse or off(taskbar-name)(taskbar-name)(taskbar-name) displaystatesdisplaystates(taskbar-name)LoadInBox must be set to hook xTaskbar in another module.(taskbar-name) x y steps timesteps and time are set.steps sets the animation steps and time sets the pause time between two steps in milliseconds. Maximum pause time is 50ms.(taskbar-name) x y steps timesteps and time are defined.x and/or y moves the taskbar to left/top, positive to right/bottom.steps are the number of animation steps and time sets the pause time between two steps in milliseconds. Maximum pause time is 50ms.(taskbar-name) width height steps timesteps and time are defined.steps are the number of animation steps and time sets the pause time between two steps in milliseconds. Maximum pause time is 50ms.(taskbar-name) width height steps timesteps and time are defined.width and/or height is negative the taskbar is shrunken width and/or height pixels. If they are positive the taskbar is incresed in size.steps are the number of animation steps and time sets the pause time between two steps in milliseconds. Maximum pause time is 50ms.(taskbar-name) x y width height steps time!xTaskbarMove and !xTaskbarResize combined.(taskbar-name) x y width height steps time!xTaskbarMoveBy and !xTaskbarResizeBy combined.(taskbar-name) direction amountdirection can be "next" or "prev". Default is "next".amount controls how many task buttons to scroll. Default is 1.(taskbar-name) transparency steps timesteps and time are both defined.steps are the fade steps and time is the pause between two steps in milliseconds.(taskbar-name)(taskbar-name)(taskbar-name)(taskbar-name) directiondirection can be "next" or "prev"(taskbar-name) setting newvalueExamples:
!xTaskbarRefresh xTaskbarImage new_image.png ; Changes the background image !xTaskbarRefresh xTaskbarShowTooltips true ; Take care to always use two parameters
.select, .menu, .close, .ontop or .none..select..select, .menu, .close, .ontop or .none..menu..select, .menu, .close, .ontop or .none..none....FocusOnEnter...FocusOnEnterHideIfEmpty just with the difference that the themer can decide what should happen when the first taskbutton is shown.HideIfEmpty just with the difference that the themer can decide what should happen when the last taskbutton is hides.You will need to define dummy variables if you include these in scripts/rc files with standard $evar$ syntax, since when LiteStep reads these files xTaskbar has not yet added them, causing LiteStep to think the variables are undefined.
Only useful if used in handtyped Bang commands (like in LSXCommand for example) or if you use it in mzscripts or with xLabel's special !ParseEvars Bang command.
To use $evars$ in Bang commands that contain the "current" value, use the escape code %# and prefix the Bang command with the !ParseEvars Bang command. $xTaskbarcurrentwidth$ becomes %#xTaskbarcurrentwidth%# and so on.
Example:
xTaskbarOnDoubleClick !ParseEvars !vTrayMove -%#vTrayCurrentWidth%# -30
The following settings all support the use of wildcards in their STRING parameters.
The wildcards works as follows:
[0-9a-zA-Z_] is the minimal set of characters allowed in the pattern construct. Other characters are allowed (i.e. 8 bit characters), if your system supports them.
To suppress the special syntactic significance of any of '[]*?!^-', and match the character exactly, precede it with a '\'.
(taskbar-name)Examples:
Settings without a custom taskbar name (90% of the users will use xTaskbar this way.):
xTaskbarX 100 xTaskbarY -20
Settings with a custom taskbar name, in this case "Task":
*xTaskbar Task TaskX 100 TaskY -20
substringsubstring, will update their task icon once every UpdateInterval. substring can contain wildcards. Normally task icons are only updated if something else changes on the taskbar that causes an update.substringsubstring will be shown in the taskbar(s). All other applications are hidden. substring can contain wildcards.Example:
; All applications that have the string "free" somewhere in ; their classname or windowtext gets a button in the taskbar. *xTaskbarAdd "*free*"
substringsubstring will not be shown in any taskbar. substring may contain wildcards.Example:
; All applications that have the string "free" somewhere in ; their classname or windowtext will be hidden in the taskbars. *xTaskbarRemove "*free*"
substring pathsubstring gets the icon from the chosen (icon-)file in all taskbars. *xTaskbarIcon supports icon extraction based on icon index number.path needs to be a full path.Example:
; All applications that have the string "free" somewhere in ; their classname or windowtext will get the eighth icon of ; explorer.exe, which in this case is an alert icon. *xTaskbarIcon "*free*" "c:\windows\explorer.exe,8"
First the standard settings, which are common to all the examples in the "Main Layout Examples" section:
xTaskbarPaintingMode .multicolor xTaskbarBorderMethod .etched xTaskbarButtonPaintingMode .multicolor xTaskbarButtonBorderMethod .raised xTaskbarActiveButtonBorderMethod .sunken xTaskbarMinimizedButtonBorderMethod .bump xTaskbarX 20 xTaskbarY 20 xTaskbarWidth $resolutionx-40$ ;(remove this setting if another value is used below!) xTaskbarHeight 32 ;(remove this setting if another value is used below!) xTaskbarTopBorder 4 xTaskbarBottomBorder 4 xTaskbarLeftBorder 10 xTaskbarRightBorder 10 xTaskbarButtonXSpacing 4 xTaskbarButtonYSpacing 2 xTaskbarButtonMaxWidth 200 xTaskbarFontLeftBorder 24 xTaskbarIconY 4
Guess what, you only need the standard settings :)
Use the common settings with the following changes/additions:
xTaskbarHeight 58 ;(we should start bigger due to second line) xTaskbarLines 2 xTaskbarWrapCount 5 ;(technically you don't need this since the default is also 5)
Use the common settings with the following changes/additions:
xTaskbarHeight 58 ;(we should start bigger due to second line) xTaskbarLayout .vertical xTaskbarLines 2 xTaskbarWrapCount 2
Use the common settings with the following changes/additions:
xTaskbarWrapCount 4 xTaskbarOnLineAdd !xTaskbarResizeBy 0 26 xTaskbarOnLineEemove !xTaskbarResizeBy 0 -26
Use the common settings with the following changes/additions:
xTaskbarWidth 0 ;(we should start with zero, cause of no buttons) xTaskbarOnAdd !xTaskbarresizeby 200 0 ;(our task buttons are 200px wide) xTaskbarOnRemove !xTaskbarresizeby -200 0 ;(our task buttons are 200px wide)
For all layouts you can define the direction in which new task buttons are added and the direction in which it wraps with the according settings.
The above five examples should give you an idea as to how you create your desired taskbar layout.
A little example that shows two xTaskbars and the use of xTaskbarDisplay:
*xTaskbar tbleft *xTaskbar tbright tbleftX 2 tbleftY 2 tbleftWidth 152 tbleftHeight $resolutiony/2$ tbleftLayout .vertical tbleftDisplay "normal+minimized" tbleftPaintingMode .multicolor tbleftColors c0c0c0 000000 tbleftBevels 1 tbleftButtonPaintingMode .multicolor tbleftButtonMaxHeight 24 tbleftLeftBorder 2 tbleftRightBorder 2 tbleftTopBorder 2 tbleftBottomBorder 2 tbleftFontLeftBorder 20 tbleftIconX 2 tbrightX 154 tbrightY 2 tbrightWidth 152 tbrightHeight 24 tbrightDisplay "active" tbrightPaintingMode .multicolor tbrightButtonPaintingMode .multicolor tbrightLeftBorder 2 tbrightRightBorder 2 tbrightTopBorder 2 tbrightBottomBorder 2 tbrightFontLeftBorder 20 tbrightIconX 2