Config reference
You can edit the config file from the desktops right click menu.
Global
BE:Shell
-
Panels (StringList)
A comma separated list of the Panels you defined
-
Theme (you can use the GUI to set this)
The name (relative path) of the current Theme, see Theming
-
Touch (boolean:false)
Whether the interface should be optimized for touchscreens (try to perform a rightclick with your digit...)
BE:Desk
-
WallpaperArea (x,y,w,h)
You can restrict the area to be covered by wallpapers here. This is esp. useful if you've some windows permanently occluding a screen edge and want to use the various scale & align modes.
-
BlurRadius (integer:0)
How much to blur the wallpaper version on the root window (e.g. for use with conky)
Default is 0 (which has a performance advantage when changing the wallpaper), try 9
Uses a fast repulse blur on the CPU, i.e. as soon as you picked it, the overhead differences between weak and moderate and heavy blur (e.g. 4,9,25) isn't too strong.
-
Corners (integer)
Want round corners?
The value is one integer: 1 + 2 + 4 + 8 + 16*radius
1,2,4 and 8 are the corners to set (clockwise, starting at top left)
- Example
Corners=195 # 1 + 2 + 12*16 -> top corners with a 12px radius
-
IconAreaPadding (x:32,t:32,r:32,b:32)
How far the icons should stay wway from the screen edges (besides contrainment by the panels)
-
Rootpaper (boolean:true)
/Whether the wallpaper shall be copied to the root window for eg. conky ("wastes" video memory)
-
ShadowOpacity (integer)
How dark shadows are (e.g. thrown by panels) in percent, try 25
Setting this to 0 skips shadows and has a slight performance advantage when changing wallpapers
-
ShowIcons (you can use the GUI to set this)
Whether to show the content of $HOME/Desktop as icons or not
-
Tint (Color)
Use a monochromatic wallpaper variant of this color.
You can also just drop a color on the desktop and there's a dbus interface. Full black or white or no or invalid values will remove the tinting.
-
TrashCan (you can use the GUI to set this)
Whether to show a trashcan on the desktop
-
TrashSize (integer:64)
Width/Height in pixels of the Deskop trashcan icon
-
TrashX (automatically written, don't touch)
-
TrashY (automatically written, don't touch)
-
Wallpaper (you can use the GUI to set this)
The full path to the current wallpaper image file
-
WallpaperAlign (you can use the GUI to set this)
The alignment of the wallpaper (left/center/right, top,center,bottom)
This matches the Qt::Alignment flag
-
WallpaperFadeSteps (integer:8)
Wallpaper change animation steps. More steps mean a slower animation.
-
WallpaperMode (you can use the GUI to set this)
- -1 Heuristic -- guess one from the wallpaper attributes
- 0 Invalid -- Don't use it
- 1 Plain -- Paints once and regarding the alignment
- 2 Tiling -- Repeatingly paint the wallpaper across the screen
- 3 Scale vertically -- Scales the wallpaper to the screen height and tiles horizontally
- 4 Scale horizontally -- Scales the wallpaper to the screen width and tiles vertically
- 5 Scale -- scale to width and height, drops the original aspect
- 6 Maximum size
- 7 Scale & Crop
- 8 Composed
-
WheelOnLMB (bool:false)
Whether the mousewheel (to change the virtual desktop) should only be interpreted when the left mousebutton is pressed.
The Composed mode is special and can not selectedthrough the UI.
It allows you to combine asmooth stretched background with an ever pixelprecise tiled texture.
They are configured as /path/to/back.jpg:/path/to/tile.png where the tile should rather have an active alpha channel to overlay the background (scanlines, the E17 pattern, etc.)
BE:Run
The runner can be accessed as dialog or as popup via dbus
qdbus org.kde.be.shell /Runner showAsDialog
qdbus org.kde.be.shell /Runner toggleDialog()
qdbus org.kde.be.shell /Runner togglePopup <x> <y>
The dialog "version" (it's always the same runner but in different size and behavior) can also be assigned to a shortcut
Select BE::Shell and assign a shortcut.
For the popup, just pass the position where it shall pop-up in pixels (Qt counts 0,0 from top/left corner)
qdbus org.kde.be.shell /Runner togglePopup 0 20
Will show it in the top left corner, 20px below the upper edge.
From a button config, you can use
DBus=session;org.kde.be.shell;/Runner;org.kde.be.shell;togglePopup;$x;$y
$x and $y are calculated from the actual button position when you click it
The filterline can execute commands directly and also pipe their output into a text display if you prefix a colon (try eg. ":ls")
If you've "units" (unit conversion tool), you can ask for conversions: ":300 feet -> meter"
If you have "bc" installed (that's a CLI calculator), prefixing "=" will assist your brain "=1+1"
- ARGB (bool:false)
Whether or not the Runner should use and ARGB window (translucent with opaque text)
Notice that QSS cannot style the background of ARGB windows, therefore it's "semi-hardcoded"
You can set a regular background-color, which can be rgba(r,g,b,a) with "a" < 255 (the default is a solid "black")
You can not set a complex (gradient) background
A gradient overlay is created automatically using black or white to contrast the foreground.
- Aliases (StringList)
A comma separated list of colon separated "aliases" (alias as in bash) to specific commands
- Example
- Aliases=countdown:qdbus org.kde.kwin /BeClock countdown
- VisibilityTimeout (integer:2000)
The time (in ms) the Run-dialog will stay open, after the user launches an application.
- Opacity (integer:90)
The global window opacity of the runner, ie. it has a slight overall translucency by default.
- bc (String:bc -l)
The bc command to use for calculations, allowing you to load random function predefinitions, eg. "bc -l /usr/local/share/bc/extensions.bc" (google for bc math functions)
Panels
- Applets
Comma separated list of defined applets you want to use in this panel
- ARGB (bool:false for layer 0, true for layers > 0)
Whether or not the Runner should use and ARGB window (translucent with opaque text)
Notice that QSS cannot style the background of ARGB windows, therefore it's "hardcoded"
- BlurRadius (integer)
How much to blur the wallpaper behind the panel.
This is independent from general desktop blurring.
- CastShadow (bool:true)
Whether there's a shadow on the desktop for this panel.
- Frozen (bool:false)
Whether the panel can be hidden, moved or resized at runtime.
- Id (String)
A fixed #id to access this panel from css by
-
Struts (boolean:true)
Whether the panel shrinks the space available to other windows
-
Layer (integer:0)
0 Below all windows (Transparency w/o compositing)
1 Above all windows
2 (reserved)
3 Autohiding (and above all windows)
-
AutoHideSensorSize (integer:2 if BE::Shell/Touch is set to true, 1 otherwise)
When you set the Panel to AutoHide (Layer=3), this specifies the minimal distance to the border the Panel resides at in order to make it visible.
-
AutoHideDelay (integer:2000)
The time (in ms) the Panel will stay visible after the mouse left it.
-
Length (you can use the GUI to set this)
NOTICE: if you configure the length to a negative value, the value is interpreted in absolute pixels, otherwise as percentage of the corresponding screen dimension. The absolute configuration will cause "wrong" panelnames (use the "Id" key) and break with GUI legth changes!
- Offset (you can use the GUI to set this)
- Position (you can use the GUI to set this)
- Size (you can use the GUI to set this)
- Visible (you can use the GUI to set this)
BE:Calendar
- Command (String)
A command to be executed by clicking on the current day from within the calendar
- FontSize (integer)
The size of the font to be displayed
- ShowGrid (Boolean)
Whether to show the grid of Qt Calendar or not (default is false)
- SizeFactor
The amount of spacing of the day cell (default 1.3)
Applets
-
Type=Panel
A sub panel to allow framing/collecting items.
-
Type=Button
- Icon
An icon name (anywhere in the current Theme or KDEs icon path) Don't pass suffix (".png" etc.) or a relative path (like "48x48/places/")
- Label
The visible and/or Tooltip text
- Mode (integer:1|0)
This matches the Qt::ToolButtonStyle
0 Only display the icon
1 Only display the text.
2 The text appears beside the icon.
3 The text appears under the icon.
And one out of:
- DBus (bus;service;path;interface;method[;arg1;arg2;...])
Parts of a dbus call, joined by semicolons, the bus must -so far- be "session" or "system"
- Example
DBus=session;org.kde.be.shell;/Desktop;org.kde.be.shell;toggleDesktopShown
- Exec (String)
Any kind of executable command, whether by full path or an executable in $PATH
Right now, environment setting is not supported, but you can pass any kfm compliant protocol.
- Examples
Exec=konqueror
Exec=kwrite ~/.kde/share/config/be.shell
Exec=gg:"BE::Shell"
- Menu (String)
Path to a xml menu, relative to BE::Shell's "appdata" path (~/.kde/share/apps/be.shell)
Do not append the ".xml" suffix.
Alternatively:
- MenuUpdater (string)
Path to a script that updates the menu (e.g. MenuUpdater=/path/to/my/menuUpdater/Script).
- MenuUpdaterTimeout (int)
- Service (String)
Name of a service known to KDE (that is, in it's service path)
The service provides label, icon and executable (see above), but they can be overridden by passing them explicitly in the buttons config group.
Do not append the ".desktop" suffix.
- WheelUp (String)
Gives an additional Command, that get's executed when you scroll your mouse wheel upwards. Enter a string as described in Exec or DBus.
- WheelDown (String)
Same as WheelUp, just in the opposite direction.
-
Type=Label
A textlabel for random input, like eg. a bashscript that filters the output of "sensors" through "sed" to display nifty temperature information (very poor mans conky)
- PollInterval (integer)
Amount of miliseconds to wait between updating the label contents.
- Lines (integer)
The amount of lines to display of the polled input (like "tail")
- Wrap (bool)
Whether to wrap the output to be displayed in the label or not.
- Active (bool)
Whether links can be clicked and text be selected.
And one out of:
- DBus (bus;service;path;interface;method[;arg1;arg2;...])
Parts of a dbus call, joined by semicolons, the bus must -so far- be "session" or "system"
- Example
DBus=session;org.kde.be.shell;/Desktop;org.kde.be.shell;toggleDesktopShown
- Exec (String)
Any kind of executable command, whether by full path or an executable in $PATH
Right now, environment setting is not supported, but you can pass any kfm compliant protocol.
- Examples
Exec=konqueror
Exec=kwrite ~/.kde/share/config/be.shell
Exec=gg:"BE::Shell"
- TipLabel (Label)
Another Label that will serve as tooltip for this one (eg. to show more detailed informations)
Alternatively:
- Image (String)
Path to a static image to display.
Alternatively:
- Anicon (String)
Path to an animated icon (gif and mng should work) to display.
- AniconLoop (int)
How often to loop the animation:
-2: Default (default)
-1: Infinite
0: Don't start automatically
[1-]: Fixed count
- AniconStartOnShow (bool)
Whether to run the animation whenever the label becomes visible
Alternatively:
- FiFo (String)
An absolute (/tmp/my.fifo) path to a named pipe aka "FiFo" (see man:mkfifo)
This allows you to write from many sources into one file and have the output appear in the label immediately. It also allows you to omit expensive polling (executing a command or opening a file)
Eventually:
- PermittedCommands (StringList)
WARNING
This will allow you to execute processes by clicking a link in the label text.
"Active=true" is required as well.
However only commands explicitly, exactly and fully stated here will be executed.
You should be very careful about what you permit here and rather only for labels where you are sure about the text content.
The link has to be of the form (and this entry needs to contain "xterm")
- <a href="exec:xterm">Launch xterm</a>
-
Type=Clock
- Pattern (you can use the GUI to set this)
This matches the QDateTime pattern. A reference is also included in the GUI. NOTICE Qt's html subset is supported, but must be single quoted to not mess up with the QDateTime pattern.
A detailed explanation of the date & time format can be found in the QDateTime API
- Example
'\<html>\<b>'hh:mm'\</b>\<small>'ss'\</small>\</html>'
- CountDownPattern (String:<adjusted "Pattern"="">)
-
Type=GlobalMenu
- WindowMenus (bool:true)
Whether the window menus should be moved here, otherwise it's just a static menubar like in Gnome2
The global menu supports a customizable menu, found in ~/.kde/share/apps/be.shell/MainMenu.xml.
A detailed description of the format can be found here
Notice:
If you have issues with the menubar disappearing on small panels, adjust its paddings via css, see the Global Menu section
-
Type=Infocenter
An icon that pulses on incoming notifications and on click shows them
-
Type=MediaTray
- *_actions
- *_commands
"iPod", "VideoDisc", "AudioDisc", "WritableDisc", "Camera"
Allows you to set up a list of commands connected to this particular device type.
- Example
AudioDisc_actions=Play with Xine,Rip with Audex
AudioDisc_commands=xine cdda:%@/,audex
-
Type=Sessionbutton
- FullName (you can use the GUI to set this)
Whether to show your real name or the UNIX account
- Mode (you can use the GUI to set this)
The Button mode as in Type=Button
NOTICE The user icon can be configured eg. via the KDM kcm and is in doubt ~/.face.icon (usually a png, regardless of the suffix - just copy a png there)
-
Type=Systray
- FallbackIcons (you can use the GUI to set this)
A comma separated list of NETWM class names
BE::Shell uses a trick to display alpha blended, skinnable systray icons:
The real icon -which is part of a foreign application- is hidden and the visible BE:Shell internal icon just forwards mouse and keyboard events there.
This can however cause "trouble" for some applications (e.g. it's this way not possible to reflect visual changes in the original icon, like KMails "New mail" count)
If you want or need the full behaviour of the original icon, append its applicaion class here.
This is the NETWM classname - in doubt: the systray has a config dialog where you can un/check applications known to the systray (because they've been running at the current session)
- NastyIcons (you can use the GUI to set this)
Some systray icons are just useless in everyday action, add them here (see above) to not see them.
The visibility of "nasty" icons can be altered by the systray entry in the BE::Shell config popup.
- Spacing (integer:2)
The space betwenn the icons in the systray.
-
Type=Taskbar
- AlwaysGroup (you can use the GUI to set this)
- ButtonMode (you can use the GUI to set this)
- OnlyCurrentDesk (you can use the GUI to set this)
- OnlyCurrentScreen (you can use the GUI to set this)
- OnlyMinimized (you can use the GUI to set this)
- Buttons (StringList)
List of button applets to allow sticky tasks
- Spacing (int:2)
The space between the buttons and the buttons and the taskbar (this cannot be configured by Qss)
-
Type=Volume
A simple frontend for amixer (the very basic alsa CLI mixer)
It also provides global shortcuts.
Notice that muting is "faked" - i.e. the value is set to 0 and the original value stored internally.
The reason is that some soundchips (including my Audigy) or maybe just alsa do not provide muting for the Master channel.
- Channel (String:"Master")
The channel to operate on. Default is "Master". For a full list, query "amixer scontrols"
- MixerCommand (String:"kmix")
The command to launch when rightclicking. Default is "kmix", but maybe you want to try "xterm -e alsamixer" instead :)
- Step (Integer:5)
How much percent to increase or decrease on mousewheel events. Default is 5. Values below 1 are invalid (and become 5)
- PollInterval (Integer:5000)
Delay in ms between checking the current volume (might be set by other applications as kmixer)
Default is 5000.
"0" will disable polling (but the control will read the right value whenever it's used)
-
Type=WmCtrl
Window buttons in the panel
- Buttons (String:"X_IA")
The button layout. Supported chars:
- X: Close
- I: Minimize
- A: Maximize
- S: Toggle on all desktops
- F: Keep above
- B: Keep below
- L: Shade
- +: Move & Resize windows
- E: Trigger present windows (aka Exposé) effect (requires effect active in kwin)
- _: 4px empty space
- OnlyMaximized (Bool:false)
Whether buttons (except present windows & moveresize) should only be enabled when a maximized window has the focus.
- HideDisabled (Bool:false)
Wether buttons should be hidden if disabled.
In addition, you can specify an icon name of every button by assigning it to the button char
- Example
X=application-exit
-
Type=Battery
Battery applet in the panel
- FillIsCharge (bool:true)
Wether the inner part is the full section or the empty section.
-
Type=Meter
A Meter ;-)
- PollInterval (Integer:1000)
Delay between updating values in ms
- Label (String)
A Label to identify the Meter.
- Start (Integer:150)
The start angle in polar coordinates.
- Span (Integer:-120)
The span angle in polar coordinates.
- HintRange (Bool:false)
Whether to paint a translucent complete arc below the outer indicator.
Polar coordinates mean that 0° is at the 3 o'clock position and couting happens COUNTER clockwise, eg. if you wanted a 3/4 circle starting on the left and proceeding clockwise, the correct angles where 180 and -270
-
Type=CpuMeter
A cpu load indicator.
- Cpu (String:"cpu")
The cpu to monitor.
Either "cpu" (all) or cpu0, cpu1, cpu2, ...
-
Type=RamMeter
A memory load indicator.
- Mode (String:"Used")
How the used/free memory is counted.
- "Used" (default): The allocated memory
- "NonInactive": Allocated memory that's not been unused for a long time
- "Active": Allocated memory that's really actively used and cannot easily be freed
-
Type=NetMeter
A network load indicator.
- Device (String:"eth0")
The network device. Typically (and by default) "eth0"
- MaxDown
The downstream speed you pay for
- MaxUp
The upstream speed you pay for
NOTICE: Network throughput is traditionally and unlike filesize measured in Bits (ie. kilo == 1000 and not 210 == 1024)
So if you pay for 20 MBit/s downstream the proper number is 20000 and not 20480!
-
Type=TimeMeter
An indicator for the current time, aka. yac - yet another clock
- APM (Bool:true)
Whether the hour ring has 12 or 24 ticks
- Digits (Bool:true)
Whether you can read an analogue clock ;-)
-
Type=HddMeter
An indicator for Harddisk I/O (read/write speed)
- Device (String:"sda")
The harddisk (not! partition! - disk!) to monitor
- MaxRead (Integer:0)
- MaxWrite (Integer:0)
Override the maximum I/O speeds of the device (by default determined by "fastest so far")
-
Type=Stretch
A spacer between applets.