dwm/patches.def.h

897 lines
34 KiB
C
Raw Normal View History

2019-09-05 00:32:39 +02:00
/*
* This file contains patch control flags.
*
* In principle you should be able to mix and match any patches
* you may want. In cases where patches are logically incompatible
* one patch may take precedence over the other as noted in the
* relevant descriptions.
*
* Although layouts typically come as patches they are differentiated
* here for grouping purposes.
2019-09-05 00:32:39 +02:00
*/
/* Patches */
/* This patch changes the rectangle indicating if a tag is used by a client into a bar
* above the tag name for better visibility.
* https://dwm.suckless.org/patches/activetagindicatorbar/
*/
#define ACTIVETAGINDICATORBAR_PATCH 0
2019-09-05 22:58:16 +02:00
/* The alpha patch adds transparency for the status bar.
* You need to uncomment the corresponding line in config.mk to use the -lXrender library
* when including this patch.
2019-09-05 00:32:39 +02:00
* https://dwm.suckless.org/patches/alpha/
*/
2019-10-07 00:46:23 +02:00
#define ALPHA_PATCH 0
2019-09-05 22:10:00 +02:00
2019-09-09 23:27:10 +02:00
/* This patch introduces alternative tags which can be switched on the fly for the
* sole purpose of providing visual aid.
* https://dwm.suckless.org/patches/alternativetags/
*/
2019-10-07 00:46:23 +02:00
#define ALTERNATIVE_TAGS_PATCH 0
2019-09-09 23:27:10 +02:00
/* This patch prevents the focus to drift from the active fullscreen client when
* using focusstack().
* https://dwm.suckless.org/patches/alwaysfullscreen/
*/
#define ALWAYSFULLSCREEN_PATCH 0
/* This patch adds new clients above the selected client, instead of always
* becoming the new master. This behaviour is known from Xmonad.
* This patch takes precedence over ATTACHASIDE_PATCH.
* https://dwm.suckless.org/patches/attachabove/
*/
#define ATTACHABOVE_PATCH 0
/* This patch adds new clients on top of the stack.
* This patch takes precedence over ATTACHBELOW_PATCH.
* https://dwm.suckless.org/patches/attachaside/
*/
2019-10-07 00:46:23 +02:00
#define ATTACHASIDE_PATCH 0
/* This patch adds new clients below the selected client.
* This patch takes precedence over ATTACHBOTTOM_PATCH.
* https://dwm.suckless.org/patches/attachbelow/
*/
#define ATTACHBELOW_PATCH 0
/* This patch adds new clients at the bottom of the stack.
* https://dwm.suckless.org/patches/attachbottom/
*/
#define ATTACHBOTTOM_PATCH 0
2019-09-06 23:37:30 +02:00
/* This patch will make dwm run "~/.config/dwm/autostart_blocking.sh" and
* "~/.config/dwm/autostart.sh &" before entering the handler loop. One or
* both of these files can be ommited. Note the path inside .config rather
* than the original ~/.dwm folder.
* https://dwm.suckless.org/patches/autostart/
2019-09-05 22:10:00 +02:00
*/
2019-10-07 00:46:23 +02:00
#define AUTOSTART_PATCH 0
2019-09-05 22:58:16 +02:00
/* By default, windows that are not visible when requesting a resize/move will not
* get resized/moved. With this patch, they will.
* https://dwm.suckless.org/patches/autoresize/
*/
2019-10-07 00:46:23 +02:00
#define AUTORESIZE_PATCH 0
2019-09-10 00:18:46 +02:00
/* Enhanced taskbar that shows the titles of all visible windows in the status bar
* and allows focus / hiding / unhiding of windows by clicking on the status bar.
2019-09-10 00:38:57 +02:00
* Awesomebar takes precedence over fancybar.
2019-09-10 00:18:46 +02:00
* https://dwm.suckless.org/patches/awesomebar/
*/
2019-10-07 00:46:23 +02:00
#define AWESOMEBAR_PATCH 0
2019-09-10 00:18:46 +02:00
2020-06-21 20:04:56 +02:00
/* Allows the bar height to be explicitly set rather than being derived from font.
* https://dwm.suckless.org/patches/bar_height/
*/
#define BAR_HEIGHT_PATCH 0
/* This patch adds vertical and horizontal space between the statusbar and the edge of the screen.
* https://dwm.suckless.org/patches/barpadding/
*/
#define BARPADDING_PATCH 0
2019-09-08 00:23:30 +02:00
/* This patch adds an iscentered rule to automatically center clients on the current monitor.
* This patch takes precedence over centeredwindowname and fancybar patches.
2019-09-08 00:23:30 +02:00
* https://dwm.suckless.org/patches/center/
*/
2019-10-07 00:46:23 +02:00
#define CENTER_PATCH 0
2019-09-08 00:23:30 +02:00
/* This patch centers the WM_NAME of the currently selected window on the status bar.
* Both fancybar and awesomebar patches take precedence over this patch.
* https://dwm.suckless.org/patches/centeredwindowname/
*/
2019-10-07 00:46:23 +02:00
#define CENTEREDWINDOWNAME_PATCH 0
/* This patch provides the ability to assign different weights to clients in their
* respective stack in tiled layout.
* https://dwm.suckless.org/patches/cfacts/
*/
2019-10-07 00:46:23 +02:00
#define CFACTS_PATCH 0
2019-10-05 23:56:43 +02:00
/* This patch allows color attributes to be set through the command line.
* https://dwm.suckless.org/patches/cmdcustomize/
*/
#define CMDCUSTOMIZE_PATCH 0
2019-10-05 23:56:43 +02:00
2020-05-29 20:43:55 +02:00
/* This patch enables color emoji in dwm by removing a workaround for a BadLength error
* in the Xft library when color glyphs are used.
* To enable this you will need an updated Xft library that can handle color glyphs otherwise
* dwm will crash on encountering such characters. Note that you will also need a font that
* provides color emojis for this to work.
*/
#define COLOR_EMOJI_PATCH 0
2019-09-11 23:35:43 +02:00
/* This patch tweaks the tagging interface so that you can select multiple tags for tag
* or view by pressing all the right keys as a combo. For example to view tags 1 and 3,
* hold MOD and then press and hold 1 and 3 together.
* https://dwm.suckless.org/patches/combo/
*/
2019-10-07 00:46:23 +02:00
#define COMBO_PATCH 0
2019-09-11 23:35:43 +02:00
2019-09-07 23:29:37 +02:00
/* The cyclelayouts patch lets you cycle through all your layouts.
2019-09-07 22:27:06 +02:00
* https://dwm.suckless.org/patches/cyclelayouts/
*/
2019-10-07 00:46:23 +02:00
#define CYCLELAYOUTS_PATCH 0
2019-09-07 22:27:06 +02:00
2019-11-26 19:54:00 +01:00
/* Updates the position of dmenu to match that of the bar. I.e. if topbar is 0 then dmenu
* will appear at the bottom and if 1 then dmenu will appear at the top.
* https://dwm.suckless.org/patches/dmenumatchtop
*/
#define DMENUMATCHTOP_PATCH 0
2020-03-25 15:15:47 +01:00
/* Similarly to the dragmfact patch this allows you to click and drag clients to change the
* cfact to adjust the client's size in the stack. This patch depends on the cfacts patch.
*/
#define DRAGCFACT_PATCH 0
2019-10-24 06:52:00 +02:00
/* This patch lets you resize the split in the tile layout (i.e. modify mfact) by holding
* the modkey and dragging the mouse.
* This patch can be a bit wonky with other layouts, but generally works.
* https://dwm.suckless.org/patches/dragmfact/
*/
#define DRAGMFACT_PATCH 0
2020-05-02 14:43:44 +02:00
/* This patch depends on statuscmd patch and adds integration with a (patched) dwmblocks
* instance to give a clickable status bar.
* Patch: https://gist.github.com/danbyl/54f7c1d57fc6507242a95b71c3d8fdea
* dwmblocks: https://github.com/torrinfail/dwmblocks
*/
#define DWMBLOCKS_PATCH 0
2019-10-07 23:34:23 +02:00
/* Simple dwmc client using a fork of fsignal to communicate with dwm.
* To use this either copy the patch/dwmc shell script to somewhere in your path or
* uncomment the following line in Makefile:
* #cp -f patch/dwmc ${DESTDIR}${PREFIX}/bin
2019-10-07 23:34:23 +02:00
* http://dwm.suckless.org/patches/dwmc/
*/
#define DWMC_PATCH 0
/* This patch allows no tag at all to be selected. The result is that dwm will start with
* no tag selected and when you start a client with no tag rule and no tag selected then
* it will be opened on the first tag.
* https://dwm.suckless.org/patches/emptyview/
*/
#define EMPTYVIEW_PATCH 0
2019-09-12 00:48:29 +02:00
/* Adds EWMH support for _NET_NUMBER_OF_DESKTOPS, _NET_CURRENT_DESKTOP, _NET_DESKTOP_NAMES
* and _NET_DESKTOP_VIEWPORT, which allows for compatibility with other bars and programs
* that request workspace information. For example polybar's xworkspaces module.
* https://dwm.suckless.org/patches/ewmhtags/
*/
2019-10-07 00:46:23 +02:00
#define EWMHTAGS_PATCH 0
2019-09-12 00:48:29 +02:00
2019-10-24 08:47:00 +02:00
/* This patch allows the user to change size and placement of floating windows using only the
* keyboard. It also allows for temporary vertical and horizontal extension of windows similar
* to other WMs fill command.
* https://dwm.suckless.org/patches/exresize/
*/
#define EXRESIZE_PATCH 0
2019-10-24 07:35:00 +02:00
/* This patch will enable an extra status bar in dwm in a similar manner to the dualstatus
* patch. If the primary status is at the top via topbar then the extra status bar will be
* placed at the bottom and vice versa.
* https://dwm.suckless.org/patches/extrabar/
*/
#define EXTRABAR_PATCH 0
2019-10-08 23:15:11 +02:00
/* Only allow clients to "fullscreen" into the space currently given to them.
* As an example, this will allow you to view a fullscreen video in your browser on
* one half of the screen, while having the other half available for other tasks.
* This patch takes precedence over the fakefullscreen client patch below.
2019-10-08 23:15:11 +02:00
* https://dwm.suckless.org/patches/fakefullscreen/
*/
#define FAKEFULLSCREEN_PATCH 0
2019-11-21 12:15:16 +01:00
/* Similarly to the fakefullscreen patch this patch only allows clients to "fullscreen" into
* the space currently given to them.
* The "twist" with this patch is that fake fullscreen can be toggled on a per client basis
* rather than applying to all clients globally.
*/
#define FAKEFULLSCREEN_CLIENT_PATCH 0
2019-09-06 23:47:06 +02:00
/* This patch shows the titles of all visible windows in the status bar
* (as opposed to showing only the selected one).
* Awesomebar takes precedence over fancybar. Fancybar takes precedence over
* the centeredwindowname patch.
2019-09-06 23:47:06 +02:00
* https://dwm.suckless.org/patches/fancybar/
*/
#define FANCYBAR_PATCH 0
/* This patch allows a different border color to be chosen for floating windows.
* https://dwm.suckless.org/patches/float_border_color/
*/
#define FLOAT_BORDER_COLOR_PATCH 0
2020-06-21 15:33:29 +02:00
/* This patch adds a float rule allowing the size and position of floating windows to be specified
* It also allows the size and position of floating windows to be controlled similar to the
* exresize, moveresize, and moveplace patches.
* The size and position can be specified using absolute, relative or fixed co-ordinates and
* https://github.com/bakkeby/patches/wiki/floatpos/
*/
#define FLOATPOS_PATCH 0
/* Add-on functionality for the above: make the float positions respect outer (vanity)gaps. */
#define FLOATPOS_RESPECT_GAPS_PATCH 0
2019-10-02 23:57:25 +02:00
/* This patch provides the ability to focus the tag on the immediate left or right of the
* currently focused tag. It also allows to send the focused window either on the left or
* the right tag.
* http://dwm.suckless.org/patches/focusadjacenttag/
*/
2019-10-07 00:46:23 +02:00
#define FOCUSADJACENTTAG_PATCH 0
2019-10-02 23:57:25 +02:00
2019-09-16 00:32:28 +02:00
/* Switch focus only by mouse click and not sloppy (focus follows mouse pointer).
* https://dwm.suckless.org/patches/focusonclick/
*/
#define FOCUSONCLICK_PATCH 0
2019-10-03 00:10:08 +02:00
/* Selects the next window having the urgent flag regardless of the tag it is on.
* The urgent flag can be artificially set with the following xdotool command on any window:
* xdotool selectwindow -- set_window --urgency 1
* https://dwm.suckless.org/patches/focusurgent/
*/
2019-10-07 00:46:23 +02:00
#define FOCUSURGENT_PATCH 0
2019-10-03 00:10:08 +02:00
/* By default, dwm responds to _NET_ACTIVE_WINDOW client messages by setting
* the urgency bit on the named window. This patch activates the window instead.
* https://dwm.suckless.org/patches/focusonnetactive/
*/
2019-10-07 00:46:23 +02:00
#define FOCUSONNETACTIVE_PATCH 0
/* Send "fake signals" to dwm for handling, using xsetroot. This will not conflict with the
* status bar, which also is managed using xsetroot.
* Also see the dwmc patch, which takes precedence over this patch.
* https://dwm.suckless.org/patches/fsignal/
*/
#define FSIGNAL_PATCH 0
/* Applies the monocle layout with the focused client on top and hides the bar. When pressed
* again it shows the bar and restores the layout that was active before going fullscreen.
* NB: This patch assumes that the third layout is monocle and that the bar is shown.
* https://dwm.suckless.org/patches/fullscreen/
*/
2019-10-07 00:46:23 +02:00
#define FULLSCREEN_PATCH 0
2019-10-05 23:44:18 +02:00
/* This patch prevents dwm from drawing tags with no clients (i.e. vacant) on the bar.
* https://dwm.suckless.org/patches/hide_vacant_tags/
*/
#define HIDEVACANTTAGS_PATCH 0
/* With this patch dwm's built-in status bar is only shown when HOLDKEY is pressed
* and the bar will now overlay the display.
* http://dwm.suckless.org/patches/holdbar/
*/
#define HOLDBAR_PATCH 0
2020-01-17 09:54:23 +01:00
/* This patch provides a keybinding to rotate all clients in the currently selected
* area (master or stack) without affecting the other area.
* https://dwm.suckless.org/patches/inplacerotate/
*/
#define INPLACEROTATE_PATCH 0
2019-10-22 18:30:00 +02:00
/* Adds rule option for clients to avoid accidental termination by killclient for sticky windows.
* https://dwm.suckless.org/patches/ispermanent/
*/
#define ISPERMANENT_PATCH 0
/* Sometimes dwm crashes when it cannot render some glyphs in window titles (usually emoji).
* This patch is essentially a hack to ignore any errors when drawing text on the status bar.
* https://groups.google.com/forum/m/#!topic/wmii/7bncCahYIww
* https://docs.google.com/viewer?a=v&pid=forums&srcid=MDAwODA2MTg0MDQyMjE0OTgzMzMBMDQ3ODQzODkyMTU3NTAyMTMxNTYBX2RUMVNtOUtDQUFKATAuMQEBdjI&authuser=0
*/
#define IGNORE_XFT_ERRORS_WHEN_DRAWING_TEXT_PATCH 0
2020-05-31 15:14:29 +02:00
/* This patch adds key modes (like in vim or emacs) where chains of keyboard shortcuts
* can be performed.
* https://dwm.suckless.org/patches/keymodes/
*/
#define KEYMODES_PATCH 0
2019-10-05 22:55:46 +02:00
/* This patch adds a keybinding to kills all visible clients that are not selected.
* https://dwm.suckless.org/patches/killunsel/
*/
2019-10-07 00:46:23 +02:00
#define KILLUNSEL_PATCH 0
2019-10-05 22:55:46 +02:00
2019-10-01 22:46:24 +02:00
/* Moves the layout symbol in the status bar to the left hand side.
* http://dwm.suckless.org/patches/leftlayout/
*/
#define LEFTLAYOUT_PATCH 0
/* By default in dwm it is possible to make an application fullscreen, then use
* the focusstack keybindings to focus on other windows beneath the current window.
* It is also possible to spawn new windows (e.g. a terminal) that end up getting
* focus while the previous window remains in fullscreen. This patch ensures that
* in such scenarios the previous window loses fullscreen.
* https://github.com/bakkeby/patches/tree/master/dwm/dwm-losefullscreen-6.2.diff
*/
2019-10-07 00:46:23 +02:00
#define LOSEFULLSCREEN_PATCH 0
2019-10-04 22:46:47 +02:00
/* This patch adds helper functions for maximizing, horizontally and vertically, floating
* windows using keybindings.
* https://dwm.suckless.org/patches/maximize/
*/
2019-10-07 00:46:23 +02:00
#define MAXIMIZE_PATCH 0
2019-10-04 22:46:47 +02:00
2019-10-10 23:09:07 +02:00
/* Control Music Player Daemon via keybinds.
* You need to uncomment the corresponding line in config.mk to use the -lmpdclient library
* when including this patch.
* This patch depends on the following additional library:
* - libmpdclient
2019-10-10 23:09:07 +02:00
* https://dwm.suckless.org/patches/mpdcontrol/
*/
#define MDPCONTROL_PATCH 0
2019-09-11 08:28:00 +02:00
/* Adds rules per monitor, e.g. have default layouts per monitor.
* The use case for this is if the second monitor is vertical (i.e. rotated) then
* you may want to use a different default layout for this monitor than what is
* used for the main monitor. E.g. normal vertical split for main monitor and
* horizontal split for the second.
*/
2019-10-07 00:46:23 +02:00
#define MONITOR_RULES_PATCH 0
2019-09-11 08:28:00 +02:00
2019-10-04 22:51:42 +02:00
/* Always display the the monocle-symbol as defined in config.h if the monocle-layout
* is activated. Do not display the number of open clients in the current tag.
* https://dwm.suckless.org/patches/monoclesymbol/
*/
2019-10-07 00:46:23 +02:00
#define MONOCLESYMBOL_PATCH 0
2019-10-04 22:51:42 +02:00
2020-05-21 19:58:11 +02:00
/* Makes a window floating and 1/3rd the height and 1/3rd the width of the screen and is
* positioned in either the center or one of the 8 cardinal directions depending on which
* key is pressed.
* https://dwm.suckless.org/patches/moveplace/
*/
#define MOVEPLACE_PATCH 0
2020-05-21 18:55:47 +02:00
/* This patch allows you to move and resize dwm's clients using keyboard bindings.
* https://dwm.suckless.org/patches/moveresize/
*/
#define MOVERESIZE_PATCH 0
2019-10-04 23:13:55 +02:00
/* This patch allows you to move clients around in the stack and swap them with the master.
* https://dwm.suckless.org/patches/movestack/
*/
2019-10-07 00:46:23 +02:00
#define MOVESTACK_PATCH 0
2019-10-04 23:13:55 +02:00
2019-10-04 23:39:01 +02:00
/* Removes the border when there is only one window visible.
* https://dwm.suckless.org/patches/noborder/
*/
2019-10-07 00:46:23 +02:00
#define NOBORDER_PATCH 0
2019-10-04 23:39:01 +02:00
2019-10-24 08:03:00 +02:00
/* Enable modifying or removing dmenu in config.def.h which resulted previously in a
* compilation error because two lines of code hardcode dmenu into dwm.
* https://dwm.suckless.org/patches/nodmenu/
*/
#define NODMENU_PATCH 0
2020-05-03 10:09:26 +02:00
/* When terminals have transparency then their borders also become transparent.
* This patch ensures that borders have no transparency. Note that this patch is
* only relevant if you are not using the alpha patch.
* https://github.com/szatanjl/dwm/commit/1529909466206016f2101457bbf37c67195714c8
* https://dwm.suckless.org/patches/alpha/dwm-fixborders-6.2.diff
2020-05-03 10:09:26 +02:00
*/
#define NO_TRANSPARENT_BORDERS_PATCH 0
/* This patch makes it so dwm will only exit via quit() if no windows are open.
* This is to prevent you accidentally losing all your work.
* https://dwm.suckless.org/patches/onlyquitonempty/
*/
#define ONLYQUITONEMPTY_PATCH 0
/* This patch adds simple markup for status messages using pango markup.
* This depends on the pango library v1.44 or greater.
* You need to uncomment the corresponding lines in config.mk to use the pango libraries
* when including this patch.
*
* Note that the pango patch does not protect against the BadLength error from Xft
* when color glyphs are used, which means that dwm will crash if color emoji is used.
*
* If you need color emoji then you may want to install this patched library from the AUR:
* https://aur.archlinux.org/packages/libxft-bgra/
*
* A long term fix for the libXft library is pending approval of this pull request:
* https://gitlab.freedesktop.org/xorg/lib/libxft/-/merge_requests/1
*
* Also see:
* https://developer.gnome.org/pygtk/stable/pango-markup-language.html
* https://lists.suckless.org/hackers/2004/17285.html
* https://dwm.suckless.org/patches/pango/
*/
#define PANGO_PATCH 0
2019-09-11 08:28:00 +02:00
/* The pertag patch adds nmaster, mfacts and layouts per tag rather than per
* monitor (default).
2019-09-05 22:58:16 +02:00
* https://dwm.suckless.org/patches/pertag/
*/
2019-10-07 00:46:23 +02:00
#define PERTAG_PATCH 0
2019-09-05 22:58:16 +02:00
/* This controls whether or not to also store bar position on a per
* tag basis, or leave it as one bar per monitor.
*/
2019-10-07 00:46:23 +02:00
#define PERTAGBAR_PATCH 0
2019-09-14 00:36:18 +02:00
/* This patch provides a way to move clients up and down inside the client list.
* https://dwm.suckless.org/patches/push/
*/
2019-10-07 00:46:23 +02:00
#define PUSH_PATCH 0
2019-09-14 00:36:18 +02:00
2019-09-15 00:22:24 +02:00
/* This patch provides a way to move clients up and down inside the client list,
* but does not push up or down into the master area (except that it does not take
* nmaster into account).
* This takes precedence over the push patch above.
* https://dwm.suckless.org/patches/push/
*/
#define PUSH_NO_MASTER_PATCH 0
2019-09-07 22:35:37 +02:00
/* By default, windows only resize from the bottom right corner. With this
* patch the mouse is warped to the nearest corner and you resize from there.
* https://dwm.suckless.org/patches/resizecorners/
*/
2019-10-07 00:46:23 +02:00
#define RESIZECORNERS_PATCH 0
2019-09-07 22:35:37 +02:00
2020-06-24 14:49:30 +02:00
/* Practically the same as resizecorners, but the cursor does not warp to corners.
* This takes precedence over the resizecorners patch.
* https://github.com/bakkeby/patches/blob/master/dwm/dwm-resizepoint-6.2.diff
*/
#define RESIZEPOINT_PATCH 0
/* Adds a keyboard shortcut to restart dwm or alternatively by using kill -HUP dwmpid.
* Additionally dwm can quit cleanly by using kill -TERM dwmpid.
* https://dwm.suckless.org/patches/restartsig/
*/
2019-10-07 00:46:23 +02:00
#define RESTARTSIG_PATCH 0
2019-09-07 22:42:01 +02:00
/* This patch let's you rotate through the stack using keyboard shortcuts.
* https://dwm.suckless.org/patches/rotatestack/
*/
2019-10-07 00:46:23 +02:00
#define ROTATESTACK_PATCH 0
2019-09-07 22:42:01 +02:00
2020-03-31 08:21:00 +02:00
/* This patch adds rounded corners to client windows in dwm.
* You need to uncomment the corresponding line in config.mk to use the -lXext library
2020-03-31 08:21:00 +02:00
* when including this patch. You will also want to set "borderpx = 0;" in your config.h.
* https://github.com/mitchweaver/suckless/blob/master/dwm/patches_mitch/mitch-06-rounded_corners-db6093f6ec1bb884f7540f2512935b5254750b30.patch
*/
#define ROUNDED_CORNERS_PATCH 0
2020-01-17 09:54:23 +01:00
/* This patch saves size and position of every floating window before it is forced
2019-09-07 23:08:53 +02:00
* into tiled mode. If the window is made floating again then the old dimensions
* will be restored.
* https://dwm.suckless.org/patches/save_floats/
*/
2019-10-07 00:46:23 +02:00
#define SAVEFLOATS_PATCH 0
2019-09-07 23:29:37 +02:00
/* The scratchpads patch allows you to spawn or restore floating terminal windows.
2019-10-10 23:33:04 +02:00
* It is typically useful when one need to do some short typing.
[dwm][PATCH] Multiple scratchpads This patch enables multiple scratchpads, each with one assigned window. This enables the same scratchpad workflow that you have in i3. Scratchpads are implemented as special tags, whose mask does not apply to new spawned windows. To assign a window to a scratchpad you have to set up a rule, as you do with regular tags. Windows tagged with scratchpad tags can be set floating or not in the rules array. Most users would probably want them floating (i3 style), but having them tiled does also perfectly work and might fit better the DWM approach. In case they are set floating, the patch moves them to the center of the screen whenever the are shown. The patch can easily be modified to make this last feature configurable in the rules array (see the center patch). The togglescratch function, borrowed from the previous scratchpad patch and slightly modified, can be used to spawn a registered scratchpad process or toggle its view. This function looks for a window tagged on the selected scratchpad. If it is found its view is toggled. If it is not found the corresponding registered command is spawned. The config.def.h shows three examples of its use to spawn a terminal in the first scratchpad tag, a second terminal running ranger on the second scratchpad tag and the keepassxc application to manage passwords on a third scratchpad tag. If you prefer to spawn your scratchpad applications from the startup script, you might opt for binding keys to toggleview instead, as scratchpads are just special tags (you may even extend the TAGKEYS macro to generalize the key bindings).
2020-04-16 16:39:22 +02:00
* Upgraded to Christian Tenllado's multiple scratchpad version.
* https://lists.suckless.org/hackers/2004/17205.html
* https://dwm.suckless.org/patches/scratchpads/
2019-10-10 23:33:04 +02:00
*/
#define SCRATCHPADS_PATCH 0
2019-10-10 23:33:04 +02:00
[dwm][PATCH] Multiple scratchpads This patch enables multiple scratchpads, each with one assigned window. This enables the same scratchpad workflow that you have in i3. Scratchpads are implemented as special tags, whose mask does not apply to new spawned windows. To assign a window to a scratchpad you have to set up a rule, as you do with regular tags. Windows tagged with scratchpad tags can be set floating or not in the rules array. Most users would probably want them floating (i3 style), but having them tiled does also perfectly work and might fit better the DWM approach. In case they are set floating, the patch moves them to the center of the screen whenever the are shown. The patch can easily be modified to make this last feature configurable in the rules array (see the center patch). The togglescratch function, borrowed from the previous scratchpad patch and slightly modified, can be used to spawn a registered scratchpad process or toggle its view. This function looks for a window tagged on the selected scratchpad. If it is found its view is toggled. If it is not found the corresponding registered command is spawned. The config.def.h shows three examples of its use to spawn a terminal in the first scratchpad tag, a second terminal running ranger on the second scratchpad tag and the keepassxc application to manage passwords on a third scratchpad tag. If you prefer to spawn your scratchpad applications from the startup script, you might opt for binding keys to toggleview instead, as scratchpads are just special tags (you may even extend the TAGKEYS macro to generalize the key bindings).
2020-04-16 16:39:22 +02:00
/* The scratchpad patch above automatically resizes and centers the scratchpad window every
* time you spawn it. This alteration of the patch disables that so that the size and position
* of the scratchpad window is retained when you respawn it. If you enable this then you may
* want to also take the centered patch and enable the iscentered flag for floating scratchpads.
*/
#define SCRATCHPAD_KEEP_POSITION_AND_SIZE_PATCH 0
[dwm][PATCH] Multiple scratchpads This patch enables multiple scratchpads, each with one assigned window. This enables the same scratchpad workflow that you have in i3. Scratchpads are implemented as special tags, whose mask does not apply to new spawned windows. To assign a window to a scratchpad you have to set up a rule, as you do with regular tags. Windows tagged with scratchpad tags can be set floating or not in the rules array. Most users would probably want them floating (i3 style), but having them tiled does also perfectly work and might fit better the DWM approach. In case they are set floating, the patch moves them to the center of the screen whenever the are shown. The patch can easily be modified to make this last feature configurable in the rules array (see the center patch). The togglescratch function, borrowed from the previous scratchpad patch and slightly modified, can be used to spawn a registered scratchpad process or toggle its view. This function looks for a window tagged on the selected scratchpad. If it is found its view is toggled. If it is not found the corresponding registered command is spawned. The config.def.h shows three examples of its use to spawn a terminal in the first scratchpad tag, a second terminal running ranger on the second scratchpad tag and the keepassxc application to manage passwords on a third scratchpad tag. If you prefer to spawn your scratchpad applications from the startup script, you might opt for binding keys to toggleview instead, as scratchpads are just special tags (you may even extend the TAGKEYS macro to generalize the key bindings).
2020-04-16 16:39:22 +02:00
/* This alternative patch enables a scratchpad feature in dwm similar to the scratchpad
* feature in i3wm.
* https://github.com/GasparVardanyan/dwm-scratchpad
*/
#define SCRATCHPAD_ALT_1_PATCH 0
2019-09-14 23:58:04 +02:00
/* Allows restarting dwm without the dependency of an external script.
* https://dwm.suckless.org/patches/selfrestart/
*/
2019-10-07 00:46:23 +02:00
#define SELFRESTART_PATCH 0
2019-09-14 23:58:04 +02:00
2020-06-24 17:27:01 +02:00
/* This patch allow clients to keep focus when being sent to another monitor.
* https://github.com/bakkeby/patches/blob/master/dwm/dwm-sendmon_keepfocus-6.2.diff
*/
2020-06-24 17:12:54 +02:00
#define SENDMON_KEEPFOCUS_PATCH 0
2019-09-14 23:28:04 +02:00
/* This patch allows border pixels to be changed during runtime.
* https://dwm.suckless.org/patches/setborderpx/
*/
2019-10-07 00:46:23 +02:00
#define SETBORDERPX_PATCH 0
2020-01-29 14:22:24 +01:00
/* This patch adds keybindings for left and right circular shift through tags.
* https://github.com/chau-bao-long/dotfiles/blob/master/suckless/dwm/shiftview.diff
*/
#define SHIFTVIEW_PATCH 0
2020-05-03 16:09:05 +02:00
/* This variant of the shiftview patch adds left and right circular shift through tags,
* but skips tags where there are no clients.
*/
#define SHIFTVIEW_CLIENTS_PATCH 0
2020-06-15 21:01:05 +02:00
/* This patch makes dwm obey even "soft" sizehints for new clients. Any window
* that requests a specific initial size will be floated and set to that size.
* Unlike with "fixed size" windows, you are able to resize and/or unfloat these
* windows freely - only the initial state is affected.
* This version of the patch is honestly of limited utility since there are many
* clients that will abuse it.
* https://dwm.suckless.org/patches/sizehints/
*/
#define SIZEHINTS_PATCH 0
/* This patch makes dwm obey even "soft" sizehints for new clients. This ruled
* version is essentially the same patch except it obeys the "isfloating" rule
* if it is available in config.h for the given client.
* https://dwm.suckless.org/patches/sizehints/
*/
#define SIZEHINTS_RULED_PATCH 0
2019-10-07 22:56:53 +02:00
/* In a multi-head setup monitor 0 is by default the primary screen, with the left and right
* screen being monitor 1 and 2 respectively. This patch sorts screens left to right (or
* top to bottom in a vertical layout) which aims to address some inconsistencies when it
* comes to focusmon, tagmon and similar functionality.
* https://www.mail-archive.com/hackers@suckless.org/msg09400.html
*/
#define SORTSCREENS_PATCH 0
2019-10-10 23:50:30 +02:00
/* Spawns programs from currently focused client's working directory.
* https://dwm.suckless.org/patches/spawn_cwd/
*/
#define SPAWNCMD_PATCH 0
/* This patch provides comprehensive utilities for managing the client stack, providing
* keyboard shortcuts for focusing or placing a client at specific positions in the stack.
* Note that the default keybindings for this patch have been changed in dwm-flexipatch
* due to the many conflicts with other patches. As it provides similar functionality to the
* swapfocus patch it also uses the MOD+s shortcut to focus the previously selected client,
* thus note a conflict between these two patches.
* https://dwm.suckless.org/patches/stacker/
*/
#define STACKER_PATCH 0
2020-06-10 11:52:35 +02:00
/* This patch allows the status text to be fixed to the bar on a specific
* monitor rather than being drawn on the focused monitor.
* The statusallmons patch takes precedence over this patch.
* NB: If used together with the systray patch then consider setting
* systraypinning to statmonval+1.
2020-06-10 11:52:35 +02:00
* https://dwm.suckless.org/patches/staticstatus/
*/
#define STATICSTATUS_PATCH 0
2020-05-26 20:53:53 +02:00
/* Status2d allows colors and rectangle drawing in the dwm status bar.
* This patch is incompatible with the statuscolors patch which takes precedence.
* This patch is incompatible with the extrabar patch.
* NB: If using this with dwmblocks then make sure to increase CMDLENGTH in dwmblocks.c
* from 50 (default) to 1024.
* https://dwm.suckless.org/patches/status2d/
*/
#define STATUS2D_PATCH 0
/* Supplementary patch should you want to disable alpha for the status2d section */
#define STATUS2D_NO_ALPHA_PATCH 0
/* This patch draws and updates the statusbar on all monitors.
* https://dwm.suckless.org/patches/statusallmons/
*/
2019-10-07 00:46:23 +02:00
#define STATUSALLMONS_PATCH 0
2020-06-24 16:36:51 +02:00
/* This patch adds a clickable button to the left hand side of the statusbar.
* https://dwm.suckless.org/patches/statusbutton/
*/
#define STATUSBUTTON_PATCH 0
2019-10-07 00:46:23 +02:00
/* This patch enables colored text in the status bar. It changes the way colors are defined
* in config.h allowing multiple color combinations for use in the status script.
2020-05-26 20:53:53 +02:00
* This patch is incompatible with and takes precedence over the status2d patch.
2019-10-07 00:46:23 +02:00
* https://dwm.suckless.org/patches/statuscolors/
*/
#define STATUSCOLORS_PATCH 0
2019-09-14 23:28:04 +02:00
2019-09-07 23:29:37 +02:00
/* This patch adds configuration options for horizontal and vertical padding in the status bar.
* https://dwm.suckless.org/patches/statuspadding/
*/
2019-10-07 00:46:23 +02:00
#define STATUSPADDING_PATCH 0
2019-09-07 23:08:53 +02:00
2019-09-15 00:43:35 +02:00
/* Adds toggleable keyboard shortcut to make a client 'sticky', i.e. visible on all tags.
* https://dwm.suckless.org/patches/sticky/
*/
2019-10-07 00:46:23 +02:00
#define STICKY_PATCH 0
2019-09-15 00:43:35 +02:00
2020-04-13 14:59:58 +02:00
/* This patch adds the ability to execute shell commands based on the mouse button and position
* when clicking the status bar. Refer to the website for usage.
* https://dwm.suckless.org/patches/statuscmd/
*/
#define STATUSCMD_PATCH 0
2019-09-06 23:37:30 +02:00
/* The systray patch adds systray for the status bar.
* https://dwm.suckless.org/patches/systray/
*/
2019-10-07 00:46:23 +02:00
#define SYSTRAY_PATCH 0
2019-09-06 23:37:30 +02:00
2019-10-22 19:08:00 +02:00
/* This patch adds "window swallowing" to dwm as known from Plan 9's windowing system rio.
* Clients marked with isterminal in config.h swallow a window opened by any child process,
* e.g. running xclock in a terminal. Closing the xclock window restores the terminal window
* in the current position.
* This patch depends on the following additional libraries:
* - libxcb
* - Xlib-libxcb
* - xcb-res
* You need to uncomment the corresponding line in config.mk to use the -lX11-xcb, -lxcb
* and -lxcb-res libraries when including this patch.
2019-10-22 19:08:00 +02:00
* https://dwm.suckless.org/patches/swallow/
*/
#define SWALLOW_PATCH 0
2020-01-29 08:31:00 +01:00
/* This patch depends on the pertag patch and makes it possible to switch focus with a single
* shortcut (MOD+s) instead of having to think if you should use MOD+j or MOD+k for reaching
2020-01-29 08:31:00 +01:00
* the previously used window.
* https://dwm.suckless.org/patches/swapfocus/
*/
#define SWAPFOCUS_PATCH 0
2020-02-11 08:27:00 +01:00
/* This patch allows swapping the contents of the currently selected tag with another tag using
* keyboard shortcuts.
* https://dwm.suckless.org/patches/swaptags/
*/
#define SWAPTAGS_PATCH 0
2019-10-04 00:20:47 +02:00
/* Switch focus between the master and stack columns using a single keybinding.
* https://dwm.suckless.org/patches/switchcol/
*/
2019-10-07 00:46:23 +02:00
#define SWITCHCOL_PATCH 0
2019-10-04 00:20:47 +02:00
2019-09-08 00:23:30 +02:00
/* By default dwm allow you to set application specific rules so that you can have your browser,
* for example, start up on tag 9 optionally on a given monitor when you open your browser it is
* then automatically moved to the configured tag, but you have to manually enable the tag to see
* the newly opened application.
* This patch adds an extra configuration option for individual rules where:
* 0 is default behaviour
* 1 automatically moves you to the tag of the newly opened application and
* 2 enables the tag of the newly opened application in addition to your existing enabled tags
2019-10-04 00:20:47 +02:00
*
2019-11-26 20:23:58 +01:00
* Closing that window reverts the view back to what it was before the window was opened.
*
* https://github.com/bakkeby/patches/tree/master/dwm/dwm-switchtag-6.2.diff
2019-11-26 20:23:58 +01:00
* Also see https://dwm.suckless.org/patches/switchtotag
2019-09-08 00:23:30 +02:00
*/
2019-10-07 00:46:23 +02:00
#define SWITCHTAG_PATCH 0
2019-09-08 00:23:30 +02:00
2019-10-04 23:56:00 +02:00
/* Adds keyboard shortcuts to move all (or only floating) windows from one tag to another.
* https://dwm.suckless.org/patches/tagall/
*/
2019-10-07 00:46:23 +02:00
#define TAGALL_PATCH 0
2019-10-04 23:56:00 +02:00
/* This patch allows you to move all visible windows on a monitor to an adjacent monitor.
* https://github.com/bakkeby/patches/tree/master/dwm/dwm-tagallmon-6.2.diff
*/
2019-10-07 00:46:23 +02:00
#define TAGALLMON_PATCH 0
2019-10-05 23:28:50 +02:00
/* This patch adds an option to place tags in rows like in many other window managers.
* https://dwm.suckless.org/patches/taggrid/
*/
#define TAGGRID_PATCH 0
2019-10-05 00:12:52 +02:00
/* This patch makes new clients attach into the stack area when you toggle a new tag into
* view. This means your master area will remain unchanged when toggling views.
* The allmaster patch will cause all clients in the master area to be left alone. This patch
* takes precedence over the onemaster tagintostack patch.
* https://dwm.suckless.org/patches/tagintostack/
*/
2019-10-07 00:46:23 +02:00
#define TAGINTOSTACK_ALLMASTER_PATCH 0
2019-10-05 00:12:52 +02:00
/* This patch makes new clients attach into the stack area when you toggle a new tag into
* view. This means your master area will remain unchanged when toggling views.
* The onemaster patch will cause the first client in the master area to be left alone.
* https://dwm.suckless.org/patches/tagintostack/
*/
#define TAGINTOSTACK_ONEMASTER_PATCH 0
2019-09-05 23:39:25 +02:00
/* If you try to send a fullscreen window to an adjacent monitor using tagmon then
* the window is moved behind the scenes, but it remains in fullscreen on the original
* monitor until you exit fullscreen view (at which point it will appear on the adjacent
* monitor). This patch allows a fullscreen window to be moved to an adjacent monitor
* while remaining in fullscreen.
* https://github.com/bakkeby/patches/tree/master/dwm/dwm-tagmonfixfs-6.2.diff
2019-09-05 23:39:25 +02:00
*/
2019-10-07 00:46:23 +02:00
#define TAGMONFIXFS_PATCH 0
2019-09-05 23:27:33 +02:00
2020-06-19 23:18:50 +02:00
/* Add functions and keybindings to tag a window to a desired tag on the next (right)
* or previous (left) monitor from the currently selected monitor.
* https://dwm.suckless.org/patches/tagothermonitor/
*/
#define TAGOTHERMONITOR_PATCH 0
/* This patch allows you to swap all visible windows on one monitor with those of an
* adjacent monitor.
* https://github.com/bakkeby/patches/tree/master/dwm/dwm-tagswapmon-6.2.diff
*/
2019-10-07 00:46:23 +02:00
#define TAGSWAPMON_PATCH 0
2019-09-13 23:56:05 +02:00
/* Adds a new color scheme used by the (selected) window title in the bar.
* https://dwm.suckless.org/patches/titlecolor/
*/
2019-10-07 00:46:23 +02:00
#define TITLECOLOR_PATCH 0
2019-09-13 23:56:05 +02:00
2019-09-05 23:27:33 +02:00
/* This patch allows you to toggle fullscreen on and off using a single shortcut key.
* https://github.com/bakkeby/patches/tree/master/dwm/dwm-togglefullscreen-6.2.diff
2019-09-05 23:27:33 +02:00
*/
2019-10-07 00:46:23 +02:00
#define TOGGLEFULLSCREEN_PATCH 0
2019-09-16 00:13:03 +02:00
2020-01-26 07:32:00 +01:00
/* Lets you transfer the currently focused client between the master and stack area
* while increasing or decreasing the master area (nmaster) accordingly.
* https://dwm.suckless.org/patches/transfer/
*/
#define TRANSFER_PATCH 0
2020-02-02 11:55:19 +01:00
/* Lets you transfer all clients between the master and stack area
* while increasing or decreasing the master area (nmaster) accordingly.
* https://dwm.suckless.org/patches/transfer/
*/
#define TRANSFER_ALL_PATCH 0
/* This patch resets isfloating on any visible windows that have it set.
* Optionally also applies a layout.
* https://dwm.suckless.org/patches/unfloatvisible/
*/
2019-10-07 00:46:23 +02:00
#define UNFLOATVISIBLE_PATCH 0
2019-09-16 00:13:03 +02:00
/* This patch makes "urgent" windows have different colors.
* https://dwm.suckless.org/patches/urgentborder/
*/
2019-10-07 00:46:23 +02:00
#define URGENTBORDER_PATCH 0
2019-09-05 23:27:33 +02:00
/* This patch adds configurable gaps between windows differentiating between outer, inner,
* horizontal and vertical gaps.
* https://github.com/bakkeby/dwm-vanitygaps/tree/master/patches/dwm-vanitygaps-6.2.diff
* https://github.com/bakkeby/dwm-vanitygaps/tree/master/patches/dwm-vanitygaps-cfacts-6.2.diff
*/
2019-10-07 00:46:23 +02:00
#define VANITYGAPS_PATCH 0
2019-09-07 23:46:08 +02:00
/* This patch adds outer gaps for the monocle layout.
* Most gaps patches tries to avoid gaps on the monocle layout, as it is often used as a
* fullscreen mode, hence this is enabled separately from the main vanitygaps patch.
*/
#define VANITYGAPS_MONOCLE_PATCH 0
2019-09-15 23:42:47 +02:00
/* Follow a window to the tag it is being moved to.
* https://dwm.suckless.org/patches/viewontag/
*/
#define VIEWONTAG_PATCH 0
2020-02-11 18:31:11 +01:00
/* This patch adds the ability for dwm to read colors from the linux virtual console.
* /sys/module/vt/parameters/default_{red,grn,blu}
* Essentially this way the colors you use in your regular tty is "mirrored" to dwm.
* https://dwm.suckless.org/patches/vtcolors/
*/
#define VTCOLORS_PATCH 0
2019-09-15 00:43:35 +02:00
/* This patch warps the mouse cursor to the center of the currently focused window or screen
* when the mouse cursor is (a) on a different screen or (b) on top of a different window.
* https://dwm.suckless.org/patches/warp/
*/
#define WARP_PATCH 0
2019-09-07 23:46:08 +02:00
/* Sometimes a single application opens different windows depending on the task
* at hand and this is often reflected in the WM_WINDOW_ROLE(STRING) x property.
* This patch adds the role field to the rule configuration so that one can
* differentiate between, say, Firefox "browser" vs "Preferences" vs "Manager"
* or Google-chrome "browser" vs "pop-up".
* https://github.com/bakkeby/patches/tree/master/dwm/dwm-windowrolerule-6.2.diff
2019-09-07 23:46:08 +02:00
*/
2019-10-07 00:46:23 +02:00
#define WINDOWROLERULE_PATCH 0
2019-09-07 23:46:08 +02:00
2019-09-15 23:33:43 +02:00
/* The winview patch allows switching the view to that of a given client from the all-window
* view (Mod-0) using a keyboard shortcut.
* http://dwm.suckless.org/patches/winview/
*/
2019-10-07 00:46:23 +02:00
#define WINVIEW_PATCH 0
2019-09-15 23:33:43 +02:00
/* Allows dwm to read colors from xrdb (.Xresources) during runtime. Compatible with
2019-09-16 00:13:03 +02:00
* the float border color, awesomebar, urgentborder and titlecolor patches.
2019-09-15 22:45:22 +02:00
* https://dwm.suckless.org/patches/xrdb/
*/
2019-10-07 00:46:23 +02:00
#define XRDB_PATCH 0
2019-09-15 22:45:22 +02:00
/* The zoomswap patch allows a master and a stack window to swap places
* rather than every window on the screen changing position.
* https://dwm.suckless.org/patches/zoomswap/
*/
2019-10-07 00:46:23 +02:00
#define ZOOMSWAP_PATCH 0
/* Layouts */
/* Bottomstack layout.
* https://dwm.suckless.org/patches/bottomstack/
*/
2019-09-16 00:32:28 +02:00
#define BSTACK_LAYOUT 0
/* Bottomstack horizontal layout.
* https://dwm.suckless.org/patches/bottomstack/
*/
2019-09-16 00:32:28 +02:00
#define BSTACKHORIZ_LAYOUT 0
2019-09-09 21:35:19 +02:00
/* Centered master layout.
* https://dwm.suckless.org/patches/centeredmaster/
*/
2019-09-16 00:32:28 +02:00
#define CENTEREDMASTER_LAYOUT 0
2019-09-09 21:35:19 +02:00
/* Centered floating master layout.
* https://dwm.suckless.org/patches/centeredmaster/
*/
2019-09-09 22:25:19 +02:00
#define CENTEREDFLOATINGMASTER_LAYOUT 0
2019-09-09 21:35:19 +02:00
2019-10-08 22:57:21 +02:00
/* Same as the default tile layout except clients in the master area are arranged in
* columns (i.e. left to right).
* https://dwm.suckless.org/patches/columns/
*/
#define COLUMNS_LAYOUT 0
2019-09-09 18:00:02 +02:00
/* Deck layout.
* https://dwm.suckless.org/patches/deck/
*/
2019-09-16 00:32:28 +02:00
#define DECK_LAYOUT 0
2019-09-09 18:50:05 +02:00
/* Fibonacci dwindle layout.
* https://dwm.suckless.org/patches/fibonacci/
*/
2019-09-09 19:31:16 +02:00
#define FIBONACCI_DWINDLE_LAYOUT 0
2019-09-09 18:50:05 +02:00
/* Fibonacci spiral layout.
* https://dwm.suckless.org/patches/fibonacci/
*/
2019-09-09 19:31:16 +02:00
#define FIBONACCI_SPIRAL_LAYOUT 0
2019-09-09 19:11:31 +02:00
/* Flextile deluxe layout.
* A revamped, more flexible, and over-the-top version of the original flextile layout.
* https://dwm.suckless.org/patches/flextile/ (original)
2019-09-09 22:25:19 +02:00
*/
2019-10-07 00:46:23 +02:00
#define FLEXTILE_DELUXE_LAYOUT 0
2019-09-09 22:25:19 +02:00
2019-09-09 19:11:31 +02:00
/* Gappless grid layout.
* https://dwm.suckless.org/patches/gaplessgrid/
*/
2019-09-09 19:31:16 +02:00
#define GAPPLESSGRID_LAYOUT 0
/* Gridmode (grid) layout.
* https://dwm.suckless.org/patches/gridmode/
*/
#define GRIDMODE_LAYOUT 0
/* Horizontal grid (horizgrid) layout.
* https://dwm.suckless.org/patches/horizgrid/
*/
#define HORIZGRID_LAYOUT 0
2019-09-09 18:00:02 +02:00
2019-09-09 19:49:41 +02:00
/* Grid layout where nmaster controls the number of rows.
* https://dwm.suckless.org/patches/nrowgrid/
*/
#define NROWGRID_LAYOUT 0
/* The default tile layout.
* This can be optionally disabled in favour of other layouts.
*/
2019-10-07 00:46:23 +02:00
#define TILE_LAYOUT 1
2019-09-09 18:00:02 +02:00
/* Monocle layout (default).
* This can be optionally disabled in favour of other layouts.
*/
2019-10-07 00:46:23 +02:00
#define MONOCLE_LAYOUT 1