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
delay
steps
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
windowtext
classname
(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
.file
Additionally 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
delay
stepsize
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
.matchingstrings
matchingstrings
. 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*"
matchingstrings
matchingstrings
. 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
.threshold
IconSize
(of the xPaintIcon class) is equal to or bigger than threshold
a large icon is extracted and used.true
.HoverStateDisplay
false
, 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
conditionalescapesequence
width
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)
state
state
can be:
true
or on
toggle
or switch
false
or off
(taskbar-name)
(taskbar-name)
(taskbar-name)
displaystates
displaystates
(taskbar-name)
LoadInBox
must be set to hook xTaskbar in another module.(taskbar-name)
x
y
steps
time
steps
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
time
steps
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
time
steps
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
time
steps
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
amount
direction
can be "next" or "prev". Default is "next".amount
controls how many task buttons to scroll. Default is 1.(taskbar-name)
transparency
steps
time
steps
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)
direction
direction
can be "next" or "prev"(taskbar-name)
setting
newvalue
Examples:
!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
...FocusOnEnter
HideIfEmpty
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
substring
substring
, 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.substring
substring
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*"
substring
substring
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
path
substring
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