Please enable JavaScript.
Coggle requires JavaScript to display documents.
dwm patches (last tallied 2024-09-27) - Coggle Diagram
dwm patches
(last tallied 2024-09-27)
presentation
layout
arrangement
centeredmaster
The master area is centered with stack clients placed on the sides
columns
As tile layout, but clients in master area are arranged in columns
deck
master + monocle stack layout
fibonacci
Adds fibonacci spiral and dwindle layouts
flextile
Replaces the tile layout with a more flexible version
flextile-deluxe
A layout that expands on flextile adding more features
bottomstack
Stack clients are placed below the master
gappless grid
A grid layout that leaves no gaps
gridmode
Clients are arranged in a grid of equal sizes
horizontal grid
Clients are arranged in a grid with two rows
leftstack
Swaps the master and stack areas of the tile layout
nrowgrid
Grid layout where the number of rows is controlled using nmaster
rmaster
Changes the tile layout so that master and stack areas can swap places
singular borders
Makes client borders overlap (tile layout hack)
smartborders
Remove the client border when there is only one window visible (tile layout hack)
tab
A tabbed layout (monocle hack)
tatami
Clients are arranged like tatami tiles
three column
A three column layout similar to that of the centered master
xtile
Provides 16 possible layouts controlled by attributes that determine how master and stack areas are arranged
sxp layout
Enables custom layouts using simplified s-expressions
stairs
Similar to the deck layout, but clients in the stack area are arranged like stairs
tilewide
As tile layout, but clients in master area are arranged in columns (duplicate of the columns patch)
horizontal
Arranges clients as columns; same as the col(umns) layout just without nmaster support
functionality
cyclelayouts
Cycle through all available layouts
resetlayout
Resets the layout and mfact if there is only one client visible
resetnmaster
Helper function to set nmaster back to 1
stackmfact
Vertically resize clients in the stack
cfacts
A client's size compared to others in the stack is determined by weight
togglelayout
Toggle layout using the usual layout keybindings
nmaxmaster
Limits the number of clients in the master area
layoutscroll
Cycle through all available layouts
layoutmonitorrules
Adds support for automatic adjustment of mfact/nmaster based on the resolution of the monitor
defaultlayoutpermonitor
Allows for set a default layout on a per monitor basis
horizontal-vertical-i3
Changes nmaster to a toggle of 1 or 0 clients in the master area
zeroastag
Modifies the 0 keybinding to make it a regular tag.
autoswitch
Automatically switch to monocle layout after opening N windows
gaps
fullgaps
Add even gaps between client windows
gaps
Adds inner gaps between clients
ru gaps
Adds gaps that can be changed during runtime
tilegap
Adds gaps for the tile layout
uselessgap
Adds even gaps between clients and border (resizeclient hack)
vanitygaps
Control inner, outer, horizontal and vertical gaps independently
columngaps
Adds gaps for the columns layout
functionalgaps
Combines fullgaps with singular borders and noborder patches
bar
modules
tags
hide vacant tags
Avoids drawing tags that are not occupied by any clients
nametag
Allows for the names of tags to be changed during runtime
alttagsdecoration
Tags change when occupied by clients
tagicons
Combines and expands on multiple tag patches
monitortags
Define tag icons on a per-monitor basis
powerline
Adds powerline status and powerline tags
alternativetags
Switch between two sets of tags
rainbowtags
Each tag has a unique color when selected
blanktags
Replaces tag numbers with squares
taglabels
Includes the master client's name in the tag
tag-previews
Show a preview when hovering the mouse cursor over a tag
tagcolorscheme
Removes indicators in favour of tag colour schemes
centered tags
Places the tags section in the middle of the bar and removes the window title
indicators
activetagindicatorbar
Changes client indicator to a bar above the tag
clientindicators
Each tag icon is overlayed with dots representing the number of clients
stickyindicator
Adds a special indicator for sticky clients
underlinetags
Underline the active or all tags
tagcolorscheme
Removes indicators in favour of tag colour schemes
titles
bartabgroups
Window titles are arranged in groups (master, stack, floating)
awesomebar
All window titles are evenly shown and are clickable
centeredwindowname
Centers the client's name on the bar
centretitle
Centers the client's name on the bar (duplicate of centeredwindowtitle)
fancybar
All window titles are shown
notitle
Removes the display of the client title from the bar
winicon
Adds window icons next to the window title(s) in the bar
truecenteredtitle
Centers the title within the area of the bar designated for the window title
dash_above_activeWindow
Adds a line above the active window title instead of changing the background colour
status
dualstatus
Enables an extra status bar
extrabar
Enables an extra status bar
pango
Adds support for pango markup for status messages
splitstatus
Adds a center status (replacing window title)
staticstatus
Status is shown on a specific monitor, rather than following focus
statusallmons
The status is shown on all monitors, rather than following focus
status2d
Enables colors and rectangle drawing in the status area
statuscmd
Adds click functionality for the status
statuscolors
Adds support for colors in the status (based on predefined color schemes)
stdin
Allows for status text to be read from standard in
dwmblocks
(
2
)
Adds support for clickable dwmblocks via statuscmd
powerline
Adds powerline status and powerline tags
statusbarfont
Allows for a separate font to be used for the status
statusmon
Status is shown on a specific monitor, rather than following focus (duplicate of staticstatus)
integrated-status-text
Integrates dwmblocks implementation within dwm itself
sgrstatus
Allows the use of CSI SGR escape sequences to change text formatting
mainmon
Status is shown on a specific monitor, rather than following focus
(duplicate of staticstatus and statusmon)
misc
statusbutton
Adds a clickable button on the left hand side of the bar
systray
Adds a simple systray for the dwm bar
taggrid
Presents tags in a grid
barmodules
Rewrites the bar to be more modular
barconfig
Allows for the bar layout to be controlled using config
launcher-colors
Adds program launcher icons that can be assigned individual colors
launcher
Command shortcuts accessible directly from the bar
layout
leftlayout
Moves the layout symbol to the left hand side of the bar
layoutmenu
Shell script providing a layout context menu (using xmenu)
monocle count
Prints the number of clients next to the monocle layout symbol
monoclesymbol
Always show monocle symbol (no client count)
rearrangebar
(a.k.a. rightlayout)
Moves the layout symbol to the right hand side of the bar
clientmonoclesymbol
Adds alternative symbols for monocle layout depending on the number of clients
style
bar height
Allows absolute height of the bar to be user defined
barpadding
Adds space between the bar and the edge of the screen
alpha
Enables translucent bar while keeping text opaque
colorbar
Specify foreground and background color for each bar element
statuspadding
Allows for adjustments to the bar height and the left/right padding
bar border
Adds a border around the bar similar to that of clients
bidi
Adds support for right-to-left (RTL) languages such as Farsi, Arabic or Hebrew.
unicode-ellipsis
Use the unicode ellipsis (ā¦) rather than three periods for long text
baratanyedge
Allows for the bar to be rotated and become a vertical bar
statusbarfont
Use a separate font for the status text
external
anybar
Allows dwm to manage external bars
script tags
Removes the drawing of the bar in favour of piping tag states to a FIFO file which can be read by external bars
xfce4-panel
Misguided attempt at integrating the xfce4-panel into dwm
interaction
holdbar
Only show the bar when a designated key is held down
bartoggle
Allows toggling of individual modules on the bar
toggletopbar
Allows toggling between top and bottom bar
tagfun
Re-use tags as function triggers invoked with middle mouse button
togglebartag
Allows for the bar to be toggled on each tag separately (without pertag)
colors
scheme switch
Allows for cycling through multiple color schemes
showselmon
Unselected monitors use inverted colors in the bar to make the selected monitor stand out
statuscolors
Adds support for colors in the status (based on predefined color schemes)
titlecolor
Adds a new color scheme used by the window title
urgentborder
Adds a new color scheme for urgent windows
vtcolors
Makes dwm to read colors from the linux virtual console
xrdb
Allows dwm to read colors from xrdb (.Xresources) at run time
xresources
Reads colors and additional settings from Xresources
xtheme
Use compile time scripts to change colors
win31theme
Instructions for how to make config changes to make dwm look like Windows 3.1
activemonitor
Always show which monitor is active / selected regardless of whether there are clients present
colorschemes
Define multiple color schemes and cycle between them
autodarkmode
Have dwm switch between a light and dark mode based on the presence of a file in your home directory
effects
preview-all-windows
A full-screen ExposƩ-style standalone task switcher similar to
skippy-xd
system
start / stop
cmdcustomise
Adds command line options to specify font and color settings
cool autostart
Specify applications that start up automatically with dwm
onlyquitonenmpty
Only allow dwm to be exited if the number of windows is less than criteria
restartsig
Allows dwm to be restarted
selfrestart
Allows dwm to be restarted (allegedly)
setstatus
Adds a command line option to set dwm status (root name)
autostart
Have dwm run designated shell scripts on startup
spawnprograms
Have dwm spawn predefined programs on startup
environmentvars
Read terminal emulator from the TERMINAL environment variable instead of hardcoding it in the configuration file
doublepressquit
Keybinding to quit dwm must be pressed twice to quit
preserveonrestart
Makes clients retain their tags following restart
restoreafterrestart
Makes clients retain their tags following restart
quitprompt
Replaces the default quit behaviour with a dmenu prompt
exitmenu
Integrated menu to exit dwm
autostarttags
Allows dwm to execute commands on specific tags during startup (bypasses rules)
dmenu
dmenumatchtop
Makes dmenu position respect
topbar
setting
nodmenu
Removes hardcoded dmenu integration from dwm
desktoponly
Configuration change to make dwm use a launcher other than dmenu_run
control
dwmfifo
Send commands to dwm via a FIFO file
fsignal
Send "fake signals" to dwm using xsetroot name
dwmc
Shell script using fsignal to communicate with dwm
ipc
Control dwm through a socket
screen
freespace
Reserve space at the borders of the screen to give room to external panels
insets
Reserve space at the borders of the screen to give room to external panels
pertag
Layout, mfact, nmaster, etc. is controlled on a per tag basis
single tagset
A single set of tags are shared by all monitors (rather than one tagset per monitor)
monitorrules
Preconfigure what layouts are used on what monitors / tags
sortscreens
(
2
)
Sorts screens such that the leftmost screen is monitor 0
taglayouts
Sets default layout for each tag (depends on pertag)
multimon
Collection of patches for multi-monitor setups
bsd
pledge
Restrict system operations on OpenBSD using pledge
interaction
keyboard
combo
Select multiple tags at once
colemak keys
Changes default keybindings to match the colemak keyboard layout
keychain
Chain multiple keybindings together
keycodes
Use keycodes (e.g. 36) instead of keysyms (e.g. XK_Return)
keymodes
Introduces different key modes (like in vim) for triggering shortcuts
keypressrelease
Keybindings can trigger on both KeyPress and KeyRelease
mdpcontrol
Control mdp (Music Player Daemon) via keybindings
multikey
Trigger a single key combination multiple times for different outcomes
pwkl
Adds per-window keyboard layout support
xkb
Remembers the xkb layout per client
on empty keys
Enables special keybindings for empty tags
azerty
Use appropriate shortcuts for azerty keyboards
graballkeycodes
Increases the amount of symbolic keys that can be bound in config.h
keychord
Allows for the mapping of a sequence of key strokes for keybindings
alt-tab
Adds alt-tab functionality to dwm allowing cycling through open windows
alt-tab-class
Variant of the alt-tab patch that additionally allows the user to alt-tab between windows that share the same class
setxkbgroup
Allows keyboard layout to be switched using keyboard shortcuts
alttab2
Simplified variant of the alt-tab patch that depends on winview
mouse
gestures
Adds support for simple mouse gestures
warp
Warps the mouse cursor to the currently focused window
dragmfact
Lets you change the split between master and tile using the mouse
dragmfact (smooth)
Variant of dragmfact providing direct feedback
dragcfact
Lets you change a client's cfact using the mouse
placemouse
Lets you change a client's position in the stack using the mouse
riodraw
Draw the area on the screen where a window is to spawn (or resize)
cursorwarp
Warps the mouse cursor when changing windows and/or monitors
banish
Automatically hides the mouse cursor when keyboard is used
focusfollowmouse
Mouse cursor determines what window gets focus when changing tags
tiledmove
Move tiled clients around the stack using the mouse, similar to placemouse
autoraise-windows
Automatically raise floating windows on hover
torus
Allows the mouse cursor wrap around the screen
tags
focus adjacent tag
Enables focusing on the tag on the immediate right or left of the currently focused tag
emptyview
Have dwm start with no tag selected
next prev tag
Move to the next or previuos tag
reorganizetags
Shift all clients per tag to leftmost unoccupied tags
swaptags
Swaps the clients between two tags
tagall
Move all (or only floating) windows from one tag to another
tagintostack
Clients attach into the stack area when a new tag is toggled into view leaving master area unchanged
tagothermonitor
Move a window to a specific tag on an adjacent monitor
viewontag
Follow a window to the tag it is being moved to
winview
Switch to a client's tag from the all-window view (MOD+0)
shiftviewclients
Cycle through tags that have clients (skips empty tags)
shiftview
Cycle through tags with a circular shift
tagallmon
Moves all visible clients on one monitor to an adjacent monitor
tagswapmon
Swaps all visible clients on one monitor with all visible clients on an adjacent monitor
toggletag
Toggle tags using the same tag shortcut (e.g. MOD+4)
accessnthmonitor
Focus on, or send windows to, a specific monitor
goback
Go back to the previously active tag (across monitors)
rotatetags
Rotates tags left / right. Duplicate of the shiftview patch.
relativecontrols
(
2
)
Allows movement between tags relative to the currently selected tag
sendmoncenter
Floating clients sent to an adjacent monitor will be centered
shift-tools
Compilation of shiftview, shiftviewclients, focusadjacenttag patches and more
locktagsfor
Locks the currently selected tags for a duration (prevents changing tags)
viewonrulestag
Follow a window to the tag it is assigned to, but only if tags are set via client rules. Alternative to viewontag and switchtotag patches.
switch all monitor tags
Option to switch the selected tags on all monitors in unison. Also see the desktop patch.
desktop
Makes all monitors view the same tag, giving the impression that the tag spans all monitors and that there are only nine tags
tagshift
Cycle through tags with a circular shift. Duplicates the shiftview patch and functionality of shift-tools.
stack
inplacerotate
Changes order of clients within a given area (master, stack)
mark
Focus or swap between two clients (current + marked)
movestack
Move clients around the stack and swap them with the master
push
Move (push) clients up and down the stack
rotatestack
Rotates the entire stack
stacker
Keybindings to focus on, or push, any client in the stack
swapfocus
Single shortcut to focus on the previous client
transfer
Let's you move clients between master and stack areas while incrementing or decrementing nmaster respectively
transferall
Swaps all clients between the master and stack areas
zoomswap
Swaps the current and master window leaving other clients in place
zoomfloating
Allows floating windows to be (force tiled) and zoomed
clients per tag
Adds a limit on the number of visible clients per tag
masterstacker
Variant of the stacker patch that differentiates between master and stack areas
window management
EWMH
_IS_FLOATING
Sets the _IS_FLOATING property for clients
windowrolerule
Allows the WM_WINDOW_ROLE to be taken into account for rule filtering
netclientliststacking
Adds _NET_CLIENT_LIST_STACKING to dwm
ewmhtags
Adds EWMH support for _NET_NUMBER_OF_DESKTOPS, _NET_CURRENT_DESKTOP, _NET_DESKTOP_NAMES, and _NET_DESKTOP_VIEWPORT
default transparency
Sets the _NET_WM_WINDOW_OPACITY for new clients
decoration hints
Makes dwm respect _MOTIF_WM_HINTS to not draw borders around windows that request it
current desktop
Sets _NET_NUMBER_OF_DESKTOPS and _NET_CURRENT_DESKTOP
clientopacity
Allows opacity to be specified on a per-client basis
qubesdecorations
Allows dwm to read QubesOS specific window properties for presentation purposes
client
fullscreen
fakefullscreen
Only allow clients to go fullscreen within the space currently given to them
fullscreen
Applies monocle layout and hides the bar
selectivefakefullscreen
Adds rule indicating whether a client should fake fullscreen or not
fakefullscreenclient
Enable fake fullscreen on a per client basis
fullscreen compilation
Collection of patches aimed at solving most fullscreen issues
losefullscreen
Fullscreen windows lose fullscreen when they lose focus
tagmonfixfs
Allows a fullscreen window to be moved to an adjacent monitor
togglefullscreen
Use a single keybinding to toggle fullscreen
actualfullscreen
Toggles fullscreen for a window
ratiofullscreen
Intended for old games that do not handle fullscreen correctly thus not occupying the entire monitor
focusfullscreen
Allows you to cycle focus through different clients while in actual fullscreen
preventfousshift
Fullscreen windows lose fullscreen when new window is spawned (duplicate of losefullscreen)
functionality
alwaysontop
Clients can be toggled to always be shown on top of others
cropwindows
Creates cropped views of existing windows
killunsel
Kill all visible clients except the selected one
save floats
Saves and restores size and position of floating windows
sizehints
Makes dwm obey even soft sizehints for new clients
steam
Hacks to make the Steam client misbehave less
sticky
Make clients sticky (visible on all tags)
alwayscenter
Forcing all floating windows to be centered on the screen
swallow
Enables "window swallowing" as known from Plan 9's rio
unfloatvisible
Forces all floating clients to be tiled, optionally sets a layout
dynamicswallow
Like swallow, but with manual control over which windows swallows what
togglefloatingcenter
Tiled windows that are toggled to be floating will be centered
swallow-tmux
Patch for the swallow patch to enable swallowing of terminals within tmux
bulkill
Adds options to kill all visible windows, or all but selected like killunsel
move / resize
aspectresize
Resize windows while keeping the aspect ratio constant
autoresize
Allows windows to be resized even if they are not visible
exresize
Allows changing the size and position of floating windows using the keyboard
maximize
Helper functions for maximizing floating clients horizontally and vertically
move on tagmon
Moves floating windows if their monitor changes (assumes monitors of equal size)
moveplace
Position floating windows at 9 predefined positions N, NW, W, etc.
moveresize
Move and resize clients using keyboard shortcuts
movethrow
Move windows to the edge of the screen in any four directions
movetoedge
Position floating windows at 9 predefined positions
resizecorners
Resize windows from any corner, not just the bottom right
resizepoint
Resize windows from any point (cursor won't warp to corner)
tapresize
Allows resizing of windows using a touchpad
floatpos
Provides comprehensive ways of positioning floating windows
placedir
Move tiled a window in a given direction (up, down, right, left)
movecenter
Adds a keybinding to center focused windows
movekeyboard
Move floating windows on the x and y axis using the keyboard
refreshrate
Removes the frame rate restriction for move and resize operations
resizehere
Resize windows from any point (cursor won't warp to corner)
foreground
Have tiled windows that are in the foreground of other windows, (e.g. like centered floating master)
attach
attachabove
Clients attach above (before) the selected client
attachaside
Clients attaches after the first master
attachasideandbelow
Combination between attachaside and attachbelow
attachbelow
Clients attach below (after) the selected client
attachbottom
Clients are attached at the end of the stack
attachdirection
Combination of attachabove, -aside, -below, -bottom and -top
attachtop
Clients are attached at the top of the stack
rules
allowkillrule
Avoid clients from being killed using killclient (duplicate of ispermannet)
canfocusrule
Prevent clients from receiving focus
center
Control which floating clients are initially centered on the screen
clientopacity
Allows opacity to be specified on a per-client basis
floatrules
Allow rules for absolute positioning of floating clients
ispermanent
Avoid clients from being killed using killclient
selectivefakefullscreen
Adds rule indicating whether a client should fake fullscreen or not
sizehints
Adds a rule making dwm obey even soft sizehints for new clients
switchtotag
Adds a rule option to switch to the designated tag when a window opens, then switch back when it closes
xkb
Adds a rule to specify an xkb layout per client
floatpos
Allows for monitor relative or absolute positioning of floating clients
switchtag
Adds a rule option to switch to, or enable, the designated tag when a window opens, then optionally switch back when it closes
windowrolerule
Allows the WM_WINDOW_ROLE to be taken into account for rule filtering
notallowed
Automatically kills windows that are marked as not allowed
centerfirstwindow
Rule to center the window if it is the only visible window
unmanaged
Adds a rule option indicating that the window is not to be managed by the window manager
rulerefresher
Allows client rules to be run again when a window changes name
ignore transient windows
Adds a client rule option to ignore transient windows as a workaround for applications that do not behave correctly
qubesrules
Allows QubesOS specific window properties _QUBES_LABEL and _QUBES_VMNAME to be used for rule matching
borderrule
Allows client border size to be specified via client rules
clientresizehints
Allows for whether to respect size hints or not to be controlled on a per client basis
style / border
float border color
Allows a different border color to be specified for floating windows
noborder
Remove the client border when there is only one window visible
removeborder
Remove the client border when there is only one window visible
setborderpx
Change a client's border pixels during runtime
singular borders
Makes client borders overlap (tile layout hack)
smartborders
Remove the client border when there is only one window visible (tile layout hack)
urgentborder
Adds a new color scheme for urgent windows
no transparent borders
(
2
)
Makes borders opaque despite transparency set by compositors
roundedcorners
Decorates client windows with rounded corners
hideborder
Changes the border color of active client to the background color
fadeinactive
Canges the opacity of inactive windows
noborderflicker
Defers setting the window border to avoid flickering when changing focus
floatborderwidth
Allows tiled and floating windows have different border sizes
toggleborder
Toggles the display of the border for the selected client on and off
windowmap
Makes windows unmap and map when changing tags to achieve fading effects when using a compositor
focus
focusmaster
Switch focus to the master client
focusonclick
Removes sloppy focus in favour of explicit click to focus
focusonnetactive
Allow clients sending _NET_ACTIVE_WINDOW requests to be focused (rather than setting urgency bit)
focusurgent
Change focus to the client that is marked as urgent
switchcol
Switch focus between the master and stack areas
focusdir
Focus on clients in a given direction (up, down, left, right)
sendmon keepfocus
Allow clients to keep focus when being sent to another monitor
destroyfocus
Focus on the client under the mouse cursor rather than the next in the stack when a window is closed
canfocusfloating
Allows disabling focus on floating clients
killfocusnext
Focus on the next client when killing a client
windowfollow
Makes view follow a window when it is moved to another tag or monitor (toggleable)
focusfollowmouse
Mouse cursor determines what window gets focus when changing tags
focusbynum
Duplicate of the stacker patch that only supports focus change
stacker
Keybindings to focus on, or push, any client in the stack
fixmultimon
Workaround patch to avoid window under the mouse cursor to get input focus when operating on another monitor using keybindings
focusvisibletagstacks
Cycle through visible windows across monitors
cyclewindows
Change focus between windows of the same class
spawn
scratchpads
scratchpad
Adds a single scratchpad application
scratchpads
Enables multiple scratchpads via special tags
namedscratchpads
Allows for the creation of multiple named scratchpad windows
dynamicscratchpads
(
2
)
A scratchpad where clients are stacked (lifo).
multimonitorscratchpads
A scratchpad implementation for multiple monitors
renamedscratchpads
An evolution of the namedscratchpads patch
multipledynamicscratchpads
Allows the spawning and restoring of multiple floating windows
scratchtagwins
(
2
)
Scratchpad tags support for named scratchpads
spawn cwd
Spawned applications inherit selected client's working directory
ssh aware spawn
Spawn a new terminal that try to ssh to same server as currently selected terminal
riodraw
Draw the area on the screen where a window is to spawn (or resize)
spawntag
Middle-click on tags to spawn predefined programs
default tag applications
Spawn predefined programs depending on what tag is active
spawnprograms
Have dwm spawn predefined programs on startup
tagspawn
Spawn predefined programs depending on what tags are active
commands
goatcmd
Adds a spawn command to play goat windows on the fly
rebootcmd
Adds a spawn command to reboot your computer
shutdowncmd
Adds a spawn command to shut down your computer