Config - felixfung/skippy-xd GitHub Wiki
Youtube video provides a walkthrough of the config file:
Starting version 0.9.0, skippy-xd allows reloading the config file with a new path!
Use the --config
and --config-reload
command line options to specify the config file path, as follows:
- When used with
--start-daemon
option, the daemon reads the config file from the specified path - When
skippy-xd --config config_path
is invoked, it tells the daemon to reload the config file at the new path - When
skippy-xd --config-reload
is invoked, it tells the daemon to reload the config file at the existing path -
skippy-xd --config
andskippy-xd --config-reload
may be used in conjunction with skippy-xd invocation to achieve immediate effect, e.g.skippy-xd --config config_path --expose
.
# Copy this to ~/.config/skippy-xd/skippy-xd.rc and edit it to your liking
#
# File Syntax:
# Comments must be on their own seperate lines that start with a #
#
# colors can be anything XAllocNamedColor can handle
# (like "black" or "#000000")
#
# fonts are Xft font descriptions
#
# booleans are "true" or anything but "true" (-> false)
#
# opacity is an integer in the range of 0-255
#
# For system config options, stop and then start new skippy daemon
# To reload config options
# All other config options can be reloaded on the fly
# With skippy-xd --config or skippy-xd --config-reload
[system]
# When focus is stolen off skippy-xd
# E.g. a window is newly created during skippy-xd activation
# Focus back on skippy-xd
enforceFocus = true
# File path for client-to-daemon communication
daemonPath = /tmp/skippy-xd-fifo
# File path for daemon-to-client communication
clientPath = /tmp/skippy-xd-fofi
# Frequency to update pixmaps
updateFreq = 60.0
# This queries the list of windows
# Depending on your window manager, you may want to choose between
# XQueryTree, _NET_CLIENT_LIST, _WIN_CLIENT_LIST
# If you see missing windows, or windows that you did not expect,
# Or even crashes,
# Try a different option
clientList = _NET_CLIENT_LIST
# when compositors such as picom are not used
# turn on pseudo-transparency
pseudoTrans = true
[layout]
# Wait time before displaying switch previews
switchWaitDuration = 100
# Set = 0 to switch off animations
# For switch, there is never animation
animationDuration = 200
# Refresh rate during animation
animationRefresh = 60
# Relative minimal distance between windows
distance = 50
# xd layout is the switch layout
# boxy layout uses box heuristics (legacy)
# cosmos layout uses physics based modeling
exposeLayout = cosmos
# Whether to show the window bigger than its original size
allowUpscale = false
[display]
# Shows _NET_WM_WINDOW_TYPE_DESKTOP windows
# which are usually wallpaper/background related
showDesktop = true
# Background when skippy-xd is activated
# To display background wallpaper:
# background = /home/richard/screenshots/256.png
# For tinted background:
# background = #00000055
# For transparent background:
# background = None
background = #00000055
# During paging mode, preserve original desktop appearance
# From the background being applied
preservePages = true
# Move the mouse cursor when skippy is activated
movePointer = false
# Whether to display window frames
includeFrame = true
# Show window previews with rounded corners,
# with corner radius in pixels
cornerRadius = 0
# Whether to show icons on live preview thumbnails
icon = true
iconPlace = left left
iconSize = 48
[filler]
tint = #333333
iconPlace = mid mid
iconSize = 48
[normal]
tint = black
tintOpacity = 0
opacity = 255
[highlight]
tint = #444444
tintOpacity = 50
opacity = 255
[shadow]
tint = #040404
tintOpacity = 0
opacity = 160
[panel]
show = true
backgroundTinting = true
reserveSpace = true
[tooltip]
show = true
offsetX = 0
offsetY = -5
width = 0.8
border = #0e0e0e
background = #202020
opacity = 128
text = white
textShadow = black
font = fixed-11:weight=bold
[filter]
# in Xinerama multi-monitor setting, whether to filter windows by Xinerama monitor
showOnlyCurrentMonitor = false
# display only windows on the current XScreen
showOnlyCurrentScreen = true
# Choose whether to show shadow windows:
# windows that are minimized, shaded, or on other virtual desktops
showShadow = true
# Choose whether to always display sticky windows
# Switch shows sticky windows regardless of configuration
showSticky = true
# For switch and expose,
# Whether to limit window select on current virtual desktop
# Or allow window selection on all virtual desktops
# Paging always show all desktops
switchShowAllDesktops = false
exposeShowAllDesktops = false
# Whether the filtering of window class
# Will be persistent across activations
persistentFiltering = false
[bindings]
# After this time, pivot "locks" into toggle mode
# And the pivot key no longer needs to be held
# Set to 0 to disable pivot locking
pivotLockingTime = 0
# key* = is a list of valid XWindows KeySym identifiers, case
# sensitive and <space> seperated list. Run the program 'xev' to find them.
keysUp = Up
keysDown = Down
keysLeft = Left
keysRight = Right
keysSelect = Return space
keysCancel = Escape
keysNext = n
keysPrev = p
keysIconify = 1
keysShade = 2
keysClose = 3
# mouse button bindings, options include
# "no": do nothing
# "focus": select window
# "iconify": minimize window
# "shade-ewmh": toggle window shade
# "close-icccm": close window with ICCCM method
# "close-ewmh": lcose window with EWMH method
# "destroy": forcefully destroy window
# "keysPrev": focus on previous window
# "keysNext": focus on next window
miwMouse1 = focus
miwMouse2 = close-ewmh
miwMouse3 = iconify
miwMouse4 = keysNext
miwMouse5 = keysPrev
This option specifies how/what skippy-xd queries xlib or the window manager, regarding the list of windows, in order of z-order.
If you see that skippy-xd is displaying windows that you do not expect to see, or that skippy-xd is missing windows, or the z-order is wrong, or even crashes, please try XQueryTree
, _NET_CLIENT_LIST
, or _WIN_CLIENT_LIST
.
Please see https://github.com/felixfung/skippy-xd/wiki/Adoption#compatible-desktop-environmentswindow-managers for known solutions in your environment.
If you use standalone X compositors such as picom, skippy-xd can use these compositors to handle transparency. Otherwise, turn on pseudoTrans option for pseudo transparency.
In general, pseudo transparency consumes less resources and gives smoother skippy-xd animation, whereas real transparency offered by picom or similar may offer more visual cues during animation.
Some compositors, e.g. KDE compositor, are not compatible with skippy-xd transparency and requires using pseudo transparency.
Display options for different windows.
Highlighted windows are the one to he selected.
Shadow windows are those that are "unmapped": those that are minimized, shaded, or on different virtual desktops, as managed by your window manager.
Filler windows are those never seen since the start of skippy-xd daemon, and are displayed as boxes with icons.
All other windows are normal.
Starting version 0.8.0, skippy-xd can show panels, or docked windows! All windows of type _NET_WM_WINDOW_TYPE_DOCK
can be shown.
You may tint the panels with backgroundTinting
, to be use in conjunction with the background
, so that the panel tints together with the background.
When reserveSpace
is set, the active desktop geometry would be constrained within the panels. This is in contrast to windows of type _NET_WM_WINDOW_TYPE_DESKTOP
, which do not have this option and are always subject to being covered.
Starting version 0.8.0, skippy-xd supports tooltip to show the window name of all displayed window.
Starting version 0.9, skippy-xd allows showing only certain window classes!
When you apply filters, enabling exposeShowAllDesktops
may become valuable for your use case. This is particularly true if you are invoking skippy-xd through your custom script.
By default, the filtering is reversed after each invocation. To keep the filter persistent, enable the filter/persistentFiltering
config option.
Configure keyboard keys to change highlighted windows (e.g. highlight the window left of current one), as well as mouse click actions (e.g. select that window).
Multiple key entries can be set up for each action, separated by space
.
See the sample config file on valid key options and modifiers. Alternatively use xev
program for valid key options and modifiers. This is case sensitive.