diff --git a/PatchList.html b/PatchList.html deleted file mode 100644 index 9437526..0000000 --- a/PatchList.html +++ /dev/null @@ -1,6103 +0,0 @@ - - - - - - - Patch List - - - -
-

Patch List

-
- -

1 accessnthmon

-

1.0.1 Description

-

Port of dwm's accessnthmon. Adds functions to tag and focus monitor -by index.

-

1.0.2 Download

- -

1.0.3 Authors

- -
-

2 alwayscenter

-

2.0.1 Description

-

Automatically center floating windows.

-

2.0.2 Download

- -

2.0.3 Authors

- -
-

3 attachbottom

-

3.0.1 Description

-

Newly created windows are placed at the bottom of the client tile -stack.

-

3.0.2 Download

- -

3.0.3 Authors

- -
-

4 attachtop

-

4.0.1 Description

-

This is a port of attachtop patch for dwm: https://dwm.suckless.org/patches/attachtop

-

New client attaches below the last master/on top of the stack.

-

Behavior feels very intuitive as it doesn't disrupt existing masters -no matter the amount of them, it only pushes the clients in stack -down.

-

4.0.2 Download

- -

4.0.3 Authors

- -
-

5 autostart

-

5.0.1 Description

-

Allow dwl to execute commands from autostart array in your config.h -file. And when you exit dwl all processes from autostart array will be -killed.

-

Note: Commands from array are executed using execvp(). So if you need -to execute shell command you need to prefix it with "sh", "-c" (change -sh to any shell you like).

-

5.0.2 Download

- -

5.0.3 Authors

- -
-

6 bar

-

6.0.1 Description

-

Add a bar identical to dwm's bar.

-

To use a status-bar, you can pass in status text via stdin:

-
slstatus -s | dwl
-

6.0.2 Dependencies

- -

6.0.3 Download

- -

Below is a preview of the patch.

-

bar patch preview

-

For colors, they are in RRRR, GGGG, BBBB, AAAA format -due to inheriting the pixman_color_t type, an example for -the color 0x282a36 would be -0x2828, 0x2a2a, 0x3636, 0xffff

-

6.0.4 Authors

- -

6.0.5 Credits

- -
-

7 bar-systray

-

7.0.1 Description

-

Add a system tray next to the bar. -Heed the warning, this is far from suckless ^^

-

preview

-

7.0.2 Dependencies

- -

7.0.3 Applying the patch

-

The patch applies on top of the bar patch. That needs to be applied -first.

-

The patch creates subdirectories lib and -include. After patching, but before make, -install libstatusnotifier-systray-gtk4.a and -snsystray.h from statusnotifier-systray-gtk4 in the -directories. One possible way to do that:

-
    -
  1. Clone [https://codeberg.org/janetski/statusnotifier-systray-gtk4](https://codeberg.org/janetski/statusnotifier-systray-gtk4). -Can clone to any location.
  2. -
  3. From statusnotifier-systray-gtk4 root: -
      -
    1. $ meson setup --default-library=static --prefix=/ -Dgir=false -Dvala=false -Ddocs=false build
    2. -
    3. $ meson compile -C build
    4. -
    5. $ DESTDIR=$DWLDIR meson install -C build, where $DWLDIR -is the path to dwl root.
    6. -
  4. -
  5. Finally, from dwl root, run make.
  6. -
-

7.0.4 Download

- -

7.0.5 Authors

- -
-

8 barborder

-

8.0.1 Description

-

Add a border around the bar -similar to how a client is given a border.

-

8.0.2 Download

- -

8.0.3 Authors

- -
-

9 barcolors

-

9.0.1 Description

-

Add support for colored status text to the bar. Text can be -colored in the same manner as with dwlb, namely by wrapping it between -^fg(color) and ^fg() or -^bg(color) and ^bg(), where color -is a 6-digit hexadecimal value.

-

9.0.2 Download

- -

9.0.3 Authors

- -
-

10 barheight

-

10.0.1 Description

-

Adds the ability to change the bar's -height.

-

10.0.2 Download

- -

10.0.3 Authors

- -
-

11 barpadding

-

11.0.1 Description

-

Add vertical and horizontal space between the bar and the edge of the screen.

-

11.0.2 Download

- -

11.0.3 Authors

- -
-

12 borders

-

12.0.1 Description

-

Adds 2 more borders to each side (top, bottom, left, right) of every -window.

-
-Preview -
-With the following config:
-
-
static const unsigned int borderpx         = 9;  /* border pixel of windows */
-static const unsigned int borderspx        = 3;  /* width of the border that start from outside the windows */
-static const unsigned int borderepx        = 3;  /* width of the border that start from inside the windows */
-

and border_color_type set to BrdOriginal: -

-

and border_color_type set to BrdStart: -

-

and border_color_type set to BrdEnd: -

-

and border_color_type set to BrdStartEnd: -

-
- -

12.0.2 Download

- -

12.0.3 Authors

- -
-

13 bottomstack

-

13.0.1 Description

-

bstack and bstackhoriz are two stack layouts for dwl.

-

13.0.2 Scheme

-
bstack        (TTT)       bstackhoriz   (===)
-+-----------------+       +-----------------+
-|                 |       |                 |
-|                 |       |                 |
-|                 |       |                 |
-+-----+-----+-----+       +-----------------+
-|     |     |     |       +-----------------+
-|     |     |     |       +-----------------+
-+-----+-----+-----+       +-----------------+
-

13.0.3 Download

- -

13.0.4 Authors

- -
-

14 buttonbystate

-

14.0.1 Description

-

Adds "state" (enum wlr_button_state) to configure a -button action on either press or release. This basically enables release -to be used for button actions.

-

14.0.2 Download

- -

14.0.3 Authors

- -
-

15 center-terminal

-

15.0.1 Description

-

Add a keybinding that toggles centering the terminally horizontally -when it's the only window, while still tiling multiple windows.

-

This limits the width of long text making it easier to read, and -avoids covering the wallpaper more than necessary.

-

15.0.2 Download

- -

15.0.3 Authors

- -
-

16 centeredmaster

-

16.0.1 Description

-

This is a port of centeredmaster patch for dwm: https://dwm.suckless.org/patches/centeredmaster

-

centeredmaster centers the nmaster area on screen, using mfact * -monitor width & height, with the stacked windows distributed to the -left and right. It can be selected with Alt+c.

-

With one and two clients in master respectively this results in:

-
+------------------------------+       +------------------------------+
-|+--------++--------++--------+|       |+--------++--------++--------+|
-||        ||        ||        ||       ||        ||        ||        ||
-||        ||        ||        ||       ||        ||   M1   ||        ||
-||        ||        ||        ||       ||        ||        ||        ||
-||  S2    ||   M    ||   S1   ||       ||        |+--------+|        ||
-||        ||        ||        ||       ||        |+--------+|        ||
-||        ||        ||        ||       ||        ||        ||        ||
-||        ||        ||        ||       ||        ||   M2   ||        ||
-||        ||        ||        ||       ||        ||        ||        ||
-|+--------++--------++--------+|       |+--------++--------++--------+|
-+------------------------------+       +------------------------------+
-

16.0.2 Download

- -

16.0.3 Authors

- -
-

17 cfact

-

17.0.1 Description

-

A port of the dwm -cfacts patch (with the limits removed)

-

Clients with higher weight are allocated more space!

-
+---------------------+
-|          |   0.5    |
-|   1.0    +----------+
-+----------+          |
-|          |   1.0    |
-|          +----------+
-|   2.0    |          |
-|          |   1.0    |
-+----------+----------+`
-

17.0.2 Download

- -

17.0.3 Authors

- -
-

18 cfact-centeredmaster

-

18.0.1 Description

-

Port of the cfact patch for the centeredmaster layout.

-

Inspired by the original patch for dwm (https://dwm.suckless.org/patches/cfacts/)

-

This patch requires both cfact -and centeredmaster -patches.

-

18.0.2 Download

- -

18.0.3 Authors

- -
-

19 chainkeys

-

19.0.1 Description

-

Implements chained keybindings (like the dwm keychain -patch).

-

Bindings can share a leading chain key. This chain key will be -triggered when Mod+chain is pressed. A subsequent keypress will be -matched against bindings for that chain key. If it is configured the -action will be triggered, otherwise the keypress will be ignored.

-

19.0.2 Download

- -

19.0.3 Authors

- -
-

20 client-opacity

-

20.0.1 Description

-

This patch adds default transparency parameters to config.h which -specify the starting transparencies of all windows.

-

It also adds opacities to the ruleset, enabling override of the -opacities on a per client basis.

-

Additionally, it adds some shortcuts:

-
[MODKEY]+[o]         -> increase focus opacity of currently focused window
-[MODKEY]+[Shift]+[o] -> decrease focus opacity of currently focused window
-

20.0.2 Download

- -

20.0.3 Authors

- -
-

21 column

-

21.0.1 Description

-

A column layout patch. This patch just puts the visible clients into -equal-width columns on the screen.

-

21.0.2 Download

- -

21.0.3 Authors

- -
-

22 coredump

-

22.0.1 Description

-

Generate a coredump if dwl exited abnormally (to be more usefull you -need to compile dwl and wlroots with debug symbols)

-

22.0.2 Download

- -

22.0.3 Authors

- -
-

23 cursortheme

-

23.0.1 Description

-

Adds ability to change cursor's theme and size.

-
static const char *cursor_theme            = NULL;
-static const char cursor_size[]            = "24"; /* Make sure it's a valid integer, otherwise things will break */
-

23.0.2 Download

- -

23.0.3 Authors

- -
-

24 customfloat

-

24.0.1 Description

-

Rules for floating windows support default x, y, width, height. -Defaults to the center of the screen and the client size.

-

If the width or height is less than or equal to 1, then the value -will be interpreted as a percentage. For example, 0.5 represents 50%, -0.25 represents 25%, and 1 represents 100%. NOTE: Some -clients, like Thunar, have minimum width/height

-

The variable center_relative_to_monitor allows the user -to choose whether to center relative to the monitor or relative to the -window area.

-
-Explanation of center_relative_to_monitor: -
-The "Monitor area" refers to the space enclosed by the green rectangle, while the "Window area" refers to the space enclosed by the red rectangle.
-
-
-
- -

24.0.2 Download

- -

24.0.3 Authors

- -
-

25 deck

-

25.0.1 Description

-

Adds a layout with a monocle layout for clients in the stack (port of -the deck layout for -dwm); stacked clients are like a deck of cards (see below)

-
Tile:
-+-----------------+--------+
-|                 |        |
-|                 |  S1    |
-|                 |        |
-|        M        +--------+
-|                 |        |
-|                 |   S2   |
-|                 |        |
-+-----------------+--------+
-
-Deck:
-+-----------------+--------+
-|                 |        |
-|                 |        |
-|                 |        |
-|        M        |   S1   |
-|                 |        |
-|                 |        |
-|                 |        |
-+-----------------+--------+
-

25.0.2 Download

- -

25.0.3 Authors

- -
-

26 -define-modkey-with-make-argument

-

26.0.1 Description

-

This patch adds the ability to define the modkey with a make argument -like so:

-
make MODKEY=WLR_MODIFIER_ALT
-make MODKEY=WLR_MODIFIER_LOGO
-make MODKEY=WLR_MODIFIER_CTRL
-make MODKEY=WLR_MODIFIER_SHIFT
-

It can be used to compile multiple times quickly, you can also have a -main session and sub session with different modkeys.

-

26.0.2 Download

- -

26.0.3 Authors

- -
-

27 dim-unfocused

-

27.0.1 Description

-

Implements dimming of clients which are unfocused.

-

The code also allows any color dimming. There is also an additional -option in Rule, which allows you to keep the client -neverdim, that is, as if it is focused.

-

There are also two functions that can be bound to a Key -or Button,

-
    -
  1. toggledimming: Which toggles dimming for all windows -(except for Rules)
  2. -
  3. toggledimmingclient: Which toggles dimming for the -focused window, as if the client had neverdim applied to -it. This overwrites an applied Rule.
  4. -
-

27.0.2 Download

- -

27.0.3 Authors

- -
-

28 dragmfact

-

28.0.1 Description

-

Change mfact by dragging the mouse.

-

28.0.2 Download

- -

28.0.3 Authors

- -
-

29 dragresize

-

29.0.1 Description

-

implement rio-like window resizing

-

select window to resize (mod+middleclick by default) then drag out an -area for it to occupy

-

29.0.2 Download

- -

29.0.3 Authors

- -
-

30 en-keycodes

-

30.0.1 Description

-

Always use the English keymap to get keycodes, so key bindings work -even when using a non-English keyboard layout.

-

30.0.2 Download

- -

30.0.3 Authors

- -
-

31 envcfg

-

31.0.1 Description

-

Input device configuration (click method, tap-and-drag, acceleration, -etc), border size and colors via environment variables.

-

31.0.2 Download

- -

31.0.3 Authors

- -
-

32 fakefullscreenclient

-

32.0.1 Description

-

Allow setting fake fullscreen per client

-

32.0.2 Download

- -

32.0.3 Authors

- -
-

33 fallback

-

33.0.1 Description

-

Tries a different display mode if the preferred mode doesn't -work.

-

33.0.2 Download

- -

33.0.3 Authors

- -
-

34 -float-unfocused-border-color

-

34.0.1 Description

-

A revive of the floatBorderColor patch.

-

This patch allows you to set a color for floating windows when they -are unfocused.

-

34.0.2 Download

- -

34.0.3 Authors

- -
-

35 focusdir

-

35.0.1 Description

-

Focus the window to the left, right, above or below the current -focused window

-

35.0.2 Download

- -

35.0.3 Authors

- -
-

36 foreign-toplevel-management

-

36.0.1 Description

-

Implement foreign-toplevel-management, it add handlers -for activate, close, fullscreen and destroy request events, it's missing -minimize and maximize request handlers.

-

36.0.2 Download

- -

36.0.3 Authors

- -
-

37 gaplessgrid

-

37.0.1 Description

-

Arranges windows in a grid. Except it adjusts the number of windows -in the first few columns to avoid empty cells.

-

37.0.2 Download

- -

37.1 Pre-codeberg

- -

37.1.1 Authors

- -
-

38 gaps

-

38.0.1 Description

-

Adds gaps between clients, providing the ability to disable them at -run-time.

-

smartgaps can also be changed to remove gaps when there -is only one client present.

-

38.0.2 Download

- -

38.0.3 Authors

- -
-

39 gestures

-

39.0.1 Description

-

Add swipe gestures to trigger functions, similar to libinput-gestures. -It supports the following gestures: SWIPE_UP, -SWIPE_DOWN, SWIPE_LEFT and -SWIPE_RIGHT

-
-

NOTE: It requires that you have previously applied pointer-gestures-unstable-v1

-
-
static const Gesture gestures[] = {
-  /* modifier gesture       fingers_count   function    argument */
-  { MODKEY,   SWIPE_LEFT,   4,              shiftview,  { .i = 1 } },
-  { 0,        SWIPE_RIGHT,  4,              shiftview,  { .i = -1 } },
-};
-

NOTE: the example above requires the following patch -shiftview

-

39.0.2 Download

- -

39.0.3 Authors

- -
-

40 globalkey

-

40.0.1 Description

-

This patch adds ability to pass specified in config header keys -globally, somewhat in hyprlands approach. This might deal with waylands -lack of global shortcuts.

-

Example:

-
static const PassKeypressRule pass_rules[] = {
-    ADDPASSRULE("com.obsproject.Studio", MODKEY, XKB_KEY_Home),
-    ADDPASSRULE("discord", 0, XKB_KEY_n),
-    /* xkb key is case ignored */
-};
-

will pass MODKEY + Home key to obs(flatpak version) -regardless of what client is currently focused if any. String -"com.obsproject.Studio" should be exact match for appid of the client. -To get appid use dwlmsg, or run stock dwl -from a terminal then launch the needed application inside, dwl will -print all the info to the stdout.

-

Note that if popup (like fuzzel) is focused, no key -will be globally passed. This is done so these menus don't get closed -after hitting some of the global keys.

-

40.0.2 Download

- -

40.0.3 Authors

- -
-

41 headless

-

41.0.1 Description

-

Implements swaymsg create_output command, it allows you -to create virtual/headless outputs. But in combination with a VNC server -(for example wayvnc), this allows you to essentially have additional -monitors, by connecting to the VNC server with an appropiate client (for -example on an tablet or laptop).

-

If you plan to use wayvnc, you'll need virtual-pointer -patch as well

-

41.0.2 Download

- -

41.0.3 Authors

- -
-

42 hide-behind-fullscreen

-

42.0.1 Description

-

Hide all clients (and layer surfaces) behind the current client if it -is fullscreen, only the background (layer surfaces at the background -layer) will be shown

-

42.0.2 Download

- -

42.0.3 Authors

- -
-

43 hide-behind-monocle

-

43.0.1 Description

-

Hide all clients behind the focused one in the monocle layout

-

43.0.2 Download

- -

43.0.3 Authors

- -
-

44 hide_vacant_tags

-

44.0.1 Description

-

Prevent bar from drawing tags -with no clients (i.e. vacant). It also stops drawing empty rectangles on -the bar for non-vacant tags as there is no need anymore to distinguish -vacant tags and it offers a more visible contrast than if there were -filled/empty rectangles.

-

44.0.2 Download

- -

44.0.3 Authors

- -
-

45 hiderule

-

45.0.1 Description

-

Adds a ishidden option to client rules, that allows -hiding any matching clients entirely.

-

45.0.2 Download

- -

45.0.3 Authors

- -
-

46 inputdevicerules

-

46.0.1 Description

-

Input device rules implemented using custom device create functions -for keyboards and pointing devices.

-

Examples provided:

- -

46.0.2 Download

- -

46.0.3 Authors

- -
-

47 ipc

-

47.0.1 Description

-

Largely based on raphi's somebar, this patch provides an -ipc for wayland clients to get and set dwl state. The ipc is intended -for status bars, but can also be scripted with tools like dwlmsg.

-

Status information to stdout is currently disabled as dwl tends to -freeze. For now, dwlmsg -w should act as a drop-in -replacement.

-

Note to pertag users: apply this for ipc tagsetting to work as -expected

-

47.0.2 Download

- -

47.0.3 Authors

- -
-

48 kblayout

-

48.0.1 Description

-

This patch adds per-client keyboard layout and ability to send -current keyboard layout information to a status bar.

-

Only per-client feature is enabled by default. You can edit -kblayout_file and kblayout_cmd variables to -notify a status bar about keyboard layout.

-

Someblocks config that -works with the example settings in config.h:

-
static const Block blocks[] = {
-    /*Icon*/    /*Command*/     /*Update Interval*/ /*Update Signal*/
-    {"", "cat /tmp/dwl-kblayout",                   0,      1},
-};
-

Both of these features are included in one patch because their -implementation happens to share some code. If you don't need any of -these features, just disable it in config.h.

-

48.0.2 Download

- -

48.0.3 Authors

- -
-

49 keyboardshortcutsinhibit

-

49.0.1 Description

-

Allows clients to use the keyboard-shortcuts-inhibit protocol to -block the compositor from using keybinds. This is useful for -virtualization software like looking-glass which requires this protocol -to run.

-

49.0.2 Download

- -

49.0.3 Authors

- -
-

50 keycodes

-

50.0.1 Description

-

Use keycodes instead of keysyms. This way, input is independent from -keyboard layout (you can use the keys.h file to customize, or get the -keycodes with wev or -xkbcli interactive-wayland (x11-libs/libxkbcommon[tools] in -gentoo)).

-

50.0.2 Download

- -

50.0.3 Config after patching

-

(run in DWL source directory)

-
export XKB_DEFAULT_VARIANT=yourbestkeyboardlayout
-cc -lxkbcommon -o generate-keys generate-keys.c
-./generate-keys
-

50.0.4 Authors

- -
-

51 less-simple-touch-input

-

51.0.1 Description

-

Adds touchscreen functionality.

-

This patch was based on the simple-touch-input -but instead of emulating mouse movement, this now forwards the -appropriate event notifications to clients.

-

KNOWN BUGS:

- -

51.0.2 Download

- -

51.0.3 Authors

- -

51.0.4 Changelog

- -
-

52 limitnmaster

-

52.0.1 Description

-

Limits nmaster to within the range of currently-opened windows -(nmaster will not change past the full horizontal split layout)

-

52.0.2 Download

- -

52.0.3 Authors

- -
-

53 lockedkeys

-

53.0.1 Description

-

This patch allows you to add keybindings to the lockscreen.

-
static const Key lockedkeys[] = {
-    /* Note that Shift changes certain key codes: c -> C, 2 -> at, etc. */
-    /* modifier                  key                 function        argument */
-
-    /* Ctrl-Alt-Backspace and Ctrl-Alt-Fx used to be handled by X server */
-    { WLR_MODIFIER_CTRL|WLR_MODIFIER_ALT,XKB_KEY_Terminate_Server, quit, {0} },
-#define CHVT(n) { WLR_MODIFIER_CTRL|WLR_MODIFIER_ALT,XKB_KEY_XF86Switch_VT_##n, chvt, {.ui = (n)} }
-    CHVT(1), CHVT(2), CHVT(3), CHVT(4), CHVT(5), CHVT(6),
-    CHVT(7), CHVT(8), CHVT(9), CHVT(10), CHVT(11), CHVT(12),
-};
-

53.0.2 Download

- -

53.0.3 Authors

- -
-

54 mastercolumn

-

54.0.1 Description

-

This patch adds a layout, mastercol, in which the -windows in the master area are arranged in columns of equal size. The -number of columns is always nmaster + 1, and the last column is a stack -of leftover windows (as in the normal tile layout). It effectively -differs from the default tile layout only in that master windows are -arranged horizontally rather than vertically.

-

For gaps, apply mastercolumn-gaps.patch on top of -mastercolumn.patch and gaps.patch.

-

54.0.2 Download

-
54.0.2.0.1 -mastercolumn.patch
- -
54.0.2.0.2 -mastercolumn-gaps.patch
- -

54.0.3 Authors

- -
-

55 menu

-

55.0.1 Description

-

This patch adds menu command, which allows dwl to -interface with dmenu-like programs.

-

By default, two menus are available:

- -

Edit menus array in config.h to add/change -menus and use a different dmenu program.

-

55.0.2 Download

- -

55.0.3 Authors

- -
-

56 meson

-

56.0.1 Description

-

Add the meson build system.

-

This is useful for people who do not want to self-manage a wlroots -installation.

-

To enable Xwayland support, you will need to enable it in the wlroots -subproject:

-
meson setup -Dwlroots:xwayland=enabled build
-

It is also reccomended to see the wlroots meson project configuration -logs for any unusual checks, such as requiring hwdata for -the DRM backend.

-

56.0.2 Download

- -

56.0.3 Authors

- -
-

57 minimalborders

-

57.0.1 Description

-

Dynamically adjusts the borders between adjacent windows to make them -visually merge

-

NOTE: to disable minimalborders after applying this -patch, set draw_minimal_borders to 0

-
static const int draw_minimal_borders = 0; /* disable minimalborders */
-
-Preview: -
-with:
-
-
static const unsigned int borderpx         = 10;  /* border pixel of windows */
-

Before applying the patch -

-

After applying the patch -

-
- -

57.0.2 Download

- -

57.0.3 Authors

- -
-

58 modes

-

58.0.1 Description

-

Implement modes, that way each mapping is associated with a mode and -is only active while in that mode, default mode is -NORMAL

-

58.0.2 Example

-

In the example below, you declare a mode: BROWSER, which -is activated when you press modkey + b. Then, you -can press f to launch Firefox and return to the -default NORMAL mode.

-
enum {
-  BROWSER,
-};
-const char *modes_labels[] = {
-  "browser",
-};
-
-static const Key keys[] = {
-  // ...
-  { MODKEY, XKB_KEY_b, entermode, {.i = BROWSER} },
-  // ...
-};
-
-static const Modekey modekeys[] = {
-  /* mode      modifier                  key                 function        argument */
-  { BROWSER, { 0, XKB_KEY_f, spawn, SHCMD("firefox") } },
-  { BROWSER, { 0, XKB_KEY_f, entermode, {.i = NORMAL} } },
-  { BROWSER, { 0, XKB_KEY_Escape, entermode, {.i = NORMAL} } },
-};
-

58.0.3 Download

- -

58.0.4 Authors

- -
-

59 monfig

-

59.0.1 Description

-

Allows more monitor configuration in config.h

-

59.0.2 Download

- -

59.0.3 Authors

- -
-

60 movecenter

-

60.0.1 Description

-
-

This patch is no longer being maintained by me wochap, since I'm now using a -different patch specific to my use case: https://codeberg.org/wochap/dwl/src/branch/v0.6-c/betterfloat/betterfloat-diff.patch.

-
-

This patch provides a keybinding to center the focused floating -window.

-

Press MODKEY + x to center the focused floating -window.

-

It does NOT center windows that are not floating.

-

The variable respect_monitor_reserved_area allows the -user to choose whether to center relative to the monitor or relative to -the window area.

-
-Explanation of respect_monitor_reserved_area: -
-The "Monitor area" refers to the space enclosed by the green rectangle, while the "Window area" refers to the space enclosed by the red rectangle.
-
-
-
- -

60.0.2 Download

- -

60.0.3 Authors

- -
-

61 moveresizekb

-

61.0.1 Description

-

This allows the user to change size and placement of floating windows -using only the keyboard, default keybindings:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
KeybindingAction
MODKEY + Upmove 40px up
MODKEY + Downmove 40px down
MODKEY + Leftmove 40px left
MODKEY + Rightmove 40px right
MODKEY + Shift + -Upshrink height 40px
MODKEY + Shift + -Downgrow height 40px
MODKEY + Shift + -Leftshrink width 40px
MODKEY + Shift + -Rightgrow width 40px
-

61.0.2 Download

- -

61.0.3 Authors

- -
-

62 movestack

-

62.0.1 Description

-

Allows you to move a window up and down the stack.

-

62.0.2 Download

- -

62.0.3 Authors

- -
-

63 namedscratchpads

-

63.0.1 Description

-

Allows for the creation of multiple scratchpad windows, each assigned -to a different keybinding. In simple terms, it enables 'run or raise' -functionality

-

This patch adds the following functions:

- -

If you don't assign keybindings to any of the above functions and so -get a compiler warning about them not being used, just remove them from -your dwl branch to stop the warning.

-

63.0.2 Download

- -

63.0.3 Authors

- -
-

64 naturalscrolltrackpad

-

64.0.1 Description

-

Set natural scrolling only for trackpads.

-

64.0.2 Download

- -

64.0.3 Authors

- -
-

65 nextlayout

-

65.0.1 Description

-

Change the current layout to the next available one.

-

65.0.2 Download

- -

65.0.3 Authors

- -
-

66 numlock-capslock

-

66.0.1 Description

-

Allows activating numlock or capslock at startup.

-

66.0.2 Download

- -

66.0.3 Authors

- -
-

67 passthrough

-

67.0.1 Description

-

allows pausing keybind handling

-

also allows for bitcarrying-esque control of nested instances

-

default keybind is Ctrl+Logo+Alt+Shift+Esc, can be customized in -config.h

-

67.0.2 Download

- -

67.0.3 Authors

- -
-

68 perinputconfig

-

68.0.1 Description

-

Replace the singular keyboard and pointer input configuration with an -array allowing to set different variables matching by name.

-

Tip to find the names: Grep for device_name and add a -line after it to print to stdout. Then run EX: -dwl > /tmp/print_device_names.log, exit dwl, and should -see the names.

-

68.0.2 Download

- -

68.0.3 Authors

- -
-

69 pertag

-

69.0.1 Description

-

Makes layout, mwfact and nmaster individual for every tag.

-

69.0.2 Download

- -

69.0.3 Authors

- -
-

70 -pointer-gestures-unstable-v1

-

70.0.1 Description

-

Forward the following events to client: swipe_begin, swipe_update, -swipe_end, pinch_begin, pinch_update and pinch_end

-

This patch allows you to pinch zoom in Chrome, for example. In -combination with the following patches gestures -and shiftview, -it would allow you to switch workspaces by performing a 3-finger swipe -on your touchpad.

-

70.0.2 Download

- -

70.0.3 Authors

- -
-

71 press_repeat_release

-

71.0.1 Description

-

This patch adds 3 additional options to the Key struct, -on_press, on_repeat and -on_release which can be used to control which events a key -binding should be triggered on.

-

NOTE: Due to concerns about patching difficulties this patch does NOT -include any changes to config.def.h. After applying you -will need to add the 3 additional initializers to each key binding that -you would like to modify. Any key binding that is not updated will cause -a build warning but should function as it does in vanilla.

-

71.0.2 Download

- -

71.0.3 Authors

- -
-

72 primaryselection

-

72.0.1 Description

-

Adds a config option to disable/enable primary selection -(middle-click paste).

-

72.0.2 Download

- -

72.0.3 Authors

- -
-

73 push

-

73.0.1 Description

-

Adds functions pushup and pushdown to move -windows within the tiling order.

-

73.0.2 Download

- -

73.0.3 Authors

- -
-

74 regexrules

-

74.0.1 Description

-

Allows the use of regular expressions for window rules "app_id" and -"title"

-
static const Rule rules[] = {
-    // ...
-    { "kitty-htop",  NULL,  1 << 8,  0,  -1 },
-    { "^kitty$",     NULL,  0,       0,  -1 },
-    // ...
-};
-

74.0.2 Download

- -

74.0.3 Authors

- -
-

75 regions

-

75.0.1 Description

-

This patch will allow for a program to be used and have the current -window regions on all monitors to be passed to the program as standard -input.

-

example is grim -g "$(slurp)"

-

75.0.2 Download

- -

75.0.3 Authors

- -
-

76 relative-mouse-resize

-

76.0.1 Description

-

When resizing windows, the mouse will jump and resize the window in -the quadrant that the resize starts at.

-

76.0.2 Download

- -

76.0.3 Authors

- -
-

77 remembertags

-

77.0.1 Description

-

This patch modifies the behavior when selecting tags so that -selecting a tag will also enable any other tags that were previously -visible.

-

For example:

-
    -
  1. Select tag 5, with mod+5
  2. -
  3. Toggle tag 8, with ctrl+mod+8
  4. -
  5. Select tag 1, with mod+1. Tags 5 and 8 should no longer be -visible.
  6. -
  7. Select tag 5 again, with mod+5. Tag 8 should be visible since it was -remembered.
  8. -
  9. Select tag 5 again, with mod_5. Selecting the already selected tag -resets any remembered tags, so now tag 5 should be the only one -visible.
  10. -
-

77.0.2 Download

- -

77.0.3 Authors

- -
-

78 restore-monitor

-

78.0.1 Description

-

Moves clients to their old output when it is reattached.

-

78.0.2 Download

- -

78.0.3 Authors

- -
-

79 right

-

79.0.1 Description

-

Put newly connected monitors on the right, like X does.

-

79.0.2 Download

- -

79.0.3 Authors

- -
-

80 rlimit_max

-

80.0.1 Description

-

Sets the current maximum open file descriptors to the maximum -available limit.

-

This patch is useful - and solves issue #628 for running -heavy Xwayland applications on systems that do not provide limits out of -the box.

-

80.0.2 Download

- -

80.0.3 Authors

- -
-

81 rotatetags

-

81.0.1 Description

-

This patch provides the ability to rotate the tagset left / right. It -implements a new function rotatetags which modifies the current tagset. -Same as original dwm patch. Also adds ability to move focused client to -left / right adjacent tag by specifying appropriate enum value as -argument.

-

81.0.2 Download

- -

81.0.3 Authors

- -
-

82 scenefx

-

82.0.1 Description

-

Implement https://github.com/wlrfx/scenefx

-
/* available options */
-
-static const int opacity = 0; /* flag to enable opacity */
-static const float opacity_inactive = 0.5;
-static const float opacity_active = 1.0;
-
-static const int shadow = 1; /* flag to enable shadow */
-static const int shadow_only_floating = 0; /* only apply shadow to floating windows */
-static const struct wlr_render_color shadow_color = COLOR(0x0000FFff);
-static const struct wlr_render_color shadow_color_focus = COLOR(0xFF0000ff);
-static const int shadow_blur_sigma = 20;
-static const int shadow_blur_sigma_focus = 40;
-static const char *const shadow_ignore_list[] = { "xdg-desktop-portal-gtk", NULL }; /* list of app-id to ignore */
-
-static const int corner_radius = 0; /* 0 disables corner_radius */
-
-static const int blur = 1; /* flag to enable blur */
-static const int blur_optimized = 1;
-static const int blur_ignore_transparent = 1;
-static const struct blur_data blur_data = {
-    .radius = 5,
-    .num_passes = 3,
-    .noise = 0.02,
-    .brightness = 0.9,
-    .contrast = 0.9,
-    .saturation = 1.1,
-};
-
-

NOTE: If you are using nix with flakes, scenefx has -a flake for scenefx https://github.com/wlrfx/scenefx/blob/main/flake.nix

-
-
-

NOTE: Some GTK apps are being cut off when they have -shadows enabled. You can use the shadow_ignore_list option -to prevent shadows from being rendered on those apps

-
-
-

NOTE: Blur doesn't work on windows with opacity set -(opacity_active, opacity_inactive)

-
-
-

NOTE: In DWL's Makefile scenefx must be -placed before wlroots, e.g. -PKGS = scenefx wlroots wayland-server ...

-
-
-Preview -
-
-
-
-
- -

82.0.2 Download

- -

82.0.3 Authors

- -
-

83 scroll-factor

-

83.0.1 Description

-

This patch adds scroll factor to dwl. The settings can be found in -the trackpad section of the config. This allows user to control the -sensitivity of 2-finger touchpad scrolling.

-

83.0.2 Download

- -

83.0.3 Authors

- -
-

84 setupenv

-

84.0.1 Description

-

Allow configuring environment variables in config.h

-

84.0.2 Download

- -

84.0.3 Authors

- -
-

85 shiftview

-

85.0.1 Description

-

Add keybindings to cycle through tags with visible clients.

-

85.0.2 Download

- -

85.0.3 Authors

- -
-

86 simpleborders

-

86.0.1 Description

-

Like smartborders. Don't put borders when there is only one window on -the screen.

-

86.0.2 Download

- -

86.0.3 Authors

- -
-

87 singlemaster

-

87.0.1 Description

-

Restricts layout to only having one client in the master area.

-

87.0.2 Download

- -

87.0.3 Authors

- -
-

88 singletagset

-

88.0.1 Description

-

Single set of tags shared between multiple monitors.

-

This patch allows all the tags to be shared between both (or more) -monitors. So a single set of tags from 1 to 9 can be viewed on any -monitor, as opposed to having separate tag sets 1 to 9 on each -monitor.

-

Originally based on the dwm single_tagset patch: https://dwm.suckless.org/patches/single_tagset/

-

88.0.2 Download

- -

88.0.3 Authors

- -
-

89 singletagset-pertag

-

89.0.1 Description

-

Pertag keeps layouts, mfact and nmaster per tag instead of per -output.

-

This adapted version of pertag contains one version of the rules per -all outputs, instead of one per output. This makes switching to tags -from other monitors keep the window layout.

-

This patch expects singletagset -patch to be already in your tree committed. It applies onto it.

-

This patch is incompatible with pertag.

-

89.0.2 Download

- -

89.0.3 Authors

- -
-

90 singletagset-sticky

-

90.0.1 Description

-

Makes sticky work as expected with singletagset. The sticky window -will stay on original output until you explicitely put it to a different -monitor.

-

This patch expects both singletagset -and sticky -patches to be already in your tree committed. It applies onto them.

-

90.0.2 Download

- -

90.0.3 Authors

- -
-

91 skipfocus

-

91.0.1 Description

-

Adds a rule-based ability to skip automatically focusing a window on -creation. Expected use-case is for transient windows like notifications -etc. The window can still be focused by mouse or keyboard movement.

- - - - - - - - - - - - - - - - - - - - - -
skipfocus valueeffect
0usual
1skipautofocus
2skipfocus entirely
-

91.0.2 Download

- -

91.0.3 Authors

- -
-

92 smartborders

-

92.0.1 Description

-

The borders of a window aren't drawn when the window is the only -tiling window in its tag OR if the window is in a monocle layout.

-

92.0.2 Download

- -

92.0.3 Authors

- -
-

93 snail

-

93.0.1 Description

-

Adds a spiral-inspired layout for wide screens.

-

93.0.2 Download

- -

93.0.3 Authors

- -
-

94 snail-gaps

-

94.0.1 Description

-

Adds support for the gaps -patch to the snail -layout patch.

-

Install the gaps -patch and the snail -patch first.

-

94.0.2 Download

- -

94.0.3 Authors

- -
-

95 stacker

-

95.0.1 Description

-

Stacker is a patch that allows moving around the stack more freely. -With only one keybinding, quickly move, swap and jump around the window -stack.

-
    -
  1. Focus any window of the stack with a single key binding.
  2. -
  3. Swap the currently focused windows with any other window in the -stack.
  4. -
  5. Move the selected window in the stack with -relativeswap.
  6. -
-

This patch is heavily inspired by the original stacker dwm -patch.

-

95.0.2 Keybinding

- -

95.0.3 Missing feature

-

Jumping to the last selected window is not yet implemented.

-

95.0.4 Download

- -

95.0.5 Authors

- -
-

96 startargv

-

96.0.1 Description

-

allow passing startup command on argv

-

e.g. dwl -s foot -s launches foot -s

-

put sh -c right after dwl -s to emulate -normal behaviour

-

96.0.2 Download

- -

96.0.3 Authors

- -
-

97 sticky

-

97.0.1 Description

-

Adds a toggleable function that makes a sticky client that is visible -on all tags.

-

Originally based on dwm sticky patch.

-

97.0.2 Download

- -

97.0.3 Authors

- -
-

98 swallow

-

98.0.1 Description

-

Terminals swallow windows that they are the parent of.

-

foot is the terminal by default, you can change it in client rules in -config.h.

-

2023-08-16 and up are made to also work with x windows: https://codeberg.org/dwl/dwl/issues/331

-

for freebsd users: apply swallow-freebsd.patch on top -of swallow.patch

-

98.0.2 Download

- -

98.0.3 Authors

- -
-

99 swapandfocusdir

-

99.0.1 Description

-

Focus the window (floating or no) to the left, right, above, or below -the current focused window.

-

Swap the focused window with the window (no floating) to the left, -right, above, or below.

-

NOTE: this patch uses the same algorithm that River -uses to select the window in the given direction.

-

99.0.2 Download

- -

99.0.3 Authors

- -
-

100 switchtotag

-

100.0.1 Description

-

Add a rule option to switch to the configured tag when a window -opens, then switch back when it closes.

-

100.0.2 Download

- -

100.0.3 Authors

- -
-

101 tab

-

101.0.1 Description

-

Add a tab bar or window title to the top or bottom of windows.

-

101.0.2 Download

- -

101.0.3 Authors

- -
-

102 tablet-input

-

102.0.1 Description

-

implements wlr-tablet-v2 for drawing tablets and supports cursor -emulation

-

inspired by @guyuming76's branch, -with coding help from @Palanix and testing by @Thanatos

-

102.0.2 Download

- -

102.0.3 Authors

- -
-

103 tearing

-

103.0.1 Description

-

This patch adds support for tearing protocol. To get it working -export WLR_DRM_NO_ATOMIC=1 is probably required. Setting -ForceTearingRule is also probably required since surfaces -always receive presentation hint 0 (VSYNC) as far as i can tell.

-

Set rules in the config.h (exact string match):

-
static const ForceTearingRule force_tearing[] = {
-    {.title = "", .appid = "oni.exe"},
-    {.title = "", .appid = "hl_linux"},
-    {.title = "", .appid = "steam_app_210970"},
-};
-

103.0.2 Download

- -

103.0.3 Authors

- -
-

104 titleurgent

-

104.0.1 Description

-

Whenever a client title changes set the client's urgent flag.

-

Hacky solution I use to deal with qutebrowser not setting urgent flag -when a new tab is opened.

-

104.0.2 Download

- -

104.0.3 Authors

- -
-

105 toggle_constraints

-

105.0.1 Description

-

Adds a function called togglepointerconstraints to turn pointer -constraint enforcement on and off with a keybind.

-

105.0.2 Usage

-

Add a binding for the togglepointerconstraints function in the keys[] -array of config.h. The function does not take any argument. Pointer -constraints default to enabled, and can be toggled on and off with the -function from there.

-

Example:

-
{ MODKEY, XKB_KEY_c, togglepointerconstraints, {0}},
-

105.0.3 Download

- -

105.0.4 Authors

- -
-

106 togglekblayout

-

106.0.1 Description

-
-

This patch is no longer being maintained by me wochap, since I'm now using a -different patch specific to my use case: https://codeberg.org/wochap/dwl/src/branch/v0.6-b/xkb-rules-switcher/xkb-rules-switcher.patch

-
-

Switch between multiple keyboard layouts at runtime.

-

106.0.2 Download

- -

106.0.3 Authors

- -
-

107 togglekblayoutandoptions

-

107.0.1 Description

-

Switch between multiple keyboard layouts, variants, and options at -runtime.

-

107.0.2 Download

- -

107.0.3 Authors

- -
-

108 unclutter

-

108.0.1 Description

-

Hide the mouse cursor if it isn't being used for a certain period of -time.

-

108.0.2 Download

- -

108.0.3 Authors

- -
-

109 ungroup-keyboards

-

109.0.1 Description

-

Ungroup keyboard input devices based on device name.

-

I wrote this patch was because keyboard device grouping breaks the -behaviour of the ydotool virtual device. This patch fixes my issue #558 -in the codeberg issue tracker.

-

See the inputdevicerules patch for a more generalised version of this -idea.

-

109.0.2 Download

- -

109.0.3 Authors

- -
-

110 vanitygaps

-

110.0.1 Description

-

Adds (inner) gaps between client windows and (outer) gaps between -windows and the screen edge in a flexible manner.

-

110.0.2 Download

- -

110.0.3 Authors

- -
-

111 varcol

-

111.0.1 Description

-

A variable column layout.

-

This layout behaves much the same as the tile layout, -but adds key bindings that can be used to:

- -

111.0.2 Download

- -

111.0.3 Authors

- -
-

112 viewnextocctag

-

112.0.1 Description

-

View the next or previous tag, skipping any tags that do not have any -clients.

-

112.0.2 Download

- -

112.0.3 Authors

- -
-

113 virtual-pointer

-

113.0.1 Description

-

implement wlr_virtual_pointer_v1 for things like wayvnc server to -work

-

NOTE: no longer neccessary if you are using a DWL -version after https://codeberg.org/dwl/dwl/commit/ac6074f4fdb8cc263c877f08e16a5805d3bb22d2

-

113.0.2 Download

- -

113.0.3 Authors

- -
-

114 warpcursor

-

114.0.1 Description

-

Warp cursor to the centre of newly focused clients.

-

Only moves the cursor if the cursor is currently not on the new -client.

-

This is my version of the orphaned cursorwarp patch except I left out -the config flag as I think it is unnecessary.

-

114.0.2 Download

- -

114.0.3 Authors

- -
-

115 winview

-

115.0.1 Description

-

Implements the function winview which switches the -visible tags to the tags on which the current client is visible.

-

This patch is inspired from https://dwm.suckless.org/patches/winview/. -Citing the description of the dwm patch:

-
-

Dwm tags are a powerfull feature that allows organizing windows in -workspaces. Sometime it can be difficult to remember the tag to activate -to unhide a window. With the winview patch the window to unhide can be -selected from the all-window view. The user switches to the all-window -view (Mod1-0), selects the window (Mod1-j/k or using the mouse) and -press Mod1-o. The key Mod1-o switches the view to the selected window -tag.

-

Recommend patches

-

The grid layout is well adapted to display many windows in a limited -space. Using both grid and pertag patches you will be able to select -this layout for the all-window view while keeping your preferred layout -for the other views. Configuration and Installation Using the default -configuration file

-
Make sure the directory where you build dwm does not contain a config.h file;
-Apply the patch;
-Run make and make install.
-

Using an existing customised configuration file

-

Apply the patch; Add the following element in the keys array:

-

{ MODKEY, XK_o, winview, {0} },

-

Run make and make install.

-

An example of how to insert this line can be found in the default -config file template, config.def.h.

-
-

115.0.2 Download

- -

115.0.3 Authors

- -
-

116 xwayland-handle-minimize

-

116.0.1 Description

-

Some windows (wine) games go black screen after losing focus and -never recover https://github.com/swaywm/sway/issues/4324. -This patch fixes this by handling minimize requests that some xwayland -clients do.

-

116.1 Download

- -

116.1.1 Authors

- -
-

117 zoomswap

-

117.0.1 Description

-

This patch swaps the current window (C) with the previous master (P) -when zooming.

-
Original behaviour :
-+-----------------+-------+
-|                 |       |
-|                 |       |
-|                 |       |
-|        P        +-------|
-|                 |       |
-|                 |   C   |
-|                 |       |
-+-----------------+-------+
-
-+-----------------+-------+
-|                 |       |
-|                 |   P   |
-|                 |       |
-|        C        +-------|
-|                 |       |
-|                 |       |
-|                 |       |
-+-----------------+-------+
-
-New Behaviour :
-+-----------------+-------+
-|                 |       |
-|                 |       |
-|                 |       |
-|        C        +-------+
-|                 |       |
-|                 |   P   |
-|                 |       |
-+-----------------+-------+
-
-+-----------------+-------+
-|                 |       |
-|                 |       |
-|                 |       |
-|        P        +-------+
-|                 |       |
-|                 |   C   |
-|                 |       |
-+-----------------+-------+
-

117.0.2 Download

- -

117.0.3 Authors

- -
-

118 STALE PATCHES

-

118.1 DRMLeaseManager

-

118.1.1 Description

-

This implements the DRM lease protocol, which is needed to use -devices such as VR headsets.

-

118.1.2 Download

- -

118.1.3 Authors

- -
-

118.2 XF86keysym

-

118.2.1 Description

-

Utilizing the /usr/include/X11/XF86keysym.h -header file to change the volume via the appropriate keys.

-

118.2.2 Download

- -

118.2.3 Authors

- -
-

118.3 alphafocus

-

118.3.1 Description

-

Adds configurable transparency for focused and unfocused windows.

-

118.3.2 Download

- -

118.3.3 Authors

- -
-

118.4 attachabove

-

118.4.1 Description

-

Newly created windows are placed above the currently selected window -in the stack.

-

118.4.2 Download

- -

118.4.3 Authors

- -
-

118.5 attachtop

-

118.5.1 Description

-

This is a port of attachtop patch for dwm: https://dwm.suckless.org/patches/attachtop

-

New client attaches below the last master/on top of the stack.

-

Behavior feels very intuitive as it doesn't disrupt existing masters -no matter the amount of them, it only pushes the clients in stack -down.

-

118.5.2 Download

- -

118.5.3 Authors

- -
-

118.6 autorotation

-

118.6.1 Description

-

Adds keybindings for screen rotation and auto rotation from an -accelerometer.

-

118.6.2 Setup

-

Find an accelerometer device in sysfs -(cat /sys/bus/iio/devices/iio*/name, or using a script: monitor-iio.sh)
-Find the raw output file of the accelerometer (e.g. -cat /sys/bus/iio/devices/iio:device0/in_accel_x_raw should -output an integer).
-Add the raw output file names to the dwl configuration -accel_*.

-

Add a udev rule to uniquely identify the device, for example:

-
sudo echo 'SUBSYSTEM=="iio", KERNEL=="iio*", ATTR{name}=="accel_3d", GROUP="input", SYMLINK+="input/accel"' >> /etc/udev/rules.d/99-accel.rules
-sudo udevadm control --reload-rules && sudo udevadm trigger
-

(the device is probably already in /dev/ e.g. -/dev/iio:device0 but on my computer the number changes -after a reboot)

-

A symlink to the device should now be available in -/dev/input/ and accessible to input group members.
-Add the device path to the dwl configuration -accel_path.

-

118.6.3 Config

- - -

Default keybindings:

- -

118.6.4 Download

- -

118.6.5 Authors

- -
-

118.7 center

-

118.7.1 Description

-

Adds a rule to automatically center clients on the current -monitor.

-

118.7.2 Download

- -

118.7.3 Authors

- -
-

118.8 clipboardManager

-

118.8.1 Description

-

Store your clipboard history using clipman clipboard -manager without your KeePassXC passwords leaking into clipman.

-

Ensure these dependencies are installed (instructions for debian, -other distros are left as an exercise...):

-
apt install clipman libmodern-perl-perl moreutils wl-clipboard
-

Change your command to launch dwl to something like the -following:

-
dwl -s 'pee somebar dwl-getwindowtitle'
-

Ensure the following command is running in the background of your -dwl session. Put it whereever your auto-started stuff -is.

-
exec wl-paste -t text --watch dwl-clipman
-

This solution is based on the following reddit post, modified to -support dwl. https://www.reddit.com/r/swaywm/comments/ljl0dh/keeping_secrets_secret_with_keepassxc_clipman_and/

-

Feel free to use this code however you want, but I can't guarantee it -will work for what you are trying to do. Licenced under the same license -as dwl, "WITHOUT WARRANTY OF ANY KIND".

-

118.8.2 Download

- -

118.8.3 Authors

- -
-

118.9 clipboardipc

-

118.9.1 Description

-

Adds clipboard functionality. Requires the ipc patch for dwl and -wl-clipboard to be installed. By default, requires clipman for the clipboard -and dwl-state for -getting the appid of the focused application, but you can change these -in the script if you have alternatives. You may change which -applications to not record by modifying the excludes array -in dwl-cliboard-watcher. Make sure -wl-paste -t text -w dwl-clipboard-watcher is running after -dwl.

-

118.9.2 Downloads

- -

118.9.3 Authors

- -
-

118.10 cyclelayouts

-

118.10.1 Description

-

Adds function to cycle through available layouts.

-

118.10.2 Download

- -

118.10.3 Authors

- -
-

118.11 fibonacci

-

118.11.1 Description

-

Arranges windows in a Fibonacci spiral or dwindle.

-

118.11.2 Scheme

-
+-----------+-----------+  +-----------+-----------+
-|           |           |  |           |           |
-|           |     2     |  |           |     2     |
-|           |           |  |           |           |
-|     1     +--+--+-----+  |     1     +-----+-----+
-|           | 5|-.|     |  |           |     |  4  |
-|           +--+--+  3  |  |           |  3  +--+--+
-|           |  4  |     |  |           |     | 5|-.|
-+-----------+-----+-----+  +-----------+-----+-----+
-     spiral                     dwindle
-

118.11.3 Download

- -

118.11.4 Authors

- -
-

118.12 focusMonPointer

-

118.12.1 Description

-

Implements focusmon() function that moves the cursor to -the focused monitor.

-

118.12.2 Download

- -

118.12.3 Authors

- -
-

118.13 focusdir

-

118.13.1 Description

-

Focus the window left, right, above or below the current focused -window

-

118.13.2 Download

- -

118.13.3 Authors

- -
-

118.14 focusmaster

-

118.14.1 Description

-

Focus the master regardless of the current focus.

-

118.14.2 Download

- -

118.14.3 Authors

- -
-

118.15 genericgaps

-

118.15.1 Description

-

This patch is a modified version of vanitygaps -that adds gaps around clients regardless of a layout. It means you can -apply any layout patch and the gaps will be shown properly as long as -the layout does not add any gaps on its own.

-

This works by allowing a layout to place clients normally without -gaps, and then correcting positions and dimensions of clients afterwards -to add gaps around them. To make it work, I had to modify -resize() function, and, as a side effect, this change fixed -some flickering I experienced when using snail layout.

-

118.15.2 Changelog

-

2023-11-24:

- -

118.15.3 Download

- -

118.15.4 Authors

- -
-

118.16 gridmode

-

118.16.1 Description

-

Arranges windows in a grid of equal sizes.

-

118.16.2 Download

- -

118.16.3 Authors

- -
-

118.17 hidecursor

-

118.17.1 Description

-

Hide the cursor when typing

-

118.17.2 Download

- -

118.17.3 Authors

- -
-

118.18 kbrules

-

118.18.1 Description

-

Allow for keyboard rules to be used; This allows for -keyboard-specific options or layouts.

-

The keyboard's names can be retrieved from -libinput list-devices | grep Device, example:

-
static const KeyboardRule kbrules[] = {
-    { "AT Translated Set 2 keyboard", { .options = "altwin:swap_alt_win,caps:swapescape" } },
-};
-

118.18.2 Download

- -

118.18.3 Authors

- -
-

118.19 keychord

-

118.19.1 Description

-

This patch implements sequences for chained keybindings (like the dwm -keychord -patch).

-

Notes:

- -

118.19.2 Example

-

The default values for MODKEY and PREFIXKEY -can be changed in config.def.h and/or -config.h.

-

118.19.2.1 emacs-like

-

In the example below, the firefox command is bound to -the key sequence alt-s alt-u f.

-
static const Keychord keychords[] = {
-  /* Note that Shift changes certain key codes: c -> C, 2 -> at, etc. */
-  /* count key_sequences                          function  argument */
-  { 3, {{MODKEY, XKB_KEY_s}, {MODKEY, XKB_KEY_u}, {MOD_NONE, XKB_KEY_f}}, spawn, SHCMD("firefox") },
-};
-

118.19.2.2 vim-like

-

In the example below, the firefox command is bound to -the key sequence alt-s u f.

-
static const Keychord keychords[] = {
-  /* Note that Shift changes certain key codes: c -> C, 2 -> at, etc. */
-  /* count key_sequences                          function  argument */
-  { 3, {{MODKEY, XKB_KEY_s}, {MOD_NONE, XKB_KEY_u}, {MOD_NONE, XKB_KEY_f}}, spawn,SHCMD("firefox") },
-};
-

118.19.3 Download

- -

118.19.4 Authors

- -
-

118.20 keymap

-

118.20.1 Description

-

Print current keyboard layout to stdout

-

118.20.2 Download

- -

118.20.3 Authors

- -
-

118.21 master-right

-

118.21.1 Description

-

Show the master area to the right.

-

118.21.2 Reason for -deprecation

-

I created this patch for a user on Discord and I have never used -it.

-

118.21.3 Download

- -

118.21.4 Authors

- -
-

118.22 mouse-follows-focus

-

118.22.1 Description

-

This patch adds the option to let the cursor jump to the center of -new clients, as well as move the cursor to the center of clients that -gains focus.

-

118.22.2 Download

- -

118.22.3 Authors

- -
-

118.23 move-stack-top

-

118.23.1 Description

-

Extend the movestack patch -to let you also focus, or move, a client to the top or bottom of the -stack.

-

118.23.2 Download

- -

118.23.3 Authors

- -
-

118.24 nomousefocus

-

118.24.1 Description

-

Prevent focus on mouseover.

-

118.24.2 Download

- -

118.24.3 Authors

- -
-

118.25 onlyquitonempty

-

118.25.1 Description

-

Only exit when no windows are open

-

118.25.2 Download

- -

118.25.3 Authors

- -
-

118.26 privilegeDrop

-

118.26.1 Description

-

Adds the -u option that allows users to pass a desired uid to drop to -after becoming DRM master.

-

118.26.2 Download

- -

118.26.3 Authors

- -
-

118.27 relativemouseresize

-

118.27.1 Description

-

When resizing windows, the mouse will no longer jump to the bottom -right corner and only resize from that corner. Instead, the mouse will -resize the window in the quadrant that the resize starts at. This is the -same resize behavior as Sway and is similar to the resizehere dwm -patch.

-

118.27.2 Download

- -

118.27.3 Authors

- -
-

118.28 restartdwl

-

118.28.1 Description

-

This patch allows you to restart dwl with a keybinding.
-NOTE: that all of your applications are gonna get -killed on dwl restart.

-

The function creates a file at /tmp/restart_dwl and -exits dwl.
-You have to modify your dwl launch script in order for this patch to -work.
-Example dwl launch script:

-
do=true
-while $do ||  [ -f /tmp/restart_dwl ]; do
-    do=false
-    rm -rf /tmp/restart_dwl > /dev/null 2>&1
-    dwl
-done
-

It's a do-while that checks if /tmp/restart_dwl -exists after the first run of dwl.
-If this file exists delete it and start dwl again.

-

118.28.2 Download

- -

118.28.3 Authors

- -
-

118.29 restoretiling

-

118.29.1 Description

-

All floating windows become tiling when switching to a different -layout.

-

118.29.2 Download

- -

118.29.3 Authors

- -
-

118.30 stickyrule

-

118.30.1 Description

-

Add a rule to clients to spawn them sticky on -start up. I personally use it to make dragon show up on all tags.

-

118.30.2 Download

-

Apply on top of sticky patch.

- -

118.30.3 Authors

- -
-

118.31 swaycompat

-

118.31.1 Description

-

Implements just enough of the sway-ipc protocol to -facilitate status bars. Tested with waybar and -rootbar.

-

118.31.2 Download

- -

118.31.3 Authors

- -
-

118.32 touchscreen

-

118.32.1 Description

-

Adds SIMPLE touchscreen functionality.
Currently emulates mouse -movement and button presses.

-

118.32.2 Download

- -

118.32.3 Authors

- -
-

118.33 vertile

-

118.33.1 Description

-

A tiled layout optimized for wide vertical monitors.

-

118.33.2 Scheme

-
|---------------------------|
-|                           |
-|                           |
-|             M             |
-|                           |
-|                           |
-|---------------------------|
-|            t1             |
-|---------------------------|
-|            t2             |
-|---------------------------|
-|            t3             |
-|---------------------------|
-

118.33.3 Download

- -

118.33.4 Authors

- -
-

118.34 xcursor

-

118.34.1 Description

-

Set cursor theme and size via XCURSOR_THEME and -XCURSOR_SIZE environmental variables.

-

118.34.2 Download

- -

118.34.3 Authors

- -
- - diff --git a/PatchList.md b/PatchList.md deleted file mode 100644 index 4f23c09..0000000 --- a/PatchList.md +++ /dev/null @@ -1,2923 +0,0 @@ -# accessnthmon - -### Description -Port of dwm's accessnthmon. Adds functions to tag and focus monitor by index. - -### Download -- [git branch](https://codeberg.org/Rutherther/dwl/src/branch/patch/accessnthmonitor) -- [2024-05-10](https://codeberg.org/dwl/dwl-patches/raw/branch/main/patches/accessnthmon/accessnthmon.patch) -### Authors -- [Rutherther](https://codeberg.org/Rutherther) -- [Palanix](https://codeberg.org/Palanix) - ---- -# alwayscenter - -### Description -Automatically center floating windows. - -### Download -- [git branch](https://codeberg.org/guidocella/dwl/src/branch/alwayscenter) -- [2024-06-05](https://codeberg.org/dwl/dwl-patches/raw/branch/main/patches/alwayscenter/alwayscenter.patch) - -### Authors -- [Guido Cella](https://codeberg.org/guidocella) - ---- -# attachbottom - -### Description -Newly created windows are placed at the bottom of the client tile stack. - -### Download -- [git branch](https://codeberg.org/bencc/dwl/src/branch/attachbottom) -- [2024-05-16](https://codeberg.org/dwl/dwl-patches/raw/branch/main/patches/attachbottom/attachbottom.patch) - -### Authors -- [Ben Collerson](https://codeberg.org/bencc) -- [Aurel Weinhold](https://github.com/AurelWeinhold) - ---- -# attachtop - -### Description -This is a port of attachtop patch for dwm: https://dwm.suckless.org/patches/attachtop - -New client attaches below the last master/on top of the stack. - -Behavior feels very intuitive as it doesn't disrupt existing masters no matter the amount of them, it only pushes the clients in stack down. - -### Download -- [git branch](https://codeberg.org/nikitaivanov/dwl/src/branch/attachtop) -- [2024-04-23](https://codeberg.org/dwl/dwl-patches/raw/branch/main/patches/attachtop/attachtop.patch) - -### Authors -- [Nikita Ivanov](https://codeberg.org/nikitaivanov) - ---- -# autostart - -### Description -Allow dwl to execute commands from autostart array in your config.h file. And when you exit dwl all processes from autostart array will be killed. - -Note: Commands from array are executed using execvp(). So if you need to execute shell command you need to prefix it with "sh", "-c" (change sh to any shell you like). - -### Download -- [git branch](https://codeberg.org/sevz/dwl/src/branch/autostart) -- [2024-06-07](https://codeberg.org/dwl/dwl-patches/raw/branch/main/patches/autostart/autostart.patch) -- [0.7](https://codeberg.org/dwl/dwl-patches/raw/branch/main/patches/autostart/autostart-0.7.patch) - -### Authors -- [sevz](https://codeberg.org/sevz) -- [Rayan Nakib](https://nakibrayan2.pages.dev/) -- [NFVblog](https://github.com/nf02) - ---- -# bar - -### Description - -Add a bar identical to dwm's bar. - -To use a status-bar, you can pass in status text via stdin: -``` -slstatus -s | dwl -``` - -### Dependencies -* tllist (build dependency, required & pulled automatically by fcft) -* fcft -* pixman - -### Download -- [0.7](/dwl/dwl-patches/raw/branch/main/patches/bar/bar-0.7.patch)) -- [0.6](/dwl/dwl-patches/raw/branch/main/patches/bar/bar-0.6.patch)) - -Below is a preview of the patch. - -![bar patch preview](bar.png) - -For colors, they are in `RRRR, GGGG, BBBB, AAAA` format due to inheriting the `pixman_color_t` type, an example for the color `0x282a36` would be `0x2828, 0x2a2a, 0x3636, 0xffff` - -### Authors -- [sewn](https://codeberg.org/sewn) - -### Credits -- [MadcowOG](https://github.com/MadcowOG) -- [kolumni](https://github.com/kolunmi/dwlb) - - ---- -# bar-systray - -### Description -Add a system tray next to the [bar](https://codeberg.org/dwl/dwl-patches/src/branch/main/patches/bar). Heed the warning, this is far from suckless ^^ - -![preview](systray.png) - -### Dependencies -- GTK4 -- [bar.patch](https://codeberg.org/dwl/dwl-patches/src/branch/main/patches/bar) as mentioned. -- [gtk4-layer-shell](https://github.com/wmww/gtk4-layer-shell) -- [statusnotifier-systray-gtk4](https://codeberg.org/janetski/statusnotifier-systray-gtk4) built as a static library. - -### Applying the patch -The patch applies on top of the bar patch. That needs to be applied first. - -The patch creates subdirectories `lib` and `include`. After patching, but before `make`, install -`libstatusnotifier-systray-gtk4.a` and `snsystray.h` from statusnotifier-systray-gtk4 in the -directories. One possible way to do that: - -1. Clone [https://codeberg.org/janetski/statusnotifier-systray-gtk4](https://codeberg.org/janetski/statusnotifier-systray-gtk4). Can clone to any location. -2. From statusnotifier-systray-gtk4 root: - 1. `$ meson setup --default-library=static --prefix=/ -Dgir=false -Dvala=false -Ddocs=false build` - 2. `$ meson compile -C build` - 3. `$ DESTDIR=$DWLDIR meson install -C build`, where $DWLDIR is the path to dwl root. -3. Finally, from dwl root, run `make`. - -### Download -- [git branch](/janetski/dwl/src/branch/0.7-systray) -- [0.7](/dwl/dwl-patches/raw/branch/main/patches/bar-systray/bar-systray-0.7.patch) - -### Authors -- [janetski](https://codeberg.org/janetski) ([.vetu](https://discordapp.com/users/355488216469471242) on discord) - ---- -# barborder - -### Description - -Add a border around the [bar](/dwl/dwl-patches/wiki/bar) similar to how a client is given a border. - -### Download -- [0.7](/dwl/dwl-patches/raw/branch/main/patches/barborder/barborder.patch) - -### Authors -- [sewn](https://codeberg.org/sewn) - - ---- -# barcolors - -### Description -Add support for colored status text to the [bar](/dwl/dwl-patches/src/branch/main/patches/bar). Text can be colored in the same manner as with dwlb, namely by wrapping it between `^fg(color)` and `^fg()` or `^bg(color)` and `^bg()`, where `color` is a 6-digit hexadecimal value. - -### Download -- [git branch](/kerberoge/dwl/src/branch/barcolors) -- [0.7](/dwl/dwl-patches/raw/branch/main/patches/barcolors/barcolors.patch) - -### Authors -- [kerberoge](https://codeberg.org/kerberoge) - ---- -# barheight - -### Description - -Adds the ability to change the [bar's](https://codeberg.org/dwl/dwl-patches/wiki/bar) height. - -### Download -- [0.7](https://codeberg.org/dwl/dwl-patches/raw/branch/main/patches/barheight/barheight.patch) (bar 0.7) -- [git branch](https://codeberg.org/Oak/dwl/src/branch/barheight) - -### Authors -- [Oak](https://codeberg.org/oak) - - ---- -# barpadding - -### Description - -Add vertical and horizontal space between the [bar](/dwl/dwl-patches/wiki/bar) and the edge of the screen. - -### Download -- [0.7](/dwl/dwl-patches/raw/branch/main/patches/barpadding/barpadding.patch) - -### Authors -- [sewn](https://codeberg.org/sewn) - - ---- -# borders - -### Description -Adds 2 more borders to each side (top, bottom, left, right) of every window. - - - -
-Preview -
-With the following config:
-
-```c
-static const unsigned int borderpx         = 9;  /* border pixel of windows */
-static const unsigned int borderspx        = 3;  /* width of the border that start from outside the windows */
-static const unsigned int borderepx        = 3;  /* width of the border that start from inside the windows */
-```
-
-and `border_color_type` set to `BrdOriginal`:
-
-
-and `border_color_type` set to `BrdStart`:
-
-
-and `border_color_type` set to `BrdEnd`:
-
-
-and `border_color_type` set to `BrdStartEnd`:
-
-
-
- -### Download -- [git branch](https://codeberg.org/wochap/dwl/src/branch/v0.5/borders) -- [2024-06-04](https://codeberg.org/dwl/dwl-patches/raw/commit/1a6825f2b8cd23044312c8040d0bf63ee7f85bc5/patches/borders/borders.patch) -- [v0.5](https://codeberg.org/dwl/dwl-patches/raw/branch/main/patches/borders/borders.patch) - -### Authors -- [wochap](https://codeberg.org/wochap) - ---- -# bottomstack - -### Description -bstack and bstackhoriz are two stack layouts for dwl. -### Scheme -``` -bstack (TTT) bstackhoriz (===) -+-----------------+ +-----------------+ -| | | | -| | | | -| | | | -+-----+-----+-----+ +-----------------+ -| | | | +-----------------+ -| | | | +-----------------+ -+-----+-----+-----+ +-----------------+ -``` - - -### Download -- [git branch](https://codeberg.org/wochap/dwl/src/branch/v0.6-b/bottomstack) -- [2024-07-09](https://codeberg.org/dwl/dwl-patches/raw/commit/20de07dc8759200c8a4c9651475acb331d245890/patches/bottomstack/bottomstack.patch) -- [2024-04-11](https://codeberg.org/dwl/dwl-patches/raw/commit/0f4e40fee49d1b8b430778e241b29496ae3b3b70/bottomstack/bottomstack.patch) -- [v0.5](https://codeberg.org/dwl/dwl-patches/raw/commit/5368aa392c7ebf8d7d24c232b80cfae1be457d41/bottomstack/bottomstack.patch) - -### Authors -- [wochap](https://codeberg.org/wochap) -- [DanielMowitz](https://github.com/DanielMowitz) -- [Abanoub8](https://github.com/Abanoub8) - - ---- -# buttonbystate - -### Description -Adds "state" (`enum wlr_button_state`) to configure a button action on either press or release. -This basically enables release to be used for button actions. - -### Download -- [git branch](https://codeberg.org/nullsystem/dwl/src/branch/main_buttonbystate) -- [2024-04-06](https://codeberg.org/dwl/dwl-patches/raw/branch/main/patches/buttonbystate/buttonbystate.patch) - -### Authors -- [nullsystem](https://codeberg.org/nullsystem) - ---- -# center-terminal - -### Description -Add a keybinding that toggles centering the terminally horizontally when -it's the only window, while still tiling multiple windows. - -This limits the width of long text making it easier to read, and avoids -covering the wallpaper more than necessary. - -### Download -- [git branch](https://codeberg.org/guidocella/dwl/src/branch/center-terminal) -- [2024-02-06](https://codeberg.org/dwl/dwl-patches/raw/branch/main/patches/center-terminal/center-terminal.patch) - -### Authors -- [Guido Cella](https://codeberg.org/guidocella) - ---- -# centeredmaster - -### Description -This is a port of centeredmaster patch for dwm: - -centeredmaster centers the nmaster area on screen, using mfact * monitor -width & height, with the stacked windows distributed to the left and -right. It can be selected with `Alt+c`. - -With one and two clients in master respectively this results in: - -``` -+------------------------------+ +------------------------------+ -|+--------++--------++--------+| |+--------++--------++--------+| -|| || || || || || || || -|| || || || || || M1 || || -|| || || || || || || || -|| S2 || M || S1 || || |+--------+| || -|| || || || || |+--------+| || -|| || || || || || || || -|| || || || || || M2 || || -|| || || || || || || || -|+--------++--------++--------+| |+--------++--------++--------+| -+------------------------------+ +------------------------------+ -``` - - -### Download -- [git branch](https://codeberg.org/wochap/dwl/src/branch/v0.5/centeredmaster) -- [2024-04-11](https://codeberg.org/dwl/dwl-patches/raw/commit/b104a580a80ebaf9f7e8917fe574e3e97ddd019a/centeredmaster/centeredmaster.patch) -- [v0.5](https://codeberg.org/dwl/dwl-patches/raw/commit/0f4e40fee49d1b8b430778e241b29496ae3b3b70/centeredmaster/centeredmaster.patch) - -### Authors -- [wochap](https://codeberg.org/wochap) -- [Nikita Ivanov](https://github.com/NikitaIvanovV) - ---- -# cfact - -### Description -A port of the [dwm cfacts patch](https://dwm.suckless.org/patches/cfacts/) (with the limits removed) - -Clients with higher weight are allocated more space! -``` -+---------------------+ -| | 0.5 | -| 1.0 +----------+ -+----------+ | -| | 1.0 | -| +----------+ -| 2.0 | | -| | 1.0 | -+----------+----------+` -``` -### Download -- [git branch](https://codeberg.org/Palanix/dwl/src/branch/cfact) -- [v0.7](https://codeberg.org/dwl/dwl-patches/raw/branch/main/patches/cfact/cfact-v0.7.patch) -- [v0.6](https://codeberg.org/dwl/dwl-patches/raw/branch/main/patches/cfact/cfact-v0.6.patch) -- [2024-02-15](https://codeberg.org/dwl/dwl-patches/raw/branch/main/patches/cfact/cfact.patch) - -### Authors -- [Palanix](https://codeberg.org/Palanix) - ---- -# cfact-centeredmaster - -### Description -Port of the cfact patch for the centeredmaster layout. - -Inspired by the original patch for dwm (https://dwm.suckless.org/patches/cfacts/) - -This patch requires both [cfact](https://codeberg.org/dwl/dwl-patches/src/branch/main/patches/cfact) and [centeredmaster](https://codeberg.org/dwl/dwl-patches/src/branch/main/patches/centeredmaster) patches. - -### Download - - - [2024-06-26](https://codeberg.org/dwl/dwl-patches/raw/branch/main/patches/cfact-centeredmaster/cfact-centeredmaster.patch) - -### Authors -- [acadmendes](https://codeberg.org/acadmendes) - ---- -# chainkeys - -### Description -Implements chained keybindings (like the dwm -[keychain](https://dwm.suckless.org/patches/keychain/) patch). - -Bindings can share a leading chain key. This chain key will be triggered when -Mod+chain is pressed. A subsequent keypress will be matched against bindings -for that chain key. If it is configured the action will be triggered, otherwise -the keypress will be ignored. - -### Download -- [git branch](https://codeberg.org/bencc/dwl/src/branch/chainkeys) -- [2024-05-20](https://codeberg.org/dwl/dwl-patches/raw/branch/main/patches/chainkeys/chainkeys.patch) - -### Authors -- [Ben Collerson](https://codeberg.org/bencc) - ---- -# client-opacity - -### Description -This patch adds default transparency parameters to config.h which specify the starting transparencies of all windows. - -It also adds opacities to the ruleset, enabling override of the opacities on a per client basis. - -Additionally, it adds some shortcuts: -``` -[MODKEY]+[o] -> increase focus opacity of currently focused window -[MODKEY]+[Shift]+[o] -> decrease focus opacity of currently focused window -``` - - -### Download -- [git branch](https://codeberg.org/sevz/dwl/src/branch/client-opacity) -- [2024-06-07](https://codeberg.org/dwl/dwl-patches/raw/branch/main/patches/client-opacity/client-opacity.patch) - -### Authors -- [sevz](https://codeberg.org/sevz) - ---- -# column - -### Description -A column layout patch. This patch just puts the visible clients into equal-width columns on the screen. - -### Download -- [git branch](https://codeberg.org/bencc/dwl/src/branch/column) -- [2024-01-02](https://codeberg.org/dwl/dwl-patches/raw/branch/main/patches/column/column.patch) - -### Authors -- [Ben Collerson](https://codeberg.org/bencc) ---- -# coredump - -### Description -Generate a coredump if dwl exited abnormally (to be more usefull you need to -compile dwl and wlroots with debug symbols) - -### Download -- [git branch](https://codeberg.org/sevz/dwl/src/branch/coredump) -- [main 2024-09-01](/dwl/dwl-patches/raw/branch/main/patches/coredump/coredump.patch) -- [coredump-0.7.patch](/dwl/dwl-patches/raw/branch/main/patches/coredump/coredump-0.7.patch) - -### Authors -- [sevz](https://codeberg.org/sevz) - ---- -# cursortheme - -### Description -Adds ability to change cursor's theme and size. - -```c -static const char *cursor_theme = NULL; -static const char cursor_size[] = "24"; /* Make sure it's a valid integer, otherwise things will break */ -``` - -### Download -- [git branch](https://codeberg.org/wochap/dwl/src/branch/v0.5/cursortheme) -- [2024-07-09](https://codeberg.org/dwl/dwl-patches/raw/commit/13d96b51b54500dd24544cf3a73c61b7a1414bc6/patches/cursortheme/cursortheme.patch) -- [2024-04-11](https://codeberg.org/dwl/dwl-patches/raw/commit/b828e21717fa584affeb3245359c3ab615759fa4/cursortheme/cursortheme.patch) -- [v0.5](https://codeberg.org/dwl/dwl-patches/raw/commit/c676de59d51e613bd52ac46c77a24b1cac9a61a1/cursortheme/cursortheme.patch) - -### Authors -- [wochap](https://codeberg.org/wochap) -- [egorguslyan](https://github.com/egorguslyan) - ---- -# customfloat - -### Description -Rules for floating windows support default x, y, width, height. Defaults to the center of the screen and the client size. - -If the width or height is less than or equal to 1, then the value will be interpreted as a percentage. For example, 0.5 represents 50%, 0.25 represents 25%, and 1 represents 100%. **NOTE**: Some clients, like Thunar, have minimum width/height - -The variable `center_relative_to_monitor` allows the user to choose whether to center relative to the monitor or relative to the window area. - -
-Explanation of center_relative_to_monitor: -
-The "Monitor area" refers to the space enclosed by the green rectangle, while the "Window area" refers to the space enclosed by the red rectangle.
-
-
-
- -### Download -- [git branch](https://codeberg.org/wochap/dwl/src/branch/v0.5/customfloat) -- [2024-07-09](https://codeberg.org/dwl/dwl-patches/raw/commit/13d96b51b54500dd24544cf3a73c61b7a1414bc6/patches/customfloat/customfloat.patch) -- [2024-04-11](https://codeberg.org/dwl/dwl-patches/raw/commit/98cba933c9f4099202e54f39acbf17e05bde828a/customfloat/customfloat.patch) -- [v0.5](https://codeberg.org/dwl/dwl-patches/raw/commit/bf098459219e7a473d8edb4c0435aeb6a4b82e38/customfloat/customfloat.patch) - -### Authors -- [wochap](https://codeberg.org/wochap) -- [Stivvo](https://github.com/Stivvo) - ---- -# deck - -### Description -Adds a layout with a monocle layout for clients in the stack (port of the [deck layout for dwm](https://dwm.suckless.org/patches/deck/)); stacked clients are like a deck of cards (see below) - -``` -Tile: -+-----------------+--------+ -| | | -| | S1 | -| | | -| M +--------+ -| | | -| | S2 | -| | | -+-----------------+--------+ - -Deck: -+-----------------+--------+ -| | | -| | | -| | | -| M | S1 | -| | | -| | | -| | | -+-----------------+--------+ -``` - -### Download -- [git branch](https://codeberg.org/anabasis/dwl/src/branch/deck) -- [2024-05-10](https://codeberg.org/dwl/dwl-patches/raw/branch/main/patches/deck/deck.patch) - -### Authors -- [anabasis](https://codeberg.org/anabasis) -- [Palanix](https://codeberg.org/Palanix) - ---- -# define-modkey-with-make-argument - -### Description -This patch adds the ability to define the modkey with a make argument like so: - -``` -make MODKEY=WLR_MODIFIER_ALT -make MODKEY=WLR_MODIFIER_LOGO -make MODKEY=WLR_MODIFIER_CTRL -make MODKEY=WLR_MODIFIER_SHIFT -``` - -It can be used to compile multiple times quickly, you can also have a main session and sub session with different modkeys. - -### Download -- [git branch](https://codeberg.org/Abanoub/dwl/src/branch/define-modkey-patch) -- [2024-02-14](https://codeberg.org/dwl/dwl-patches/raw/branch/main/patches/define-modkey-with-make-argument/define-modkey-with-make-argument.patch) - -### Authors -- [Abanoub](https://codeberg.org/Abanoub) - ---- -# dim-unfocused - -### Description -Implements dimming of clients which are unfocused. - -The code also allows any color dimming. There is also an additional option in `Rule`, which allows you to keep the client `neverdim`, that is, as if it is focused. - -There are also two functions that can be bound to a `Key` or `Button`, -1. `toggledimming`: Which toggles dimming for all windows (except for `Rule`s) -2. `toggledimmingclient`: Which toggles dimming for the focused window, as if the client had `neverdim` applied to it. This overwrites an applied `Rule`. - -### Download -- [2024-09-03](https://codeberg.org/dwl/dwl-patches/raw/branch/main/patches/dim-unfocused/dim-unfocused.patch) -- [2024-07-14](https://codeberg.org/dwl/dwl-patches/raw/branch/main/patches/dim-unfocused/dim-unfocused-20240714.patch) -- [2024-05-16](https://codeberg.org/dwl/dwl-patches/raw/branch/main/patches/dim-unfocused/dim-unfocused-20240516.patch) -- [2024-04-16](https://codeberg.org/dwl/dwl-patches/raw/branch/main/patches/dim-unfocused/dim-unfocused-20240416.patch) -- [git branch](https://codeberg.org/dhruva_sambrani/dwl/src/branch/dim-unfocused) - -### Authors -- [Dhruva Sambrani](https://codeberg.org/dhruva_sambrani) - ---- -# dragmfact - -### Description -Change mfact by dragging the mouse. - -### Download -- [git branch](https://codeberg.org/Palanix/dwl/src/branch/dragmfact) -- [v0.7](https://codeberg.org/dwl/dwl-patches/raw/branch/main/patches/dragmfact/dragmfact-v0.7.patch) -- [v0.6](https://codeberg.org/dwl/dwl-patches/raw/branch/main/patches/dragmfact/dragmfact-v0.6.patch) -- [2024-02-16](https://codeberg.org/dwl/dwl-patches/raw/branch/main/patches/dragmfact/dragmfact.patch) - -### Authors -- [Palanix](https://codeberg.org/Palanix) - ---- -# dragresize - -### Description -implement rio-like window resizing - -select window to resize (mod+middleclick by default) then drag out an area for it to occupy - -### Download -- [git branch](https://codeberg.org/notchoc/dwl/src/branch/dragresize) -- [2024-07-10](https://codeberg.org/dwl/dwl-patches/raw/branch/main/patches/dragresize/dragresize.patch) -- [2024-06-19](https://codeberg.org/dwl/dwl-patches/raw/commit/8c75e6dbc1728bf70d42547222464f496d9ea613/patches/dragresize/dragresize.patch) - -### Authors -- [notchoc](https://codeberg.org/notchoc) - ---- -# en-keycodes - -### Description -Always use the English keymap to get keycodes, so key bindings work even when using a non-English keyboard layout. - -### Download -- [git branch](https://codeberg.org/ForzCross/dwl/src/branch/en-keycodes.patch) -- [2024-01-11](https://codeberg.org/dwl/dwl-patches/raw/branch/main/patches/en-keycodes/en-keycodes.patch) - -### Authors -- [ForzCross](https://codeberg.org/ForzCross) -- [Nikita Ivanov](https://github.com/NikitaIvanovV) -- [dimkr](https://codeberg.org/dimkr) () - ---- -# envcfg - -### Description -Input device configuration (click method, tap-and-drag, acceleration, etc), border size and colors via environment variables. - -### Download -- [2024-02-11](https://codeberg.org/dwl/dwl-patches/raw/branch/main/patches/envcfg/envcfg.patch) - -### Authors -- [Dima Krasner](https://codeberg.org/dimkr) () - ---- -# fakefullscreenclient - -### Description -Allow setting fake fullscreen per client - -### Download -- [git branch](https://codeberg.org/notchoc/dwl/src/branch/fakefullscreenclient) -- [2024-03-29](https://codeberg.org/dwl/dwl-patches/raw/branch/main/patches/fakefullscreenclient/fakefullscreenclient.patch) -### Authors -- [notchoc](https://codeberg.org/notchoc) - ---- -# fallback - -### Description -Tries a different display mode if the preferred mode doesn't work. - -### Download -- [2024-02-11](https://codeberg.org/dwl/dwl-patches/raw/branch/main/patches/fallback/fallback.patch) - -### Authors -- [Dima Krasner](https://codeberg.org/dimkr) () - ---- -# float-unfocused-border-color - -### Description -A revive of the floatBorderColor patch. - -This patch allows you to set a color for floating windows when they are unfocused. - -### Download -- [git branch](https://codeberg.org/yuki-was-taken/dwl-patch/src/branch/float-unfocused-border-color/) -- [2024-06-07](https://codeberg.org/dwl/dwl-patches/raw/branch/main/patches/float-unfocused-border-color/float-unfocused-border-color.patch) - -### Authors -- [yuki](https://codeberg.org/yuki-was-taken) -- [Palanix (Original Author)](https://codeberg.org/Palanix) - ---- -# focusdir - -### Description -Focus the window to the left, right, above or below the current focused window - -### Download -- [git branch](https://codeberg.org/ldev105/dwl/src/branch/focusdir) -- [2023-01-22](https://codeberg.org/dwl/dwl-patches/raw/branch/main/patches/focusdir/focusdir.patch) - -### Authors -- [ldev105](https://codeberg.org/ldev105) - ---- -# foreign-toplevel-management - -### Description -Implement `foreign-toplevel-management`, it add handlers for activate, close, fullscreen and destroy request events, it's missing minimize and maximize request handlers. - -### Download -- [git branch](https://codeberg.org/wochap/dwl/src/branch/v0.6-a/foreign-toplevel-management) -- [2024-05-02](https://codeberg.org/dwl/dwl-patches/raw/commit/e58c3ec41a39df934d2998161d7187ac965ea77a/foreign-toplevel-management/foreign-toplevel-management.patch) - -### Authors -- [wochap](https://codeberg.org/wochap) ---- -# gaplessgrid - -### Description -Arranges windows in a grid. Except it adjusts the number of windows in the first few columns to avoid empty cells. - -### Download -- [2024-07-14](https://codeberg.org/dwl/dwl-patches/raw/branch/main/patches/gaplessgrid/gaplessgrid.patch) -- [2023-08-01](https://codeberg.org/dwl/dwl-patches/raw/branch/main/patches/gaplessgrid/gaplessgrid-20230801.patch) -- [git branch](https://codeberg.org/dhruva_sambrani/dwl/src/branch/gaplessgrid) - -## Pre-codeberg -- [2023-11-14](https://github.com/djpohly/dwl/compare/main...Sneethe:gaplessgrid.patch) -- [2021-07-27](https://github.com/djpohly/dwl/compare/main...vnepogodin:gaplessgrid.patch) - -### Authors -- [Sneethe](https://github.com/Sneethe/) -- [Vladislav Nepogodin](https://github.com/vnepogodin) -- [Dhruva Sambrani](https://codeberg.org/dhruva_sambrani/) (Revived to codeberg) - ---- -# gaps - -### Description -Adds gaps between clients, providing the ability to disable them at run-time. - -`smartgaps` can also be changed to remove gaps when there is only one client present. - -### Download -- [git branch](https://codeberg.org/bigman/dwl/src/branch/gaps) -- [2024-07-12](https://codeberg.org/dwl/dwl-patches/raw/branch/main/patches/gaps/gaps.patch) - -### Authors -- [peesock](https://codeberg.org/bigman) -- [sewn](https://codeberg.org/sewn) -- [Serene Void](https://github.com/serenevoid) -- [Rayan Nakib](https://nakibrayan2.pages.dev) - ---- -# gestures - -### Description -Add swipe gestures to trigger functions, similar to [libinput-gestures](https://github.com/bulletmark/libinput-gestures/tree/master). It supports the following gestures: `SWIPE_UP`, `SWIPE_DOWN`, `SWIPE_LEFT` and `SWIPE_RIGHT` - -> NOTE: It requires that you have previously applied [pointer-gestures-unstable-v1](https://codeberg.org/dwl/dwl-patches/src/branch/main/patches/pointer-gestures-unstable-v1) - -```c -static const Gesture gestures[] = { - /* modifier gesture fingers_count function argument */ - { MODKEY, SWIPE_LEFT, 4, shiftview, { .i = 1 } }, - { 0, SWIPE_RIGHT, 4, shiftview, { .i = -1 } }, -}; -``` - -**NOTE:** the example above requires the following patch [shiftview](https://codeberg.org/dwl/dwl-patches/wiki/shiftview) - -### Download -- [git branch](https://codeberg.org/wochap/dwl/src/branch/v0.5/gestures) -- [2024-07-09](https://codeberg.org/dwl/dwl-patches/raw/commit/13d96b51b54500dd24544cf3a73c61b7a1414bc6/patches/gestures/gestures.patch) -- [2024-04-11](https://codeberg.org/dwl/dwl-patches/raw/commit/be3735bc6a5c64ff76c200a8679453bd179be456/gestures/gestures.patch) -- [v0.5](https://codeberg.org/dwl/dwl-patches/raw/commit/655fd2916c1bcaa022ce6dcdfb370051cf64df66/gestures/gestures.patch) - -### Authors -- [wochap](https://codeberg.org/wochap) - ---- -# globalkey - -### Description -This patch adds ability to pass specified in config header keys globally, somewhat in hyprlands approach. -This might deal with waylands lack of global shortcuts. - -Example: -``` -static const PassKeypressRule pass_rules[] = { - ADDPASSRULE("com.obsproject.Studio", MODKEY, XKB_KEY_Home), - ADDPASSRULE("discord", 0, XKB_KEY_n), - /* xkb key is case ignored */ -}; -``` -will pass `MODKEY + Home` key to obs(flatpak version) regardless of what client is currently focused if any. -String "com.obsproject.Studio" should be exact match for appid of the client. To get appid use [dwlmsg](https://codeberg.org/notchoc/dwlmsg), -or run stock dwl from a terminal then launch the needed application inside, dwl will print all the info to the stdout. - -Note that if popup (like [fuzzel](https://codeberg.org/dnkl/fuzzel)) is focused, no key will be globally passed. -This is done so these menus don't get closed after hitting some of the global keys. - - -### Download -- [git branch](https://codeberg.org/korei999/dwl/src/branch/globalkey) -- [2024-06-08](https://codeberg.org/dwl/dwl-patches/src/branch/main/patches/globalkey/globalkey.patch) -### Authors -- [korei999](https://codeberg.org/korei999) - ---- -# headless - -### Description -Implements `swaymsg create_output` command, it allows you to create virtual/headless outputs. But in combination with a VNC server (for example wayvnc), this allows you to essentially have additional monitors, by connecting to the VNC server with an appropiate client (for example on an tablet or laptop). - -If you plan to use wayvnc, you'll need [virtual-pointer](https://codeberg.org/dwl/dwl-patches/wiki/virtual-pointer.-) patch as well - -### Download -- [git branch](https://codeberg.org/wochap/dwl/src/v0.5/headless) -- [v0.5](https://codeberg.org/dwl/dwl-patches/raw/commit/0096e49402bc59b4050e12cdb9befb79d0011006/headless/headless.patch) - -### Authors -- [wochap](https://codeberg.org/wochap) ---- -# hide-behind-fullscreen - -### Description -Hide all clients (and layer surfaces) behind the current client if it is -fullscreen, only the background (layer surfaces at the background layer) will -be shown - -### Download -- [git branch](https://codeberg.org/sevz/dwl/src/branch/hide-behind-fullscreen) -- [main 2024-09-01](/dwl/dwl-patches/raw/branch/main/patches/hide-behind-fullscreen/hide-behind-fullscreen.patch) -- [hide-behind-fullscreen-0.7.patch](/dwl/dwl-patches/raw/branch/main/patches/hide-behind-fullscreen/hide-behind-fullscreen-0.7.patch) - -### Authors -- [sevz](https://codeberg.org/sevz) - ---- -# hide-behind-monocle - -### Description -Hide all clients behind the focused one in the monocle layout - -### Download -- [git branch](https://codeberg.org/sevz/dwl/src/branch/hide-behind-monocle) -- [main 2024-09-01](/dwl/dwl-patches/raw/branch/main/patches/hide-behind-monocle/hide-behind-monocle.patch) -- [hide-behind-monocle-0.7.patch](/dwl/dwl-patches/raw/branch/main/patches/hide-behind-monocle/hide-behind-monocle-0.7.patch) - -### Authors -- [sevz](https://codeberg.org/sevz) - ---- -# hide_vacant_tags - -### Description - -Prevent [bar](/dwl/dwl-patches/wiki/bar) from drawing tags with no clients (i.e. vacant). -It also stops drawing empty rectangles on the bar for non-vacant tags as there is no need anymore to distinguish vacant tags and it offers a more visible contrast than if there were filled/empty rectangles. - -### Download -- [0.7](/dwl/dwl-patches/raw/branch/main/patches/hide_vacant_tags/hide_vacant_tags.patch) - -### Authors -- [sewn](https://codeberg.org/sewn) - - ---- -# hiderule - -### Description -Adds a `ishidden` option to client rules, that allows hiding any matching clients entirely. - -### Download -- [git branch](https://codeberg.org/minego/dwl/src/branch/hiderule) -- [yyyy-mm-dd](https://codeberg.org/dwl/dwl-patches/raw/branch/main/patches/hiderule/hiderule.patch) - -### Authors -- [minego](https://codeberg.org/minego) ---- -# inputdevicerules - -### Description -Input device rules implemented using custom device create functions for -keyboards and pointing devices. - -Examples provided: - -- ignore unwanted input devices -- configure a toggle input device -- exclude certain keyboards (eg ydotool) from keyboard group - -### Download -- [git branch](https://codeberg.org/bencc/dwl/src/branch/inputdevicerules) -- [2024-06-21](https://codeberg.org/dwl/dwl-patches/raw/branch/main/patches/inputdevicerules/inputdevicerules.patch) - -### Authors -- [Ben Collerson](https://codeberg.org/bencc) - ---- -# ipc - -### Description -Largely based on [raphi](https://sr.ht/~raphi/)'s [somebar](https://sr.ht/~raphi/somebar/), this patch provides an ipc for wayland clients to get and set dwl state. The ipc is intended for status bars, but can also be scripted with tools like [dwlmsg](https://codeberg.org/notchoc/dwlmsg). - -Status information to stdout is currently disabled as dwl tends to freeze. For now, `dwlmsg -w` should act as a drop-in replacement. - -Note to [pertag](../pertag/) users: apply [this](./ipcpertag.patch) for ipc tagsetting to work as expected - -### Download -- [git branch](https://codeberg.org/notchoc/dwl/src/branch/ipc) -- [2024-08-16](https://codeberg.org/dwl/dwl-patches/raw/branch/main/patches/ipc/ipc.patch) -- [2024-07-29](https://codeberg.org/dwl/dwl-patches/raw/commit/d235f0f88ed069eca234da5a544fb1c6e19f1d33/patches/ipc/ipc.patch) don't focus other outputs (apply [this minipatch](./focus-tagset-output.patch) if you'd prefer that) -- [2024-07-16](https://codeberg.org/dwl/dwl-patches/raw/commit/642b2559d522034785c1c1203c6d426855ec19ca/patches/ipc/ipc.patch) -- [2024-06-30](https://codeberg.org/dwl/dwl-patches/raw/commit/9a751e5020133d3ab9219e68a43109c6f3c931a7/patches/ipc/ipc.patch) -- [2024-06-21](https://codeberg.org/dwl/dwl-patches/raw/commit/f96ee44cbaef06bd38b8fa29ac7ecba8b1b5abd5/patches/ipc/ipc.patch) -- [2024-06-19](https://codeberg.org/dwl/dwl-patches/raw/commit/e69afc7263b8d982a7923e5d4910f2e1f7140bb8/patches/ipc/ipc.patch) -- [2024-06-08](https://codeberg.org/dwl/dwl-patches/raw/commit/f8598a91b44acc3bd7e9041be97265bbce8fa219/patches/ipc/ipc.patch) -- [2024-03-13](https://codeberg.org/dwl/dwl-patches/raw/commit/0150cfebbcd85f2d6e6728afad345a11a0c45947/ipc/ipc.patch) -- [2024-02-20](https://codeberg.org/dwl/dwl-patches/raw/commit/0c5ae06e4bc1d7f641376e8fcb86b43bd48ce2ee/ipc/ipc.patch) -- [2023-10-28](https://gist.githubusercontent.com/fbushstone/b116c44340eb7a7878de1119dd931ca5/raw/ee66ac9e2a5dddd9b528df553e21080c2811e974/ipc-v2-fixed.patch) Updated version of 2023-04-29, prevents ipc from freezing the compositor in printstatus. -- [2023-04-29](https://github.com/djpohly/dwl/compare/main...madcowog:ipc-v2.patch) Use this for dwl-ipc-unstable-v2. If you are using commit [9d68554](https://github.com/djpohly/dwl/commit/9d68554c59a886b641d27a364884fb461af2d4f1) or later, use this. For status bars this protocol is supported by dwlb, Waybar and dwl-bar. -- [2023-04-29](https://github.com/djpohly/dwl/compare/main...madcowog:ipc-bbdf2.patch) Use this for dwl-ipc-unstable-v1. If you are using commit [bbdaf2a9](https://github.com/djpohly/dwl/commit/bbdf2a913b72e7a308ee0dfde6518a4285d4a775), [release 0.4](https://github.com/djpohly/dwl/releases/tag/v0.4) or earlier, use this. For status bars, this protocol is supported by dwl-bar. -- [2023-02-20](https://lists.sr.ht/~raphi/public-inbox/patches/39166) Use this for net-tapesoftware-dwl-wm-unstable-v1. If you are using commit [c69a2bec](https://github.com/djpohly/dwl/commit/c69a2bec3ff417fbc4ea8fec0a49096773e01e7d) or later, use this. For status bars this protocol is supported by somebar. - -### Authors -- [MadcowOG](https://github.com/MadcowOG) -- [fbushstone](https://github.com/fbushstone) -- [notchoc](https://codeberg.org/notchoc) -- [snuk](https://codeberg.org/snuk) - ---- -# kblayout - -### Description -This patch adds per-client keyboard layout and ability to send current -keyboard layout information to a status bar. - -Only per-client feature is enabled by default. You can edit -`kblayout_file` and `kblayout_cmd` variables to notify a status bar -about keyboard layout. - -[Someblocks](https://sr.ht/~raphi/someblocks) config that works -with the example settings in `config.h`: - -```c -static const Block blocks[] = { - /*Icon*/ /*Command*/ /*Update Interval*/ /*Update Signal*/ - {"", "cat /tmp/dwl-kblayout", 0, 1}, -}; -``` - -Both of these features are included in one patch because their -implementation happens to share some code. If you don't need -any of these features, just disable it in `config.h`. - -### Download -- [2024-06-01](https://codeberg.org/dwl/dwl-patches/raw/branch/main/patches/kblayout/kblayout.patch) - -### Authors -- [ForzCross](https://codeberg.org/ForzCross) -- [Nikita Ivanov](https://github.com/NikitaIvanovV) - ---- -# keyboardshortcutsinhibit - -### Description -Allows clients to use the keyboard-shortcuts-inhibit protocol to block the compositor from using keybinds. This is useful for virtualization software like looking-glass which requires this protocol to run. - -### Download -- [git branch](https://codeberg.org/Rutherther/dwl/src/branch/patch/keyboard-shortcuts-inhibit) -- [2024-05-10](https://codeberg.org/dwl/dwl-patches/raw/branch/main/patches/keyboardshortcutsinhibit/keyboardshortcutsinhibit.patch) -- [2023-05-01](https://github.com/djpohly/dwl/compare/main...madcowog:keyboard-shortcuts-inhibit.patch) - -### Authors -- [Rutherther](https://codeberg.org/Rutherther) -- [MadcowOG](https://github.com/MadcowOG) - ---- -# keycodes - -### Description -Use keycodes instead of keysyms. This way, input is independent from keyboard -layout (you can use the keys.h file to customize, or get the keycodes with -`wev` or `xkbcli interactive-wayland` (x11-libs/libxkbcommon[tools] in gentoo)). - -### Download -- [git branch](https://codeberg.org/sevz/dwl/src/branch/keycodes) -- [main 2024-09-01](/dwl/dwl-patches/raw/branch/main/patches/keycodes/keycodes.patch) -- [keycodes-0.7.patch](/dwl/dwl-patches/raw/branch/main/patches/keycodes/keycodes-0.7.patch) - -### Config after patching -(run in DWL source directory) -``` -export XKB_DEFAULT_VARIANT=yourbestkeyboardlayout -cc -lxkbcommon -o generate-keys generate-keys.c -./generate-keys -``` - -### Authors -- [sevz](https://codeberg.org/sevz) - ---- -# less-simple-touch-input - -### Description -Adds touchscreen functionality. - -This patch was based on the [simple-touch-input](https://codeberg.org/dwl/dwl-patches/wiki/simple-touch-input) but instead of emulating mouse movement, this now forwards the appropriate event notifications to clients. - -KNOWN BUGS: -- Sometimes, the pointer moves to where the screen is pressed, but the button press doesn't occur until the screen is touched AGAIN. This means that if you touch to click button 'Q' on the screen (for instance), nothing happens; then you touch elsewhere on the screen and THEN button 'Q' registers a click. This is annoying, doesn't always happen, and I don't yet know how to fix it. - -### Download -- [git branch](https://codeberg.org/minego/dwl/src/branch/touch) -- [2024-03-26](https://codeberg.org/dwl/dwl-patches/raw/branch/main/patches/less-simple-touch-input/less-simple-touch-input.patch) - -### Authors -- [minego](https://codeberg.org/minego) -- [fauxmight](https://codeberg.org/fauxmight) -- [Unprex](https://github.com/Unprex) - -### Changelog -- 2024-02-11 Corrected issue where motion events where not sending notifications for unfocused clients such as an on screen keyboard -- 2024-03-26 Rebased, and removed #ifdef's for the pointer constraints patch which has been merged into upstream -- 2024-03-28 Removed debug ---- -# limitnmaster - -### Description -Limits nmaster to within the range of currently-opened windows (nmaster will not change past the full horizontal split layout) - -### Download -- [git branch](https://codeberg.org/dev-gm/dwl/src/branch/limitnmaster) -- [2024-03-15](https://codeberg.org/dwl/dwl-patches/raw/branch/main/patches/limitnmaster/limitnmaster.patch) - -### Authors -- [dev-gm](https://codeberg.org/dev-gm) ---- -# lockedkeys - -### Description -This patch allows you to add keybindings to the lockscreen. - -```c -static const Key lockedkeys[] = { - /* Note that Shift changes certain key codes: c -> C, 2 -> at, etc. */ - /* modifier key function argument */ - - /* Ctrl-Alt-Backspace and Ctrl-Alt-Fx used to be handled by X server */ - { WLR_MODIFIER_CTRL|WLR_MODIFIER_ALT,XKB_KEY_Terminate_Server, quit, {0} }, -#define CHVT(n) { WLR_MODIFIER_CTRL|WLR_MODIFIER_ALT,XKB_KEY_XF86Switch_VT_##n, chvt, {.ui = (n)} } - CHVT(1), CHVT(2), CHVT(3), CHVT(4), CHVT(5), CHVT(6), - CHVT(7), CHVT(8), CHVT(9), CHVT(10), CHVT(11), CHVT(12), -}; -``` - -### Download -- [git branch](https://codeberg.org/wochap/dwl/src/branch/v0.5/lockedkeys) -- [2024-04-11](https://codeberg.org/dwl/dwl-patches/raw/commit/fc4146f3068dcd46035a2a11fe9d6109a97ae6d6/lockedkeys/lockedkeys.patch) -- [v0.5](https://codeberg.org/dwl/dwl-patches/raw/commit/2a6560c167e5c9afc5598ac5431d23d90de8846c/lockedkeys/lockedkeys.patch) - -### Authors -- [wochap](https://codeberg.org/wochap) - ---- -# mastercolumn - -### Description -This patch adds a layout, `mastercol`, in which the windows in the master area are arranged in columns of equal size. The number of columns is always nmaster + 1, and the last column is a stack of leftover windows (as in the normal tile layout). It effectively differs from the default tile layout only in that master windows are arranged horizontally rather than vertically. - -For gaps, apply `mastercolumn-gaps.patch` on top of `mastercolumn.patch` and `gaps.patch`. - -### Download -##### `mastercolumn.patch` -- [git branch](/shivers/dwl/src/branch/mastercolumn) -- [0.7](/dwl/dwl-patches/raw/branch/main/patches/mastercolumn/mastercolumn.patch) - -##### `mastercolumn-gaps.patch` -- [git branch](/shivers/dwl/src/branch/mastercolumn-gaps) -- [0.7](/dwl/dwl-patches/raw/branch/main/patches/mastercolumn/mastercolumn-gaps.patch) - -### Authors -- [shivers](https://codeberg.org/shivers) - ---- -# menu - -### Description - -This patch adds `menu` command, which allows dwl to interface with dmenu-like programs. - -By default, two menus are available: -- focusing a window by its title by pressing `Alt+o` -- selecting a layout from a list by pressing `Alt+Shift+o` - -Edit `menus` array in `config.h` to add/change menus and use a different dmenu program. - -### Download -- [git branch](https://codeberg.org/nikitaivanov/dwl/src/branch/menu) -- [2024-07-13](https://codeberg.org/dwl/dwl-patches/raw/branch/main/patches/menu/menu.patch) - -### Authors -- [Nikita Ivanov](https://github.com/NikitaIvanovV) - ---- -# meson - -### Description -Add the meson build system. - -This is useful for people who do not want to self-manage a wlroots installation. - -To enable Xwayland support, you will need to enable it in the wlroots subproject: -```sh -meson setup -Dwlroots:xwayland=enabled build -``` -It is also reccomended to see the wlroots meson project configuration logs for any -unusual checks, such as requiring `hwdata` for the DRM backend. - -### Download -- [git branch](/sewn/dwl/src/branch/meson) -- [2024-08-27](/dwl/dwl-patches/raw/branch/main/patches/meson/meson.patch) - -### Authors -- [sewn](/sewn) - - ---- -# minimalborders - -### Description -Dynamically adjusts the borders between adjacent windows to make them visually merge - -**NOTE:** to disable minimalborders after applying this patch, set `draw_minimal_borders` to `0` - -```c -static const int draw_minimal_borders = 0; /* disable minimalborders */ -``` - -
-Preview: -
-with:
-
-```c
-static const unsigned int borderpx         = 10;  /* border pixel of windows */
-```
-
-Before applying the patch
-
-
-After applying the patch
-
-
-
- -### Download -- [git branch](https://codeberg.org/wochap/dwl/src/branch/v0.5/minimalborders) -- [2024-07-09](https://codeberg.org/dwl/dwl-patches/raw/commit/13d96b51b54500dd24544cf3a73c61b7a1414bc6/patches/minimalborders/minimalborders.patch) -- [2024-04-11](https://codeberg.org/dwl/dwl-patches/raw/commit/7a5c3420822074c544fa102e030b7c30aa6b6be8/minimalborders/minimalborders.patch) -- [v0.5](https://codeberg.org/dwl/dwl-patches/raw/commit/be3735bc6a5c64ff76c200a8679453bd179be456/minimalborders/minimalborders.patch) - -### Authors -- [wochap](https://codeberg.org/wochap) - ---- -# modes - -### Description -Implement modes, that way each mapping is associated with a mode and is only active while in that mode, default mode is `NORMAL` - -### Example - -In the example below, you declare a mode: `BROWSER`, which is activated when you press modkey + b. Then, you can press f to launch `Firefox` and return to the default `NORMAL` mode. - -```c -enum { - BROWSER, -}; -const char *modes_labels[] = { - "browser", -}; - -static const Key keys[] = { - // ... - { MODKEY, XKB_KEY_b, entermode, {.i = BROWSER} }, - // ... -}; - -static const Modekey modekeys[] = { - /* mode modifier key function argument */ - { BROWSER, { 0, XKB_KEY_f, spawn, SHCMD("firefox") } }, - { BROWSER, { 0, XKB_KEY_f, entermode, {.i = NORMAL} } }, - { BROWSER, { 0, XKB_KEY_Escape, entermode, {.i = NORMAL} } }, -}; -``` - -### Download -- [git branch](https://codeberg.org/wochap/dwl/src/branch/v0.5/modes) -- [v0.5](https://codeberg.org/dwl/dwl-patches/raw/branch/main/patches/modes/modes.patch) - -### Authors -- [wochap](https://codeberg.org/wochap) - ---- -# monfig - -### Description -Allows more monitor configuration in config.h - -### Download -- [git branch](https://codeberg.org/Palanix/dwl/src/branch/monfig) -- [2024-02-15](https://codeberg.org/dwl/dwl-patches/raw/branch/main/patches/monfig/monfig.patch) - -### Authors -- [Palanix](https://codeberg.org/Palanix) - ---- -# movecenter - -### Description - -> This patch is no longer being maintained by me [wochap](https://codeberg.org/wochap), since I'm now using a different patch specific to my use case: https://codeberg.org/wochap/dwl/src/branch/v0.6-c/betterfloat/betterfloat-diff.patch. - -This patch provides a keybinding to center the focused floating window. - -Press MODKEY + x to center the focused floating window. - -It does NOT center windows that are not floating. - -The variable `respect_monitor_reserved_area` allows the user to choose whether to center relative to the monitor or relative to the window area. - -
-Explanation of respect_monitor_reserved_area: -
-The "Monitor area" refers to the space enclosed by the green rectangle, while the "Window area" refers to the space enclosed by the red rectangle.
-
-
-
- -### Download -- [git branch](https://codeberg.org/wochap/dwl/src/branch/v0.6/movecenter) -- [v0.6](https://codeberg.org/dwl/dwl-patches/raw/commit/b1ca929ee645cd3e175f198e250448b54624acd6/patches/movecenter/movecenter.patch) -- [v0.5](https://codeberg.org/dwl/dwl-patches/raw/commit/187d7f511572457750fcf6e42c99cdc7befe05e7/patches/movecenter/movecenter.patch) - -### Authors -- [wochap](https://codeberg.org/wochap) - - ---- -# moveresizekb - -### Description -This allows the user to change size and placement of floating windows using only the keyboard, default keybindings: - -| Keybinding | Action | -| :--- | :--- | -| MODKEY + Up | move 40px up | -| MODKEY + Down | move 40px down | -| MODKEY + Left | move 40px left | -| MODKEY + Right | move 40px right | -| MODKEY + Shift + Up | shrink height 40px | -| MODKEY + Shift + Down | grow height 40px | -| MODKEY + Shift + Left | shrink width 40px | -| MODKEY + Shift + Right | grow width 40px | - -### Download -- [git branch](https://codeberg.org/wochap/dwl/src/branch/v0.5/moveresizekb) -- [v0.5](https://codeberg.org/dwl/dwl-patches/raw/branch/main/patches/moveresizekb/moveresizekb.patch) - -### Authors -- [wochap](https://codeberg.org/wochap) - ---- -# movestack - -### Description -Allows you to move a window up and down the stack. - -### Download -- [git branch](https://codeberg.org/wochap/dwl/src/branch/v0.5/movestack) -- [v0.5](https://codeberg.org/dwl/dwl-patches/raw/branch/main/patches/movestack/movestack.patch) - -### Authors -- [wochap](https://codeberg.org/wochap) -- [sam-barr](https://github.com/ss7m) -- [Dmitry Zakharchenko](https://github.com/dm1tz) -- [Abanoub8](https://github.com/Abanoub8) -- [Nikita Ivanov](https://github.com/NikitaIvanovV) - ---- -# namedscratchpads - -### Description -Allows for the creation of multiple scratchpad windows, each assigned to a different keybinding. In simple terms, it enables 'run or raise' functionality - -This patch adds the following functions: - -* `togglescratch`: simply toggles the scratchpad window -* `focusortogglescratch`: change the focus to the scratchpad window if it is visible and toggles it if it is already in focus -* `focusortogglematchingscratch`: similar to `focusortogglescratch` but also closes all other scratchpad windows - -If you don't assign keybindings to any of the above functions and so get a compiler warning about them not being used, just remove them from your dwl branch to stop the warning. - -### Download -- [git branch (v0.6)](https://codeberg.org/bencc/dwl/src/branch/namedscratchpads) -- [2024-07-13 (v0.6)](https://codeberg.org/dwl/dwl-patches/raw/branch/main/patches/namedscratchpads/namedscratchpads.patch) - -### Authors -- [Ben Collerson](https://codeberg.org/bencc) -- [wochap](https://codeberg.org/wochap) -- [Louis-Michel Raynauld](https://github.com/loumray) - ---- -# naturalscrolltrackpad - -### Description -Set natural scrolling only for trackpads. - -### Download -- [git branch](https://codeberg.org/neuromagus/dwl/src/branch/naturalscrolltrackpad) -- [2024-01-06](https://codeberg.org/dwl/dwl-patches/raw/branch/main/patches/naturalscrolltrackpad/naturalscrolltrackpad.patch) - -### Authors -- [Neuromagus](https://codeberg.org/neuromagus) -- [Nikita Ivanov](https://github.com/NikitaIvanovV) - ---- -# nextlayout - -### Description -Change the current layout to the next available one. - -### Download -- [0.7](/dwl/dwl-patches/raw/branch/main/patches/nextlayout/nextlayout.patch) - -### Authors -- [sewn](/sewn) - - ---- -# numlock-capslock - -### Description -Allows activating numlock or capslock at startup. - -### Download -- [git branch](https://codeberg.org/sevz/dwl/src/branch/numlock-capslock) -- [main 2024-09-02](/dwl/dwl-patches/raw/branch/main/patches/numlock-capslock/numlock-capslock.patch) -- [numlock-capslock.patch](/dwl/dwl-patches/raw/branch/main/patches/numlock-capslock/numlock-capslock-0.7.patch) - -### Authors -- [sevz](https://codeberg.org/sevz) - ---- -# passthrough - -### Description -allows pausing keybind handling - -also allows for bitcarrying-esque control of nested instances - -default keybind is Ctrl+Logo+Alt+Shift+Esc, can be customized in config.h - -### Download -- [git branch](https://codeberg.org/notchoc/dwl/src/branch/passthrough) -- [2024-06-26](https://codeberg.org/dwl/dwl-patches/raw/branch/main/patches/passthrough/passthrough.patch) -- [2024-06-22](https://codeberg.org/dwl/dwl-patches/raw/commit/3f44fb23d8cb6c7d700f41525dc00493e392083c/patches/passthrough/passthrough.patch) -### Authors -- [notchoc](https://codeberg.org/notchoc) - ---- -# perinputconfig - -### Description -Replace the singular keyboard and pointer input configuration with an array allowing to set different variables matching by name. - -Tip to find the names: Grep for `device_name` and add a line after it to print to stdout. Then run EX: `dwl > /tmp/print_device_names.log`, exit dwl, and should see the names. - -### Download -- [git branch](https://codeberg.org/nullsystem/dwl/src/branch/main_perinputconfig) -- [2024-06-08](https://codeberg.org/dwl/dwl-patches/raw/branch/main/patches/perinputconfig/perinputconfig.patch) -- [v0.5](https://codeberg.org/dwl/dwl-patches/raw/branch/main/patches/perinputconfig/perinputconfig-v0.5.patch) - -### Authors -- [nullsystem](https://codeberg.org/nullsystem) - ---- -# pertag - -### Description -Makes layout, mwfact and nmaster individual for every tag. - -### Download -- [git branch](https://codeberg.org/wochap/dwl/src/branch/v0.6/pertag) -- [v0.6](https://codeberg.org/dwl/dwl-patches/raw/commit/65ea99519bbf7a52f48932aea7385f81f8b30867/patches/pertag/pertag.patch) -- [2024-04-11](https://codeberg.org/dwl/dwl-patches/raw/commit/bf098459219e7a473d8edb4c0435aeb6a4b82e38/pertag/pertag.patch) -- [v0.5](https://codeberg.org/dwl/dwl-patches/raw/commit/3f9a58cde9e3aa02991b3e5a22d371b153cb1459/pertag/pertag.patch) - -### Authors -- [wochap](https://codeberg.org/wochap) -- [Guido Cella](https://github.com/guidocella) - ---- -# pointer-gestures-unstable-v1 - -### Description -Forward the following events to client: -swipe_begin, swipe_update, swipe_end, pinch_begin, pinch_update and pinch_end - -This patch allows you to pinch zoom in Chrome, for example. In combination with the following patches [gestures](https://codeberg.org/dwl/dwl-patches/wiki/gestures) and [shiftview](https://codeberg.org/dwl/dwl-patches/wiki/shiftview), it would allow you to switch workspaces by performing a 3-finger swipe on your touchpad. - - -### Download -- [git branch](https://codeberg.org/wochap/dwl/src/branch/v0.5/pointer-gestures-unstable-v1) -- [2024-07-12](https://codeberg.org/dwl/dwl-patches/raw/commit/05dbce217b676e989b0fc9e0eecf83b386ac9e07/patches/pointer-gestures-unstable-v1/pointer-gestures-unstable-v1.patch) -- [2024-07-09](https://codeberg.org/dwl/dwl-patches/raw/commit/2322f3efeae8da44227e0acc760ffd3dea153716/patches/pointer-gestures-unstable-v1/pointer-gestures-unstable-v1.patch) -- [2024-04-11](https://codeberg.org/dwl/dwl-patches/raw/commit/c676de59d51e613bd52ac46c77a24b1cac9a61a1/pointer-gestures-unstable-v1/pointer-gestures-unstable-v1.patch) -- [v0.5](https://codeberg.org/dwl/dwl-patches/raw/commit/fc4146f3068dcd46035a2a11fe9d6109a97ae6d6/pointer-gestures-unstable-v1/pointer-gestures-unstable-v1.patch) - -### Authors -- [wochap](https://codeberg.org/wochap) ---- -# press_repeat_release - -### Description -This patch adds 3 additional options to the `Key` struct, `on_press`, `on_repeat` and `on_release` which can be used to control which events a key binding should be triggered on. - -NOTE: Due to concerns about patching difficulties this patch does NOT include any changes to `config.def.h`. After applying you will need to add the 3 additional initializers to each key binding that you would like to modify. Any key binding that is not updated will cause a build warning but should function as it does in vanilla. - -### Download -- [git branch](https://codeberg.org/USERNAME/dwl/src/branch/press_repeat_release) -- [2024-03-27](https://codeberg.org/dwl/dwl-patches/raw/branch/main/patches/press_repeat_release/press_repeat_release.patch) - -### Authors -- [minego](https://codeberg.org/minego) ---- -# primaryselection - -### Description -Adds a config option to disable/enable primary selection (middle-click paste). - -### Download -- [git branch](https://codeberg.org/nullsystem/dwl/src/branch/main_primaryselection) -- [2024-04-06](https://codeberg.org/dwl/dwl-patches/raw/branch/main/patches/primaryselection/primaryselection.patch) - -### Authors -- [nullsystem](https://codeberg.org/nullsystem) -- [Palanix](https://github.com/PalanixYT) - Previous Primary-Selection patch - ---- -# push - -### Description -Adds functions `pushup` and `pushdown` to move windows within the tiling order. - -### Download -- [git branch](https://codeberg.org/sevz/dwl/src/branch/push) -- [2024-09-03](/dwl/dwl-patches/raw/branch/main/patches/push/push.patch) -- [push-0.7.patch](/dwl/dwl-patches/raw/branch/main/patches/push/push-0.7.patch) - -### Authors -- [sevz](https://codeberg.org/sevz) -- [Devin J. Pohly](https://github.com/djpohly) - ---- -# regexrules - -### Description -Allows the use of regular expressions for window rules "app_id" and "title" - -```c -static const Rule rules[] = { - // ... - { "kitty-htop", NULL, 1 << 8, 0, -1 }, - { "^kitty$", NULL, 0, 0, -1 }, - // ... -}; -``` - -### Download -- [git branch](https://codeberg.org/wochap/dwl/src/branch/v0.5/regexrules) -- [2024-04-11](https://codeberg.org/dwl/dwl-patches/raw/commit/2a6560c167e5c9afc5598ac5431d23d90de8846c/regexrules/regexrules.patch) -- [v0.5](https://codeberg.org/dwl/dwl-patches/raw/commit/98cba933c9f4099202e54f39acbf17e05bde828a/regexrules/regexrules.patch) - -### Authors -- [wochap](https://codeberg.org/wochap) - ---- -# regions - -### Description -This patch will allow for a program to be used and have the current window regions on all monitors to be passed to the program as standard input. - -example is `grim -g "$(slurp)"` - -### Download -- [git branch](https://codeberg.org/sewn/dwl/src/branch/regions) -- [2024-02-14](https://codeberg.org/dwl/dwl-patches/raw/branch/main/patches/regions/regions.patch) - -### Authors -- [sewn](https://github.com/apprehensions) ---- -# relative-mouse-resize - -### Description -When resizing windows, the mouse will jump and resize the window in the quadrant that the resize starts at. - -### Download -- [git branch](https://codeberg.org/wochap/dwl/src/branch/v0.5/relative-mouse-resize) -- [2024-07-09](https://codeberg.org/dwl/dwl-patches/raw/commit/0bd725d0786248e1dfedbe6aa7453edfe736de43/patches/relative-mouse-resize/relative-mouse-resize.patch) -- [2024-04-11](https://codeberg.org/dwl/dwl-patches/raw/commit/655fd2916c1bcaa022ce6dcdfb370051cf64df66/relative-mouse-resize/relative-mouse-resize.patch) -- [v0.5](https://codeberg.org/dwl/dwl-patches/raw/commit/b828e21717fa584affeb3245359c3ab615759fa4/relative-mouse-resize/relative-mouse-resize.patch) - -### Authors -- [wochap](https://codeberg.org/wochap) - ---- -# remembertags - -### Description -This patch modifies the behavior when selecting tags so that selecting a tag will also enable any other tags that were previously visible. - -For example: -1. Select tag 5, with mod+5 -2. Toggle tag 8, with ctrl+mod+8 -3. Select tag 1, with mod+1. Tags 5 and 8 should no longer be visible. -4. Select tag 5 again, with mod+5. Tag 8 should be visible since it was remembered. -5. Select tag 5 again, with mod_5. Selecting the already selected tag resets any remembered tags, so now tag 5 should be the only one visible. - -### Download -- [git branch](https://codeberg.org/minego/dwl/src/branch/remembertags) -- [2024-03-27](https://codeberg.org/dwl/dwl-patches/raw/branch/main/patches/remembertags/remembertags.patch) - -### Authors -- [minego](https://codeberg.org/minego) ---- -# restore-monitor - -### Description -Moves clients to their old output when it is reattached. - -### Download -- [git branch](https://codeberg.org/eyusupov/dwl/src/branch/restore-monitor) -- [2024-04-07](https://codeberg.org/dwl/dwl-patches/raw/branch/main/patches/restore-monitor/restore-monitor.patch) -### Authors -- [eyusupov](https://codeberg.org/eyusupov) ---- -# right - -### Description -Put newly connected monitors on the right, like X does. - -### Download -- [2024-02-11](https://codeberg.org/dwl/dwl-patches/raw/branch/main/patches/right/right.patch) - -### Authors -- [Dima Krasner](https://codeberg.org/dimkr) () - ---- -# rlimit_max - -### Description -Sets the current maximum open file descriptors to the maximum available limit. - -This patch is useful - and solves issue [#628](https://codeberg.org/dwl/dwl/issues/628) for running heavy Xwayland applications on systems that do not provide limits out of the box. - -### Download -- [0.7](https://codeberg.org/dwl/dwl-patches/raw/branch/main/patches/rlimit_max/rlimit_max.patch) - -### Authors -- [sewn](https://codeberg.org/sewn) - - ---- -# rotatetags - -### Description -This patch provides the ability to rotate the tagset left / right. It implements a new function rotatetags which modifies the current tagset. Same as original dwm patch. Also adds ability to move focused client to left / right adjacent tag by specifying appropriate enum value as argument. - -### Download -- [git branch](https://codeberg.org/korei999/dwl/src/branch/rotatetags) -- [2024-01-23](https://codeberg.org/korei999/dwl-patches/raw/branch/main/rotatetags/rotatetags.patch) - -### Authors -- [korei999](https://codeberg.org/korei999) ---- -# scenefx - -### Description - -Implement https://github.com/wlrfx/scenefx - -```c -/* available options */ - -static const int opacity = 0; /* flag to enable opacity */ -static const float opacity_inactive = 0.5; -static const float opacity_active = 1.0; - -static const int shadow = 1; /* flag to enable shadow */ -static const int shadow_only_floating = 0; /* only apply shadow to floating windows */ -static const struct wlr_render_color shadow_color = COLOR(0x0000FFff); -static const struct wlr_render_color shadow_color_focus = COLOR(0xFF0000ff); -static const int shadow_blur_sigma = 20; -static const int shadow_blur_sigma_focus = 40; -static const char *const shadow_ignore_list[] = { "xdg-desktop-portal-gtk", NULL }; /* list of app-id to ignore */ - -static const int corner_radius = 0; /* 0 disables corner_radius */ - -static const int blur = 1; /* flag to enable blur */ -static const int blur_optimized = 1; -static const int blur_ignore_transparent = 1; -static const struct blur_data blur_data = { - .radius = 5, - .num_passes = 3, - .noise = 0.02, - .brightness = 0.9, - .contrast = 0.9, - .saturation = 1.1, -}; -``` - -> **NOTE:** If you are using nix with flakes, scenefx has a flake for scenefx https://github.com/wlrfx/scenefx/blob/main/flake.nix - -> **NOTE:** Some GTK apps are being cut off when they have shadows enabled. You can use the `shadow_ignore_list` option to prevent shadows from being rendered on those apps - -> **NOTE:** Blur doesn't work on windows with opacity set (opacity_active, opacity_inactive) - -> **NOTE:** In DWL's Makefile `scenefx` must be placed before wlroots, e.g. `PKGS = scenefx wlroots wayland-server ...` - -
-Preview -
-
-
-
-
- -### Download - -- [git branch](https://codeberg.org/wochap/dwl/src/branch/v0.5/scenefx) -- [2024-07-09](https://codeberg.org/dwl/dwl-patches/raw/commit/13d96b51b54500dd24544cf3a73c61b7a1414bc6/patches/scenefx/scenefx.patch) - - **IMPORTANT:** This patch only works with the `2ec3505248e819191c37cb831197629f373326fb` commit on the `main` branch of `scenefx`, therefore, it does not support **blur**. - - **IMPORTANT:** This patch requires you to build DWL with the following dependencies - - - **scenefx** - - libGL - -- [2024-04-11](https://codeberg.org/dwl/dwl-patches/raw/commit/6e3a57ffd16dafa31900b7e89e51672bd7bcc1e8/scenefx/scenefx.patch) - - **IMPORTANT:** This patch only works with the `de4ec10e1ff9347b5833f00f8615d760d9378c99` commit on the `wlr_scene_blur` branch of `scenefx`, as it adds support for **blur**. - - **IMPORTANT:** This patch requires you to build DWL with the dependencies of WLROOTS: - - - **scenefx** - - libGL - - libcap - - libinput - - libpng - - libxkbcommon - - mesa - - pixman - - seatd - - vulkan-loader - - wayland - - wayland-protocols - - xorg.libX11 - - xorg.xcbutilerrors - - xorg.xcbutilimage - - xorg.xcbutilrenderutil - - xorg.xcbutilwm - - xwayland (optional) - - ffmpeg - - hwdata - - libliftoff - - libdisplay-info - -- [v0.5](https://codeberg.org/dwl/dwl-patches/raw/commit/7a5c3420822074c544fa102e030b7c30aa6b6be8/scenefx/scenefx.patch) - -### Authors - -- [wochap](https://codeberg.org/wochap) - ---- -# scroll-factor - -### Description -This patch adds scroll factor to dwl. The settings can be found in the trackpad section of the config. This allows user to control the sensitivity of 2-finger touchpad scrolling. - -### Download -- [git branch](https://codeberg.org/singul4ri7y/dwl/src/branch/scroll-factor) -- [2024-07-12](https://codeberg.org/dwl/dwl-patches/raw/branch/main/patches/scroll-factor/scroll-factor.patch) - -### Authors -- [singul4ri7y](https://codeberg.org/singul4ri7y) - ---- -# setupenv - -### Description -Allow configuring environment variables in config.h - -### Download -- [git branch](https://codeberg.org/notchoc/dwl/src/branch/setupenv) -- [2024-03-26](https://codeberg.org/dwl/dwl-patches/raw/branch/main/patches/setupenv/setupenv.patch) -### Authors -- [notchoc](https://codeberg.org/notchoc) - ---- -# shiftview - -### Description -Add keybindings to cycle through tags with visible clients. - -### Download -- [git branch](https://codeberg.org/guidocella/dwl/src/branch/shiftview) -- [2024-01-27](https://codeberg.org/dwl/dwl-patches/raw/branch/main/patches/shiftview/shiftview.patch) - -### Authors -- [Guido Cella](https://codeberg.org/guidocella) - ---- -# simpleborders - -### Description -Like smartborders. Don't put borders when there is only one window on the screen. - -### Download -- [git branch](https://codeberg.org/bencc/dwl/src/branch/simpleborders) -- [2024-06-18 applies to dwl wlroots-next branch](https://codeberg.org/dwl/dwl-patches/raw/branch/main/patches/simpleborders/simpleborders-wlrootsnext-20240618.patch) -- [2023-01-07](https://codeberg.org/dwl/dwl-patches/raw/branch/main/patches/simpleborders/simpleborders.patch) -### Authors -- [Ben Collerson](https://codeberg.org/bencc) - ---- -# singlemaster - -### Description -Restricts layout to only having one client in the master area. - -### Download -- [git branch](https://codeberg.org/bencc/dwl/src/branch/singlemaster) -- [v0.6](https://codeberg.org/dwl/dwl-patches/raw/branch/main/patches/singlemaster/singlemaster.patch) - -### Authors -- [Ben Collerson](https://codeberg.org/bencc) - ---- -# singletagset - -### Description -Single set of tags shared between multiple monitors. - -This patch allows all the tags to be shared between both (or more) monitors. -So a single set of tags from 1 to 9 can be viewed on any monitor, as opposed to -having separate tag sets 1 to 9 on each monitor. - -Originally based on the dwm single_tagset patch: -https://dwm.suckless.org/patches/single_tagset/ - -### Download -- [git branch (v0.7)](https://codeberg.org/Rutherther/dwl/src/branch/v0.7/singletagset) -- [git branch (v0.6)](https://codeberg.org/bencc/dwl/src/branch/singletagset) -- [2024-07-26 (v0.7)](https://codeberg.org/dwl/dwl-patches/raw/branch/main/patches/singletagset/singletagset-v0.7.patch) -- [2024-05-16 (v0.6)](https://codeberg.org/dwl/dwl-patches/raw/branch/main/patches/singletagset/singletagset-v0.6.patch) - -### Authors -- [Ben Collerson](https://codeberg.org/bencc) -- [Rutherther](https://codeberg.org/Rutherther) - ---- -# singletagset-pertag - -### Description -Pertag keeps layouts, mfact and nmaster per tag -instead of per output. - -This adapted version of pertag contains one version of -the rules per all outputs, instead of one per output. -This makes switching to tags from other monitors keep -the window layout. - -This patch expects [singletagset](https://codeberg.org/dwl/dwl-patches/src/branch/main/patches/singletagset) -patch to be already in your tree committed. It applies onto it. - -This patch is incompatible with [pertag](https://codeberg.org/dwl/dwl-patches/src/branch/main/patches/pertag). - -### Download -- [2024-07-26](https://codeberg.org/dwl/dwl-patches/raw/branch/main/patches/singletagset-pertag/singletagset-pertag.patch) -- [git branch](https://codeberg.org/Rutherther/dwl/src/branch/v0.7/singletagset-pertag) - -### Authors -- [Rutherther](https://codeberg.org/Rutherther) -- [wochap (maintainer of pertag patch)](https://codeberg.org/wochap) -- [Guido Cella (creator of pertag patch)](https://codeberg.org/guidocella) - ---- -# singletagset-sticky - -### Description -Makes sticky work as expected with singletagset. The sticky window will -stay on original output until you explicitely put it to a different monitor. - -This patch expects both [singletagset](https://codeberg.org/dwl/dwl-patches/src/branch/main/patches/singletagset) and [sticky](https://codeberg.org/dwl/dwl-patches/src/branch/main/patches/sticky) patches to be already in -your tree committed. It applies onto them. - -### Download -- [2024-07-26](https://codeberg.org/dwl/dwl-patches/raw/branch/main/patches/singletagset-sticky/singletagset-sticky.patch) -- [git branch](https://codeberg.org/Rutherther/dwl/src/branch/v0.7/singletagset-sticky) - -### Authors -- [Rutherther](https://codeberg.org/Rutherther) - ---- -# skipfocus - -### Description -Adds a rule-based ability to skip automatically focusing a window on creation. Expected use-case is for transient windows like notifications etc. The window can still be focused by mouse or keyboard movement. - -| `skipfocus` value | effect | -| ----------------- | ------------------ | -| 0 | usual | -| 1 | skipautofocus | -| 2 | skipfocus entirely | - -### Download -- [20240714](https://codeberg.org/dwl/dwl-patches/raw/branch/main/patches/skipfocus/skipfocus.patch) -- [20240108](https://codeberg.org/dwl/dwl-patches/raw/branch/main/patches/skipfocus/skipfocus20240108.patch) -- [git branch](https://codeberg.org/dhruva_sambrani/dwl/src/branch/skipfocus) - -### Authors -- [Dhruva Sambrani](https://codeberg.org/dhruva_sambrani) - - ---- -# smartborders - -### Description -The borders of a window aren't drawn when the window is the only tiling window -in its tag OR if the window is in a monocle layout. - -### Download -- [git branch](https://codeberg.org/sevz/dwl/src/branch/smartborders) -- [main 2024-09-02](/dwl/dwl-patches/raw/branch/main/patches/smartborders/smartborders.patch) -- [smartborders-0.7.patch](/dwl/dwl-patches/raw/branch/main/patches/smartborders/smartborders-0.7.patch) - -### Authors -- [sevz](https://codeberg.org/sevz) -- [fauxmight](https://codeberg.org/fauxmight) -- [Piotr Marendowski](https://github.com/piotr-marendowski) -- Andrey Proskurin - ---- -# snail - -### Description -Adds a spiral-inspired layout for wide screens. - -### Download -- [2024-02-11](https://codeberg.org/dwl/dwl-patches/raw/branch/main/patches/snail/snail.patch) - -### Authors -- [Dima Krasner](https://codeberg.org/dimkr) () -- [Nikita Ivanov](https://github.com/NikitaIvanovV) (fix for flickering) - ---- -# snail-gaps - -### Description - -Adds support for the [gaps patch](https://codeberg.org/dwl/dwl-patches/src/branch/main/patches/gaps) -to the [snail layout patch](https://codeberg.org/dwl/dwl-patches/src/branch/main/patches/snail). - -Install the [gaps patch](https://codeberg.org/dwl/dwl-patches/src/branch/main/patches/gaps) -and the [snail patch](https://codeberg.org/dwl/dwl-patches/src/branch/main/patches/snail) first. - -### Download - -- [main 2024-08-08](https://codeberg.org/dwl/dwl-patches/raw/branch/main/patches/snail-gaps/snail-gaps.patch) - -### Authors - -- [JoaoCostaIFG](https://codeberg.org/JoaoCostaIFG) ([joaocosta@posteo.net](mailto:joaocosta@posteo.net)) - ---- -# stacker - -### Description -Stacker is a patch that allows moving around the stack more freely. With only -one keybinding, quickly move, swap and jump around the window stack. - -1. Focus any window of the stack with a single key binding. -2. Swap the currently focused windows with any other window in the stack. -3. Move the selected window in the stack with `relativeswap`. - -This patch is heavily inspired by the original [stacker](https://dwm.suckless.org/patches/stacker/) dwm patch. - -### Keybinding - -- `MODKEY` + {`q`, `w`, `e`, `r`}: jump to the first, second, third and last - window of the stack -- `MODKEY` + `SHIFT` + {`Q`, `W`, `E`, `R`}: swap the selected with the first, second, third and last - window of the stack -- `MODKEY` + `SHIFT` + {`J`, `K`}: move the selected window up & down the stack - -### Missing feature - -Jumping to the last selected window is not yet implemented. - -### Download -- [git branch](https://codeberg.org/jeromecst/dwl/src/branch/stacker) -- [2024-05-17](https://codeberg.org/dwl/dwl-patches/raw/branch/main/patches/stacker/stacker.patch) - -### Authors -- [jeromecst](https://codeberg.org/jeromecst) - ---- -# startargv - -### Description -allow passing startup command on argv - -e.g. `dwl -s foot -s` launches `foot -s` - -put `sh -c` right after `dwl -s` to emulate normal behaviour - -### Download -- [git branch](https://codeberg.org/notchoc/dwl/src/branch/startargv) -- [2024-07-03](https://codeberg.org/dwl/dwl-patches/raw/branch/main/patches/startargv/startargv.patch) - -### Authors -- [notchoc](https://codeberg.org/notchoc) - ---- -# sticky - -### Description -Adds a toggleable function that makes a sticky client that is visible on all tags. - -Originally based on [dwm sticky patch](https://dwm.suckless.org/patches/sticky). - -### Download -- [2024-07-26](https://codeberg.org/dwl/dwl-patches/raw/branch/main/patches/sticky/sticky.patch) -- [v0.4](https://github.com/djpohly/dwl/compare/main...dm1tz:04-sticky.patch) -- [git branch](https://codeberg.org/Rutherther/dwl/src/branch/v0.7/sticky) - -### Authors -- [Rutherther](https://codeberg.org/Rutherther) -- [Dmitry Zakharchenko](https://github.com/dm1tz) - ---- -# swallow - -### Description -Terminals swallow windows that they are the parent of. - -foot is the terminal by default, you can change it in client rules in config.h. - -2023-08-16 and up are made to also work with x windows: https://codeberg.org/dwl/dwl/issues/331 - -for freebsd users: apply swallow-freebsd.patch **on top of** swallow.patch - -### Download -- [git branch](https://codeberg.org/notchoc/dwl/src/branch/swallow) -- [2024-07-13](https://codeberg.org/dwl/dwl-patches/raw/branch/main/patches/swallow/swallow.patch) -- [2024-07-13](https://codeberg.org/dwl/dwl-patches/raw/commit/f64d701bab2f9f52d3637edd091684f920407d87/patches/swallow/swallow.patch) -- [2024-05-02](https://codeberg.org/dwl/dwl-patches/raw/commit/9c5d5d85f3ac780e7a14d5d0535e3349ce8b8f53/patches/swallow/swallow.patch) -- [2024-04-03](https://codeberg.org/dwl/dwl-patches/raw/commit/3c9a8e3232a8531871924484cef1ef0938730e15/swallow/swallow.patch) -- [2024-01-01](https://codeberg.org/dwl/dwl-patches/raw/commit/8a352a1b27a64821ba9fbfda52fe82463ac84c66/swallow/swallow.patch) -- [2023-10-26](https://github.com/djpohly/dwl/compare/main...youbitchoc:swallow.patch) -- [2023-08-16](https://github.com/djpohly/dwl/compare/main...mewkl:swallowx.patch) -- [2023-07-15](https://github.com/djpohly/dwl/compare/main...NikitaIvanovV:swallow.patch) -- [v0.4](https://github.com/djpohly/dwl/compare/main...dm1tz:04-swallow.patch) -- [2021-12-03](https://github.com/djpohly/dwl/compare/main...dm1tz:swallow.patch) - -### Authors -- [Dmitry Zakharchenko](https://github.com/dm1tz) -- [Palanix](https://codeberg.org/Palanix) -- [Nikita Ivanov](https://github.com/NikitaIvanovV) -- [Connor Worrell](https://github.com/ConnorWorrell) -- [Mewkl](https://github.com/mewkl) -- [Choc](https://codeberg.org/notchoc) - ---- -# swapandfocusdir - -### Description -Focus the window (floating or no) to the left, right, above, or below the current focused window. - -Swap the focused window with the window (no floating) to the left, right, above, or below. - -**NOTE:** this patch uses the same algorithm that River uses to select the window in the given direction. - -### Download -- [git branch](https://codeberg.org/wochap/dwl/src/branch/v0.5/swapandfocusdir) -- [2024-07-09](https://codeberg.org/dwl/dwl-patches/raw/commit/13d96b51b54500dd24544cf3a73c61b7a1414bc6/patches/swapandfocusdir/swapandfocusdir.patch) -- [v0.5](https://codeberg.org/dwl/dwl-patches/raw/branch/main/patches/swapandfocusdir/swapandfocusdir.patch) - -### Authors -- [wochap](https://codeberg.org/wochap) - ---- -# switchtotag - -### Description -Add a rule option to switch to the configured tag when a window opens, then switch back when it closes. - -### Download -- [git branch](https://codeberg.org/guidocella/dwl/src/branch/switchtotag) -- [2024-08-28](https://codeberg.org/dwl/dwl-patches/raw/branch/main/patches/switchtotag/switchtotag.patch) - -### Authors -- [Guido Cella](https://codeberg.org/guidocella) - ---- -# tab - -### Description -Add a tab bar or window title to the top or bottom of windows. - -### Download -- [git branch](https://codeberg.org/dev-gm/dwl/src/branch/tab) -- [2024-03-15](https://codeberg.org/dwl/dwl-patches/raw/branch/main/patches/tab/tab.patch) - -### Authors -- [dev-gm](https://codeberg.org/dev-gm) ---- -# tablet-input - -### Description -implements wlr-tablet-v2 for drawing tablets and supports cursor emulation - -inspired by @guyuming76's [branch](https://codeberg.org/guyuming76/dwl/commits/branch/graphic_tablet), with coding help from @Palanix and testing by @Thanatos - -### Download -- [git branch](https://codeberg.org/notchoc/dwl/src/branch/tablet-input) -- [2024-07-31](https://codeberg.org/dwl/dwl-patches/raw/branch/main/patches/tablet-input/tablet-input.patch) fixes pen not working after lifting up -- [2024-06-21](https://codeberg.org/dwl/dwl-patches/raw/commit/18d283d3746ecbc3cd7650358c5769e03b346425/patches/tablet-input/tablet-input.patch) -- [2024-06-19](https://codeberg.org/dwl/dwl-patches/raw/commit/fee4da5cb6470ca5349fa2102765705e19d3bfa3/patches/tablet-input/tablet-input.patch) -- [2024-05-04](https://codeberg.org/dwl/dwl-patches/raw/commit/748b4bc6a73828f3e74b210862bebcda4c9dfb3c/patches/tablet-input/tablet-input.patch) - -### Authors -- [notchoc](https://codeberg.org/notchoc) -- [Palanix](https://codeberg.org/Palanix) - ---- -# tearing - -### Description -This patch adds support for tearing protocol. To get it working `export WLR_DRM_NO_ATOMIC=1` is probably required. -Setting `ForceTearingRule` is also probably required since surfaces always receive presentation hint 0 (VSYNC) as far as i can tell. - -Set rules in the config.h (exact string match): -``` -static const ForceTearingRule force_tearing[] = { - {.title = "", .appid = "oni.exe"}, - {.title = "", .appid = "hl_linux"}, - {.title = "", .appid = "steam_app_210970"}, -}; -``` -### Download -- [git branch](https://codeberg.org/korei999/dwl/src/branch/tearing) -- [2024-08-15](https://codeberg.org/dwl/dwl-patches/raw/branch/main/patches/tearing/tearing.patch) -### Authors -- [korei999](https://codeberg.org/korei999) - ---- -# titleurgent - -### Description -Whenever a client title changes set the client's urgent flag. - -Hacky solution I use to deal with qutebrowser not setting urgent flag when a new tab is opened. - -### Download -- [git branch](https://codeberg.org/bencc/dwl/src/branch/titleurgent) -- [2024-01-02](https://codeberg.org/dwl/dwl-patches/raw/branch/main/patches/titleurgent/titleurgent.patch) - -### Authors -- [Ben Collerson](https://codeberg.org/bencc) ---- -# toggle_constraints - -### Description -Adds a function called togglepointerconstraints to turn pointer constraint enforcement on and off with a keybind. - -### Usage -Add a binding for the togglepointerconstraints function in the keys[] array of config.h. The function does not take any argument. Pointer constraints default to enabled, and can be toggled on and off with the function from there. - -Example: -``` -{ MODKEY, XKB_KEY_c, togglepointerconstraints, {0}}, -``` - -### Download -- [Git branch](https://codeberg.org/thanatos/dwl/src/branch/toggle_constraints) -- [2024-03-26](https://codeberg.org/dwl/dwl-patches/raw/branch/main/patches/toggle_constraints/toggle_constraints) - -### Authors -- [thanatos](https://codeberg.org/thanatos) ---- -# togglekblayout - -### Description - -> This patch is no longer being maintained by me [wochap](https://codeberg.org/wochap), since I'm now using a different patch specific to my use case: https://codeberg.org/wochap/dwl/src/branch/v0.6-b/xkb-rules-switcher/xkb-rules-switcher.patch - -Switch between multiple keyboard layouts at runtime. - -### Download -- [git branch](https://codeberg.org/wochap/dwl/src/branch/v0.5/togglekblayout) -- [v0.5](https://codeberg.org/dwl/dwl-patches/raw/branch/main/patches/togglekblayout/togglekblayout.patch) - -### Authors -- [wochap](https://codeberg.org/wochap) -- [Stivvo](https://github.com/Stivvo) - - ---- -# togglekblayoutandoptions - -### Description -Switch between multiple keyboard layouts, variants, and options at runtime. - -### Download -- [git branch](https://codeberg.org/dev-gm/dwl/src/branch/togglekblayoutandoptions) -- [2024-03-15](https://codeberg.org/dwl/dwl-patches/raw/branch/main/patches/togglekblayoutandoptions/togglekblayoutandoptions.patch) - -### Authors -- [dev-gm](https://codeberg.org/dev-gm) ---- -# unclutter - -### Description -Hide the mouse cursor if it isn't being used for a certain period of time. - -### Download -- [git branch](https://codeberg.org/guidocella/dwl/src/branch/unclutter) -- [2024-08-06](https://codeberg.org/dwl/dwl-patches/raw/branch/main/patches/unclutter/unclutter.patch) - -### Authors -- [Guido Cella](https://github.com/guidocella) -- [dm1tz](https://github.com/dm1tz) -- [Ben Collerson](https://codeberg.org/bencc) - ---- -# ungroup-keyboards - -### Description -Ungroup keyboard input devices based on device name. - -I wrote this patch was because keyboard device grouping breaks the behaviour of -the ydotool virtual device. This patch fixes my issue #558 in the codeberg -issue tracker. - -See the inputdevicerules patch for a more generalised version of this idea. - -### Download -- [git branch](https://codeberg.org/bencc/dwl/src/branch/ungroup-keyboards) -- [2024-06-16](https://codeberg.org/dwl/dwl-patches/raw/branch/main/patches/ungroup-keyboards/ungroup-keyboards.patch) - -### Authors -- [Ben Collerson](https://codeberg.org/bencc) - ---- -# vanitygaps - -### Description -Adds (inner) gaps between client windows and (outer) gaps between windows and -the screen edge in a flexible manner. - -### Download -- [git branch](https://codeberg.org/sevz/dwl/src/branch/vanitygaps) -- [main 2024-09-01](/dwl/dwl-patches/raw/branch/main/patches/vanitygaps/vanitygaps.patch) -- [vanitygaps-0.7.patch](/dwl/dwl-patches/raw/branch/main/patches/vanitygaps/vanitygaps-0.7.patch) - -### Authors -- [sevz](https://codeberg.org/sevz) -- [Bonicgamer](https://github.com/Bonicgamer) - ---- -# varcol - -### Description -A variable column layout. - -This layout behaves much the same as the `tile` layout, but adds key bindings that can be used to: -- Increase/decrease the number of non-master columns -- Increase/decrease the colfact to adjust the column spacing -- Push a client in or out of a special `left` column -- Toggle displaying the special `left` column - -### Download -- [git branch](https://codeberg.org/minego/dwl/src/branch/varcol) -- [2024-03-27](https://codeberg.org/dwl/dwl-patches/raw/branch/main/patches/varcol/varcol.patch) - -### Authors -- [minego](https://codeberg.org/minego) - ---- -# viewnextocctag - -### Description -View the next or previous tag, skipping any tags that do not have any clients. - -### Download -- [git branch](https://codeberg.org/bencc/dwl/src/branch/viewnextocctag) -- [2023-01-06](https://codeberg.org/dwl/dwl-patches/raw/branch/main/patches/viewnextocctag/viewnextocctag.patch) - -### Authors -- [Ben Collerson](https://codeberg.org/bencc) - ---- -# virtual-pointer - -### Description -implement wlr_virtual_pointer_v1 for things like wayvnc server to work - -**NOTE:** no longer neccessary if you are using a DWL version after https://codeberg.org/dwl/dwl/commit/ac6074f4fdb8cc263c877f08e16a5805d3bb22d2 - -### Download -- [git branch](https://codeberg.org/wochap/dwl/src/v0.5/virtual-pointer) -- [v0.5](https://codeberg.org/dwl/dwl-patches/raw/commit/0096e49402bc59b4050e12cdb9befb79d0011006/virtual-pointer/virtual-pointer.patch) - -### Authors -- [wochap](https://codeberg.org/wochap) -- [youbitchoc](https://github.com/youbitchoc) ---- -# warpcursor - -### Description -Warp cursor to the centre of newly focused clients. - -Only moves the cursor if the cursor is currently not on the new client. - -This is my version of the orphaned cursorwarp patch except I left out the -config flag as I think it is unnecessary. - -### Download -- [git branch](https://codeberg.org/bencc/dwl/src/branch/warpcursor) -- [v0.6](https://codeberg.org/dwl/dwl-patches/raw/branch/main/patches/warpcursor/warpcursor.patch) - -### Authors -- [Ben Collerson](https://codeberg.org/bencc) -- [Faerryn](https://github.com/faerryn) - ---- -# winview - -### Description -Implements the function `winview` which switches the visible tags to the tags on which the current client is visible. - -This patch is inspired from . Citing the description of the dwm patch: - -> Dwm tags are a powerfull feature that allows organizing windows in workspaces. Sometime it can be difficult to remember the tag to activate to unhide a window. With the winview patch the window to unhide can be selected from the all-window view. The user switches to the all-window view (Mod1-0), selects the window (Mod1-j/k or using the mouse) and press Mod1-o. The key Mod1-o switches the view to the selected window tag. -> -> #### Recommend patches -> -> The grid layout is well adapted to display many windows in a limited space. Using both grid and pertag patches you will be able to select this layout for the all-window view while keeping your preferred layout for the other views. -> Configuration and Installation -> Using the default configuration file -> -> Make sure the directory where you build dwm does not contain a config.h file; -> Apply the patch; -> Run make and make install. -> -> Using an existing customised configuration file -> -> Apply the patch; Add the following element in the keys array: -> -> `{ MODKEY, XK_o, winview, {0} },` -> -> Run make and make install. -> -> An example of how to insert this line can be found in the default config file template, config.def.h. - -### Download -- [2023-11-26](https://codeberg.org/dwl/dwl-patches/raw/branch/main/patches/winview/winview.patch) -- [git branch](https://codeberg.org/dhruva_sambrani/dwl/src/branch/winview) - -### Authors -- [Dhruva Sambrani](https://codeberg.org/dhruva_sambrani) - - ---- -# xwayland-handle-minimize - -### Description -Some windows (wine) games go black screen after losing focus and never recover https://github.com/swaywm/sway/issues/4324. This patch fixes this by handling minimize requests that some xwayland clients do. - - ## Download -- [git branch](https://codeberg.org/korei999/dwl/src/branch/xwayland-handle-minimize) -- [2024-04-01](https://codeberg.org/dwl/dwl-patches/raw/branch/main/patches/xwayland-handle-minimize/xwayland-handle-minimize.patch) - -### Authors -- [korei999](https://codeberg.org/korei999) ---- -# zoomswap - -### Description -This patch swaps the current window (C) with the previous master (P) when zooming. -``` -Original behaviour : -+-----------------+-------+ -| | | -| | | -| | | -| P +-------| -| | | -| | C | -| | | -+-----------------+-------+ - -+-----------------+-------+ -| | | -| | P | -| | | -| C +-------| -| | | -| | | -| | | -+-----------------+-------+ - -New Behaviour : -+-----------------+-------+ -| | | -| | | -| | | -| C +-------+ -| | | -| | P | -| | | -+-----------------+-------+ - -+-----------------+-------+ -| | | -| | | -| | | -| P +-------+ -| | | -| | C | -| | | -+-----------------+-------+ -``` - -### Download -- [git branch](https://codeberg.org/Palanix/dwl/src/branch/zoomswap) -- [v0.7](https://codeberg.org/dwl/dwl-patches/raw/branch/main/patches/zoomswap/zoomswap-v0.7.patch) -- [v0.6](https://codeberg.org/dwl/dwl-patches/raw/branch/main/patches/zoomswap/zoomswap-v0.6.patch) -- [2024-02-15](https://codeberg.org/dwl/dwl-patches/raw/branch/main/patches/zoomswap/zoomswap.patch) - -### Authors -- [Palanix](https://codeberg.org/Palanix) - ---- -# STALE PATCHES -## DRMLeaseManager - -### Description -This implements the DRM lease protocol, which is needed to use devices such as VR headsets. - -### Download -- [2023-05-26](https://github.com/djpohly/dwl/compare/main...minego:drm_lease_patch.patch) - -### Authors -- [Micah N Gorrell](https://github.com/minego) ---- -## XF86keysym - -### Description -Utilizing the [/usr/include/X11/XF86keysym.h](https://cgit.freedesktop.org/xorg/proto/x11proto/tree/XF86keysym.h) header file to change the volume via the appropriate keys. - -### Download -- [2023-10-15](https://github.com/djpohly/dwl/compare/main...nakibrayan3:dwl:update-XF86keysym-patch.patch) -- [2021-05-06](https://github.com/djpohly/dwl/compare/main...917Wolf:vol.patch) - -### Authors -- [917Wolf](https://github.com/917Wolf) -- [Rayan Nakib](https://nakibrayan2.pages.dev) - ---- -## alphafocus - -### Description -Adds configurable transparency for focused and unfocused windows. - -### Download -- [2021-12-03](https://github.com/djpohly/dwl/compare/main...juliag2:alphafocus.patch) - -### Authors -- [Julia](https://github.com/juliag2) ---- -## attachabove - -### Description -Newly created windows are placed above the currently selected window in the stack. - -### Download -- [2021-01-16](https://github.com/djpohly/dwl/compare/main...ss7m:attachabove.patch) - -### Authors -- [sam-barr](https://github.com/ss7m) ---- -## attachtop - -### Description - -This is a port of attachtop patch for dwm: https://dwm.suckless.org/patches/attachtop - -New client attaches below the last master/on top of the stack. - -Behavior feels very intuitive as it doesn't disrupt existing masters no matter the amount of them, it only pushes the clients in stack down. - -### Download -- [2023-07-15](https://github.com/djpohly/dwl/compare/main...NikitaIvanovV:attachtop.patch) - -### Authors -- [Nikita Ivanov](https://github.com/NikitaIvanovV) ---- -## autorotation - -### Description -Adds keybindings for screen rotation and auto rotation from an accelerometer. - -### Setup -Find an accelerometer device in sysfs (`cat /sys/bus/iio/devices/iio*/name`, -or using a script: [monitor-iio.sh](https://github.com/Unprex/dotfiles/blob/main/scripts/monitor-iio.sh)) \ -Find the raw output file of the accelerometer -(e.g. `cat /sys/bus/iio/devices/iio:device0/in_accel_x_raw` should output an integer). \ -Add the raw output file names to the dwl configuration **accel_\***. - -Add a udev rule to uniquely identify the device, for example: -``` -sudo echo 'SUBSYSTEM=="iio", KERNEL=="iio*", ATTR{name}=="accel_3d", GROUP="input", SYMLINK+="input/accel"' >> /etc/udev/rules.d/99-accel.rules -sudo udevadm control --reload-rules && sudo udevadm trigger -``` -(the device is probably already in /dev/ e.g. `/dev/iio:device0` but on my computer the number changes after a reboot) - -A symlink to the device should now be available in `/dev/input/` and accessible to input group members. \ -Add the device path to the dwl configuration **accel_path**. - -### Config -* `rotation_enabled`: If the auto rotation is enabled on startup. -* `rotation_delay`: How often to check the accelerometer values in milliseconds. -* `rotation_flat`: Threshold on the normalized Z axis to consider the device flat and stop the auto rotation. -* `rotation_thresh`: Rotation threshold after which the screen flips (values less than 0.5 will cause a back and forth). - -+ `accel_path`: The path to the accelerometer device file (e.g. "/dev/input/accel"). -+ `accel_x`: The name of the sysfs file for the accelerometer x axis. -+ `accel_y`: The name of the sysfs file for the accelerometer y axis. -+ `accel_z`: The name of the sysfs file for the accelerometer z axis. - -Default keybindings: -* `` + `` + ``: Change the screen rotation manually (doesn't disable the auto rotation). -* `` + `` + ``: Enable/disable the auto rotation. - -### Download -- [2022-10-25](https://github.com/djpohly/dwl/compare/main...Unprex:rotation.patch) - -### Authors -- [Unprex](https://github.com/Unprex) ---- -## center - -### Description -Adds a rule to automatically center clients on the current monitor. - -### Download -- [v0.4](https://github.com/djpohly/dwl/compare/main...dm1tz:04-center.patch) -- [v0.4-r1](https://github.com/djpohly/dwl/compare/main...dm1tz:04rc1-iscenter.patch) -- [2022-08-27](https://github.com/djpohly/dwl/compare/main...dm1tz:iscenter.patch) - -### Authors -- [Dmitry Zakharchenko](https://github.com/dm1tz) - ---- -## clipboardManager - -### Description -Store your clipboard history using `clipman` clipboard manager without your KeePassXC passwords leaking into clipman. - -Ensure these dependencies are installed (instructions for debian, other distros are left as an exercise...): - - apt install clipman libmodern-perl-perl moreutils wl-clipboard - -Change your command to launch `dwl` to something like the following: - - dwl -s 'pee somebar dwl-getwindowtitle' - -Ensure the following command is running in the background of your `dwl` session. Put it whereever your auto-started stuff is. - - exec wl-paste -t text --watch dwl-clipman - -This solution is based on the following reddit post, modified to support `dwl`. https://www.reddit.com/r/swaywm/comments/ljl0dh/keeping_secrets_secret_with_keepassxc_clipman_and/ - -Feel free to use this code however you want, but I can't guarantee it will work for what you are trying to do. Licenced under the same license as `dwl`, "WITHOUT WARRANTY OF ANY KIND". - - - -### Download -- [2022-12-21](https://github.com/djpohly/dwl/compare/main...bencollerson:clipboard-manager.patch) -- [2022-12-01](https://github.com/djpohly/dwl/compare/main...bencollerson:94d0a21.patch) - -### Authors -- [Ben Collerson](https://github.com/bencollerson) ---- -## clipboardipc - -### Description -Adds clipboard functionality. Requires the [ipc](https://github.com/djpohly/dwl/wiki/ipc) patch for dwl and `wl-clipboard` to be installed. By default, requires [clipman](https://github.com/yory8/clipman) for the clipboard and [dwl-state](https://github.com/MadcowOG/dwl-state) for getting the appid of the focused application, but you can change these in the script if you have alternatives. You may change which applications to not record by modifying the `excludes` array in `dwl-cliboard-watcher`. Make sure `wl-paste -t text -w dwl-clipboard-watcher` is running after dwl. - -### Downloads - - [2023-3-01](https://github.com/djpohly/dwl/compare/main...MadcowOG:ipc-clipboard.patch) - -### Authors - - [MadcowOG](https://github.com/MadcowOG) ---- -## cyclelayouts - -### Description -Adds function to cycle through available layouts. - -### Download -- [v0.4](https://github.com/djpohly/dwl/compare/main...dm1tz:04-cyclelayouts.patch) -- [2021-07-27](https://github.com/djpohly/dwl/compare/main...vnepogodin:cyclelayouts.patch) - -### Authors -- [Vladislav Nepogodin](https://github.com/vnepogodin) ---- -## fibonacci - -### Description -Arranges windows in a Fibonacci spiral or dwindle. - -### Scheme -``` -+-----------+-----------+ +-----------+-----------+ -| | | | | | -| | 2 | | | 2 | -| | | | | | -| 1 +--+--+-----+ | 1 +-----+-----+ -| | 5|-.| | | | | 4 | -| +--+--+ 3 | | | 3 +--+--+ -| | 4 | | | | | 5|-.| -+-----------+-----+-----+ +-----------+-----+-----+ - spiral dwindle -``` - -### Download -- [2023-06-21](https://github.com/djpohly/dwl/compare/main...Abanoub8:fibonacci.patch) -- [2022-09-22](http://0x0.st/oVlu.patch) -- [2021-05-06](https://github.com/djpohly/dwl/compare/main...917Wolf:fib.patch) - -### Authors -- [Abanoub8](https://github.com/Abanoub8) -- [medanisjbara](https://github.com/medanisjbara) -- [917Wolf](https://github.com/917Wolf) -- Niki Yoshiuchi ---- -## focusMonPointer - -### Description -Implements `focusmon()` function that moves the cursor to the focused monitor. -### Download -- [2020-10-15](https://github.com/djpohly/dwl/compare/main...Stivvo:focusMonPointer.patch) - -### Authors -- [Stivvo](https://github.com/Stivvo) ---- -## focusdir - -### Description -Focus the window left, right, above or below the current focused window - -### Download -- [2023-19-15](https://github.com/djpohly/dwl/compare/main...XGames123:focusdir.patch) - -### Authors -- [ldev](https://github.com/Xgames123) ---- -## focusmaster - -### Description -Focus the master regardless of the current focus. - -### Download -- [2022-09-02](https://github.com/djpohly/dwl/compare/main...dm1tz:fmaster.patch) -- [2022-08-18](https://github.com/djpohly/dwl/compare/main...PalanixYT:focusmaster.patch) - -### Authors -- [Palanix](https://github.com/PalanixYT) ---- -## genericgaps - -### Description -This patch is a modified version of [vanitygaps][vanitygaps] that adds gaps around clients regardless of a layout. -It means you can apply any layout patch and the gaps will be shown properly as long as the layout does not add any gaps on its own. - -This works by allowing a layout to place clients normally without gaps, -and then correcting positions and dimensions of clients afterwards to add gaps around them. -To make it work, I had to modify `resize()` function, -and, as a side effect, this change fixed some flickering I experienced when using [snail][snail] layout. - -[snail]: https://github.com/djpohly/dwl/wiki/snail -[vanitygaps]: https://github.com/djpohly/dwl/wiki/vanitygaps - -### Changelog - -2023-11-24: -- Refactor, it does exactly the same, just using less code. -- Replace `gappih`, `gappiv`, `gappoh` and `gappov` with only `gappx`. They don't do anything anyways. - -### Download -- [2023-11-24](https://github.com/djpohly/dwl/compare/main...wochap:genericgaps.patch) -- [2023-05-20](https://github.com/djpohly/dwl/compare/main...NikitaIvanovV:genericgaps.patch) generic gaps -- [2023-05-20](https://github.com/djpohly/dwl/compare/main...NikitaIvanovV:genericgaps-rule.patch) generic gaps + monitor rule to enable gaps on certain monitors by default - -### Authors -- [Nikita Ivanov](https://github.com/NikitaIvanovV) - ---- -## gridmode - -### Description -Arranges windows in a grid of equal sizes. - -### Download -- [2023-06-21](https://github.com/djpohly/dwl/compare/main...Abanoub8:gridmode.patch) -- [2021-07-24](https://github.com/djpohly/dwl/compare/main...vnepogodin:gridmode.patch) - -### Authors -- [Vladislav Nepogodin](https://github.com/vnepogodin) -- [Abanoub8](https://github.com/Abanoub8) ---- -## hidecursor - -### Description -Hide the cursor when typing - -### Download -- [2023-10-25](https://github.com/djpohly/dwl/compare/main...apprehensions:hidecursor.patch) -- [2023-02-19](https://github.com/djpohly/dwl/compare/main...PalanixYT:type_hide.patch) - -### Authors -- [Palanix](https://github.com/PalanixYT) ---- -## kbrules - -### Description -Allow for keyboard rules to be used; This allows for keyboard-specific options or layouts. - -The keyboard's names can be retrieved from `libinput list-devices | grep Device`, example: -```c -static const KeyboardRule kbrules[] = { - { "AT Translated Set 2 keyboard", { .options = "altwin:swap_alt_win,caps:swapescape" } }, -}; -``` - -### Download -- [2023-09-20](https://github.com/djpohly/dwl/compare/main...apprehensions:dwl:kbrules.patch) - -### Authors -- [sewn](https://github.com/apprehensions) ---- -## keychord - -### Description - -This patch implements sequences for chained keybindings (like the dwm [keychord](https://dwm.suckless.org/patches/keychord/) patch). - -_Notes_: -- The maximum number of sequences is set to `5` in the `Keychord` struct for a given keybinding -- This original motivation was better support for [stumpwm](https://stumpwm.github.io/) style of keybindings, however this is not a limitation - -### Example - -The default values for `MODKEY` and `PREFIXKEY` can be changed in `config.def.h` and/or `config.h`. - -#### emacs-like - -In the example below, the `firefox` command is bound to the key sequence `alt-s alt-u f`. - -```C -static const Keychord keychords[] = { - /* Note that Shift changes certain key codes: c -> C, 2 -> at, etc. */ - /* count key_sequences function argument */ - { 3, {{MODKEY, XKB_KEY_s}, {MODKEY, XKB_KEY_u}, {MOD_NONE, XKB_KEY_f}}, spawn, SHCMD("firefox") }, -}; -``` - -#### vim-like - -In the example below, the `firefox` command is bound to the key sequence `alt-s u f`. - -```C -static const Keychord keychords[] = { - /* Note that Shift changes certain key codes: c -> C, 2 -> at, etc. */ - /* count key_sequences function argument */ - { 3, {{MODKEY, XKB_KEY_s}, {MOD_NONE, XKB_KEY_u}, {MOD_NONE, XKB_KEY_f}}, spawn,SHCMD("firefox") }, -}; -``` - -### Download - -- [2023-03-12](https://github.com/djpohly/dwl/compare/main...yveszoundi:dwl-customization:keychord-2023-03-12.patch) -- [2023-02-15](https://github.com/djpohly/dwl/compare/main...yveszoundi:dwl-customization:v0.4-keychord-2023-02-15.patch) - -### Authors - -- [Yves Zoundi](https://github.com/yveszoundi) ---- -## keymap - -### Description -Print current keyboard layout to stdout - -### Download -- [2022-09-10](https://github.com/djpohly/dwl/compare/main...GospodinHoroshiy:keymap.patch) - -### Authors -- [Gospodin](https://github.com/GospodinHoroshiy) ---- -## master-right - -### Description -Show the master area to the right. - -### Reason for deprecation -I created this patch for a user on Discord and I have never used it. - -### Download -- [git branch](https://codeberg.org/sevz/dwl/src/branch/master-right) -- [main 2024-09-01](/dwl/dwl-patches/raw/branch/main/patches/master-right/master-right.patch) -- [master-right-0.7.patch](/dwl/dwl-patches/raw/branch/main/patches/master-right/master-right-0.7.patch) - -### Authors -- [sevz](https://codeberg.org/sevz) - ---- -## mouse-follows-focus - -### Description -This patch adds the option to let the cursor jump to the center of new clients, as well as move the cursor to the center of clients that gains focus. - -### Download -- [2023-03-17](https://github.com/djpohly/dwl/compare/main...0undefined:mouse-follows-focus.patch) - -### Authors -- [0undefined](https://github.com/0undefined) ---- -## move-stack-top - -### Description -Extend the [movestack](https://github.com/djpohly/dwl/wiki/movestack) patch to let you also focus, or move, a client to the top or bottom of the stack. - -### Download -- [2023-03-12](https://github.com/djpohly/dwl/compare/main...0undefined:dwl:move-client-top.patch) - -### Authors -- [0undefined](https://github.com/0undefined) -- Original movestack patch: [sam-barr](https://github.com/ss7m) ---- -## nomousefocus - -### Description -Prevent focus on mouseover. - -### Download -- [2023-02-05](https://github.com/djpohly/dwl/compare/main...jjjt-git:nomousefocus.patch) - -### Authors -- [JJJT](https://github.com/jjjt-git) ---- -## onlyquitonempty - -### Description -Only exit when no windows are open - -### Download -- [2022-09-11](https://github.com/djpohly/dwl/compare/main...GospodinHoroshiy:onlyquitonempty.patch) - -### Authors -- [Gospodin](https://github.com/GospodinHoroshiy) ---- -## privilegeDrop - -### Description -Adds the -u option that allows users to pass a desired uid to drop to after becoming DRM master. - -### Download -- [2021-09-06](https://github.com/djpohly/dwl/compare/main...DanielMowitz:privilege-drop.patch) - -### Authors -- [Daniel Mowitz](https://github.com/DanielMowitz) ---- -## relativemouseresize - -### Description - -When resizing windows, the mouse will no longer jump to the bottom -right corner and only resize from that corner. Instead, the mouse will -resize the window in the quadrant that the resize starts at. This is the -same resize behavior as Sway and is similar to the resizehere dwm patch. - -### Download -- [v0.4](https://github.com/djpohly/dwl/compare/main...schance995:dwl:relative-mouse-resize.patch) - -### Authors -- [schance995](https://github.com/schance995) ---- -## restartdwl - -### Description -This patch allows you to restart dwl with a keybinding. -**NOTE:** that all of your applications are gonna get killed on dwl restart. - -The function creates a file at **/tmp/restart_dwl** and exits dwl. -You have to modify your dwl launch script in order for this patch to work. -Example dwl launch script: -```sh -do=true -while $do || [ -f /tmp/restart_dwl ]; do - do=false - rm -rf /tmp/restart_dwl > /dev/null 2>&1 - dwl -done -``` -It's a do-while that checks if **/tmp/restart_dwl** exists after the first run of dwl. -If this file exists delete it and start dwl again. - -### Download -- [2022-10-27](https://github.com/djpohly/dwl/compare/main...krypciak:patch-restartdwl.patch) - -### Authors -- [krypciak](https://github.com/krypciak) ---- -## restoretiling - -### Description -All floating windows become tiling when switching to a different layout. - -### Download -- [2020-08-28](https://github.com/djpohly/dwl/compare/main...Stivvo:restoreTiling.patch) - -### Authors -- [Stivvo](https://github.com/Stivvo) ---- -## stickyrule - -### Description -Add a rule to clients to spawn them [sticky](sticky) on start up. -I personally use it to make [dragon](https://github.com/mwh/dragon) show up on all tags. - -### Download -Apply on top of [sticky patch](sticky). - -- [2023-05-27](https://github.com/dm1tz/dwl/compare/04-sticky...NikitaIvanovV:stickyrule.patch) - -### Authors -- [Nikita Ivanov](https://github.com/NikitaIvanovV) - ---- -## swaycompat - -### Description -Implements just enough of the `sway-ipc` protocol to facilitate status bars. Tested with `waybar` and `rootbar`. - -### Download -- [2022-06-08](https://github.com/djpohly/dwl/compare/main...StratusFearMe21:main.patch) - -### Authors -- [Isaac Mills](https://github.com/StratusFearMe21) ---- -## touchscreen - -### Description -Adds SIMPLE touchscreen functionality.
-Currently emulates mouse movement and button presses.
- -### Download -- [2023-03-31](https://github.com/djpohly/dwl/compare/main...fauxmight:dwl:simple_touch_input.patch) -- [2022-10-16](https://github.com/djpohly/dwl/compare/main...Unprex:touch-screen.patch) - -### Authors -- [fauxmight](https://github.com/fauxmight) -- [Unprex](https://github.com/Unprex) ---- -## vertile - -### Description -A tiled layout optimized for wide vertical monitors. -### Scheme -``` -|---------------------------| -| | -| | -| M | -| | -| | -|---------------------------| -| t1 | -|---------------------------| -| t2 | -|---------------------------| -| t3 | -|---------------------------| -``` -### Download -- [2023-06-21](https://github.com/djpohly/dwl/compare/main...Abanoub8:vertile.patch) -- [2021-08-15](https://github.com/djpohly/dwl/compare/main...ChausseBenjamin:vertile.patch) - -### Authors -- [Benjamin Chausse](https://github.com/ChausseBenjamin) -- [Abanoub8](https://github.com/Abanoub8) ---- -## xcursor - -### Description - -Set cursor theme and size via `XCURSOR_THEME` and `XCURSOR_SIZE` environmental variables. - -### Download -- [2023-07-18](https://github.com/djpohly/dwl/compare/main...NikitaIvanovV:xcursor.patch) - -### Authors -- [Nikita Ivanov](https://github.com/NikitaIvanovV) ---- diff --git a/list_all_readme.py b/list_all_readme.py deleted file mode 100644 index 6625555..0000000 --- a/list_all_readme.py +++ /dev/null @@ -1,25 +0,0 @@ -import os - -patchlist = os.listdir("./patches") -patchlist.sort() - -for patch in patchlist: - print(f"# {patch}\n") - for file in os.listdir(f"./patches/{patch}"): - if file.lower() == "readme.md": - print(open(f"./patches/{patch}/{file}").read()) - print("---") - -print("# STALE PATCHES") - -patchlist = os.listdir("./_STALE_PATCHES") -patchlist.sort() -for patch in patchlist: - print(f"## {patch.split(".")[0]}\n") - if (os.path.isdir(f"./_STALE_PATCHES/{patch}")): - for file in os.listdir(f"./_STALE_PATCHES/{patch}"): - if file.lower() == "readme.md": - print(open(f"./_STALE_PATCHES/{patch}/{file}").read()) - else: - print(open(f"./_STALE_PATCHES/{patch}").read()) - print("---") diff --git a/patches/winview/README.md b/patches/winview/README.md index 4fb8dd5..6c44eee 100644 --- a/patches/winview/README.md +++ b/patches/winview/README.md @@ -26,7 +26,7 @@ This patch is inspired from . Citing > An example of how to insert this line can be found in the default config file template, config.def.h. ### Download -- [2024-09-18](https://codeberg.org/dwl/dwl-patches/raw/branch/main/patches/winview/winview.patch) +- [2024-09-18](https://codeberg.org/dwl/dwl-patches/raw/branch/main/patches/winview/winview-20240918.patch) - [2024-06-06](https://codeberg.org/dwl/dwl-patches/raw/branch/main/patches/winview/winview-20240606.patch) - [git branch](https://codeberg.org/dhruva_sambrani/dwl/src/branch/winview) diff --git a/readme.html b/readme.html deleted file mode 100644 index afaf057..0000000 --- a/readme.html +++ /dev/null @@ -1,3841 +0,0 @@ - - - - - - - - - - - -

accessnthmon

-

Description

-

Port of dwm's accessnthmon. Adds functions to tag and focus monitor -by index.

-

Download

- -

Authors

- -
-

alwayscenter

-

Description

-

Automatically center floating windows.

-

Download

- -

Authors

- -
-

attachbottom

-

Description

-

Newly created windows are placed at the bottom of the client tile -stack.

-

Download

- -

Authors

- -
-

attachtop

-

Description

-

This is a port of attachtop patch for dwm: https://dwm.suckless.org/patches/attachtop

-

New client attaches below the last master/on top of the stack.

-

Behavior feels very intuitive as it doesn't disrupt existing masters -no matter the amount of them, it only pushes the clients in stack -down.

-

Download

- -

Authors

- -
-

autostart

-

Description

-

Allow dwl to execute commands from autostart array in your config.h -file. And when you exit dwl all processes from autostart array will be -killed.

-

Note: Commands from array are executed using execvp(). So if you need -to execute shell command you need to prefix it with "sh", "-c" (change -sh to any shell you like).

-

Download

- -

Authors

- -
-

bar

-

Description

-

Add a bar identical to dwm's bar.

-

To use a status-bar, you can pass in status text via stdin:

-
slstatus -s | dwl
-

Dependencies

-
    -
  • tllist (build dependency, required & pulled automatically by -fcft)
  • -
  • fcft
  • -
  • pixman
  • -
-

Download

- -

Below is a preview of the patch.

-

bar patch preview

-

For colors, they are in RRRR, GGGG, BBBB, AAAA format -due to inheriting the pixman_color_t type, an example for -the color 0x282a36 would be -0x2828, 0x2a2a, 0x3636, 0xffff

-

Authors

- -

Credits

- -
-

bar-systray

-

Description

-

Add a system tray next to the bar. -Heed the warning, this is far from suckless ^^

-

preview

-

Dependencies

- -

Applying the patch

-

The patch applies on top of the bar patch. That needs to be applied -first.

-

The patch creates subdirectories lib and -include. After patching, but before make, -install libstatusnotifier-systray-gtk4.a and -snsystray.h from statusnotifier-systray-gtk4 in the -directories. One possible way to do that:

-
    -
  1. Clone [https://codeberg.org/janetski/statusnotifier-systray-gtk4](https://codeberg.org/janetski/statusnotifier-systray-gtk4). -Can clone to any location.
  2. -
  3. From statusnotifier-systray-gtk4 root: -
      -
    1. $ meson setup --default-library=static --prefix=/ -Dgir=false -Dvala=false -Ddocs=false build
    2. -
    3. $ meson compile -C build
    4. -
    5. $ DESTDIR=$DWLDIR meson install -C build, where $DWLDIR -is the path to dwl root.
    6. -
  4. -
  5. Finally, from dwl root, run make.
  6. -
-

Download

- -

Authors

- -
-

barborder

-

Description

-

Add a border around the bar -similar to how a client is given a border.

-

Download

- -

Authors

- -
-

barcolors

-

Description

-

Add support for colored status text to the bar. Text can be -colored in the same manner as with dwlb, namely by wrapping it between -^fg(color) and ^fg() or -^bg(color) and ^bg(), where color -is a 6-digit hexadecimal value.

-

Download

- -

Authors

- -
-

barheight

-

Description

-

Adds the ability to change the bar's -height.

-

Download

- -

Authors

- -
-

barpadding

-

Description

-

Add vertical and horizontal space between the bar and the edge of the screen.

-

Download

- -

Authors

- -
-

borders

-

Description

-

Adds 2 more borders to each side (top, bottom, left, right) of every -window.

-
-Preview -
-With the following config:
-
-
static const unsigned int borderpx         = 9;  /* border pixel of windows */
-static const unsigned int borderspx        = 3;  /* width of the border that start from outside the windows */
-static const unsigned int borderepx        = 3;  /* width of the border that start from inside the windows */
-

and border_color_type set to BrdOriginal: -

-

and border_color_type set to BrdStart: -

-

and border_color_type set to BrdEnd: -

-

and border_color_type set to BrdStartEnd: -

-
- -

Download

- -

Authors

- -
-

bottomstack

-

Description

-

bstack and bstackhoriz are two stack layouts for dwl.

-

Scheme

-
bstack        (TTT)       bstackhoriz   (===)
-+-----------------+       +-----------------+
-|                 |       |                 |
-|                 |       |                 |
-|                 |       |                 |
-+-----+-----+-----+       +-----------------+
-|     |     |     |       +-----------------+
-|     |     |     |       +-----------------+
-+-----+-----+-----+       +-----------------+
-

Download

- -

Authors

- -
-

buttonbystate

-

Description

-

Adds "state" (enum wlr_button_state) to configure a -button action on either press or release. This basically enables release -to be used for button actions.

-

Download

- -

Authors

- -
-

center-terminal

-

Description

-

Add a keybinding that toggles centering the terminally horizontally -when it's the only window, while still tiling multiple windows.

-

This limits the width of long text making it easier to read, and -avoids covering the wallpaper more than necessary.

-

Download

- -

Authors

- -
-

centeredmaster

-

Description

-

This is a port of centeredmaster patch for dwm: https://dwm.suckless.org/patches/centeredmaster

-

centeredmaster centers the nmaster area on screen, using mfact * -monitor width & height, with the stacked windows distributed to the -left and right. It can be selected with Alt+c.

-

With one and two clients in master respectively this results in:

-
+------------------------------+       +------------------------------+
-|+--------++--------++--------+|       |+--------++--------++--------+|
-||        ||        ||        ||       ||        ||        ||        ||
-||        ||        ||        ||       ||        ||   M1   ||        ||
-||        ||        ||        ||       ||        ||        ||        ||
-||  S2    ||   M    ||   S1   ||       ||        |+--------+|        ||
-||        ||        ||        ||       ||        |+--------+|        ||
-||        ||        ||        ||       ||        ||        ||        ||
-||        ||        ||        ||       ||        ||   M2   ||        ||
-||        ||        ||        ||       ||        ||        ||        ||
-|+--------++--------++--------+|       |+--------++--------++--------+|
-+------------------------------+       +------------------------------+
-

Download

- -

Authors

- -
-

cfact

-

Description

-

A port of the dwm -cfacts patch (with the limits removed)

-

Clients with higher weight are allocated more space!

-
+---------------------+
-|          |   0.5    |
-|   1.0    +----------+
-+----------+          |
-|          |   1.0    |
-|          +----------+
-|   2.0    |          |
-|          |   1.0    |
-+----------+----------+`
-

Download

- -

Authors

- -
-

cfact-centeredmaster

-

Description

-

Port of the cfact patch for the centeredmaster layout.

-

Inspired by the original patch for dwm (https://dwm.suckless.org/patches/cfacts/)

-

This patch requires both cfact -and centeredmaster -patches.

-

Download

- -

Authors

- -
-

chainkeys

-

Description

-

Implements chained keybindings (like the dwm keychain -patch).

-

Bindings can share a leading chain key. This chain key will be -triggered when Mod+chain is pressed. A subsequent keypress will be -matched against bindings for that chain key. If it is configured the -action will be triggered, otherwise the keypress will be ignored.

-

Download

- -

Authors

- -
-

client-opacity

-

Description

-

This patch adds default transparency parameters to config.h which -specify the starting transparencies of all windows.

-

It also adds opacities to the ruleset, enabling override of the -opacities on a per client basis.

-

Additionally, it adds some shortcuts:

-
[MODKEY]+[o]         -> increase focus opacity of currently focused window
-[MODKEY]+[Shift]+[o] -> decrease focus opacity of currently focused window
-

Download

- -

Authors

- -
-

column

-

Description

-

A column layout patch. This patch just puts the visible clients into -equal-width columns on the screen.

-

Download

- -

Authors

- -
-

coredump

-

Description

-

Generate a coredump if dwl exited abnormally (to be more usefull you -need to compile dwl and wlroots with debug symbols)

-

Download

- -

Authors

- -
-

cursortheme

-

Description

-

Adds ability to change cursor's theme and size.

-
static const char *cursor_theme            = NULL;
-static const char cursor_size[]            = "24"; /* Make sure it's a valid integer, otherwise things will break */
-

Download

- -

Authors

- -
-

customfloat

-

Description

-

Rules for floating windows support default x, y, width, height. -Defaults to the center of the screen and the client size.

-

If the width or height is less than or equal to 1, then the value -will be interpreted as a percentage. For example, 0.5 represents 50%, -0.25 represents 25%, and 1 represents 100%. NOTE: Some -clients, like Thunar, have minimum width/height

-

The variable center_relative_to_monitor allows the user -to choose whether to center relative to the monitor or relative to the -window area.

-
-Explanation of center_relative_to_monitor: -
-The "Monitor area" refers to the space enclosed by the green rectangle, while the "Window area" refers to the space enclosed by the red rectangle.
-
-
-
- -

Download

- -

Authors

- -
-

deck

-

Description

-

Adds a layout with a monocle layout for clients in the stack (port of -the deck layout for -dwm); stacked clients are like a deck of cards (see below)

-
Tile:
-+-----------------+--------+
-|                 |        |
-|                 |  S1    |
-|                 |        |
-|        M        +--------+
-|                 |        |
-|                 |   S2   |
-|                 |        |
-+-----------------+--------+
-
-Deck:
-+-----------------+--------+
-|                 |        |
-|                 |        |
-|                 |        |
-|        M        |   S1   |
-|                 |        |
-|                 |        |
-|                 |        |
-+-----------------+--------+
-

Download

- -

Authors

- -
-

define-modkey-with-make-argument

-

Description

-

This patch adds the ability to define the modkey with a make argument -like so:

-
make MODKEY=WLR_MODIFIER_ALT
-make MODKEY=WLR_MODIFIER_LOGO
-make MODKEY=WLR_MODIFIER_CTRL
-make MODKEY=WLR_MODIFIER_SHIFT
-

It can be used to compile multiple times quickly, you can also have a -main session and sub session with different modkeys.

-

Download

- -

Authors

- -
-

dim-unfocused

-

Description

-

Implements dimming of clients which are unfocused.

-

The code also allows you to "dim" focused windows if you wish to, and -as such allows any color dimming. There is also an additional option in -Rule, which allows you to keep the client alwaysbright, -that is, as if it is focused.

-

Download

- -

Authors

- -
-

dragmfact

-

Description

-

Change mfact by dragging the mouse.

-

Download

- -

Authors

- -
-

dragresize

-

Description

-

implement rio-like window resizing

-

select window to resize (mod+middleclick by default) then drag out an -area for it to occupy

-

Download

- -

Authors

- -
-

en-keycodes

-

Description

-

Always use the English keymap to get keycodes, so key bindings work -even when using a non-English keyboard layout.

-

Download

- -

Authors

- -
-

envcfg

-

Description

-

Input device configuration (click method, tap-and-drag, acceleration, -etc), border size and colors via environment variables.

-

Download

- -

Authors

- -
-

fakefullscreenclient

-

Description

-

Allow setting fake fullscreen per client

-

Download

- -

Authors

- -
-

fallback

-

Description

-

Tries a different display mode if the preferred mode doesn't -work.

-

Download

- -

Authors

- -
-

float-unfocused-border-color

-

Description

-

A revive of the floatBorderColor patch.

-

This patch allows you to set a color for floating windows when they -are unfocused.

-

Download

- -

Authors

- -
-

focusdir

-

Description

-

Focus the window to the left, right, above or below the current -focused window

-

Download

- -

Authors

- -
-

foreign-toplevel-management

-

Description

-

Implement foreign-toplevel-management, it add handlers -for activate, close, fullscreen and destroy request events, it's missing -minimize and maximize request handlers.

-

Download

- -

Authors

- -
-

gaplessgrid

-

Description

-

Arranges windows in a grid. Except it adjusts the number of windows -in the first few columns to avoid empty cells.

-

Download

- -

Pre-codeberg

- -

Authors

- -
-

gaps

-

Description

-

Adds gaps between clients, providing the ability to disable them at -run-time.

-

smartgaps can also be changed to remove gaps when there -is only one client present.

-

Download

- -

Authors

- -
-

gestures

-

Description

-

Add swipe gestures to trigger functions, similar to libinput-gestures. -It supports the following gestures: SWIPE_UP, -SWIPE_DOWN, SWIPE_LEFT and -SWIPE_RIGHT

-
-

NOTE: It requires that you have previously applied pointer-gestures-unstable-v1

-
-
static const Gesture gestures[] = {
-  /* modifier gesture       fingers_count   function    argument */
-  { MODKEY,   SWIPE_LEFT,   4,              shiftview,  { .i = 1 } },
-  { 0,        SWIPE_RIGHT,  4,              shiftview,  { .i = -1 } },
-};
-

NOTE: the example above requires the following patch -shiftview

-

Download

- -

Authors

- -
-

globalkey

-

Description

-

This patch adds ability to pass specified in config header keys -globally, somewhat in hyprlands approach. This might deal with waylands -lack of global shortcuts.

-

Example:

-
static const PassKeypressRule pass_rules[] = {
-    ADDPASSRULE("com.obsproject.Studio", MODKEY, XKB_KEY_Home),
-    ADDPASSRULE("discord", 0, XKB_KEY_n),
-    /* xkb key is case ignored */
-};
-

will pass MODKEY + Home key to obs(flatpak version) -regardless of what client is currently focused if any. String -"com.obsproject.Studio" should be exact match for appid of the client. -To get appid use dwlmsg, or run stock dwl -from a terminal then launch the needed application inside, dwl will -print all the info to the stdout.

-

Note that if popup (like fuzzel) is focused, no key -will be globally passed. This is done so these menus don't get closed -after hitting some of the global keys.

-

Download

- -

Authors

- -
-

headless

-

Description

-

Implements swaymsg create_output command, it allows you -to create virtual/headless outputs. But in combination with a VNC server -(for example wayvnc), this allows you to essentially have additional -monitors, by connecting to the VNC server with an appropiate client (for -example on an tablet or laptop).

-

If you plan to use wayvnc, you'll need virtual-pointer -patch as well

-

Download

- -

Authors

- -
-

hide-behind-fullscreen

-

Description

-

Hide all clients (and layer surfaces) behind the current client if it -is fullscreen, only the background (layer surfaces at the background -layer) will be shown

-

Download

- -

Authors

- -
-

hide-behind-monocle

-

Description

-

Hide all clients behind the focused one in the monocle layout

-

Download

- -

Authors

- -
-

hide_vacant_tags

-

Description

-

Prevent bar from drawing tags -with no clients (i.e. vacant). It also stops drawing empty rectangles on -the bar for non-vacant tags as there is no need anymore to distinguish -vacant tags and it offers a more visible contrast than if there were -filled/empty rectangles.

-

Download

- -

Authors

- -
-

hiderule

-

Description

-

Adds a ishidden option to client rules, that allows -hiding any matching clients entirely.

-

Download

- -

Authors

- -
-

inputdevicerules

-

Description

-

Input device rules implemented using custom device create functions -for keyboards and pointing devices.

-

Examples provided:

-
    -
  • ignore unwanted input devices
  • -
  • configure a toggle input device
  • -
  • exclude certain keyboards (eg ydotool) from keyboard group
  • -
-

Download

- -

Authors

- -
-

ipc

-

Description

-

Largely based on raphi's somebar, this patch provides an -ipc for wayland clients to get and set dwl state. The ipc is intended -for status bars, but can also be scripted with tools like dwlmsg.

-

Status information to stdout is currently disabled as dwl tends to -freeze. For now, dwlmsg -w should act as a drop-in -replacement.

-

Note to pertag users: apply this for ipc tagsetting to work as -expected

-

Download

- -

Authors

- -
-

kblayout

-

Description

-

This patch adds per-client keyboard layout and ability to send -current keyboard layout information to a status bar.

-

Only per-client feature is enabled by default. You can edit -kblayout_file and kblayout_cmd variables to -notify a status bar about keyboard layout.

-

Someblocks config that -works with the example settings in config.h:

-
static const Block blocks[] = {
-    /*Icon*/    /*Command*/     /*Update Interval*/ /*Update Signal*/
-    {"", "cat /tmp/dwl-kblayout",                   0,      1},
-};
-

Both of these features are included in one patch because their -implementation happens to share some code. If you don't need any of -these features, just disable it in config.h.

-

Download

- -

Authors

- -
-

keyboardshortcutsinhibit

-

Description

-

Allows clients to use the keyboard-shortcuts-inhibit protocol to -block the compositor from using keybinds. This is useful for -virtualization software like looking-glass which requires this protocol -to run.

-

Download

- -

Authors

- -
-

keycodes

-

Description

-

Use keycodes instead of keysyms. This way, input is independent from -keyboard layout (you can use the keys.h file to customize, or get the -keycodes with wev or -xkbcli interactive-wayland (x11-libs/libxkbcommon[tools] in -gentoo)).

-

Download

- -

Config after patching

-

(run in DWL source directory)

-
export XKB_DEFAULT_VARIANT=yourbestkeyboardlayout
-cc -lxkbcommon -o generate-keys generate-keys.c
-./generate-keys
-

Authors

- -
-

less-simple-touch-input

-

Description

-

Adds touchscreen functionality.

-

This patch was based on the simple-touch-input -but instead of emulating mouse movement, this now forwards the -appropriate event notifications to clients.

-

KNOWN BUGS:

-
    -
  • Sometimes, the pointer moves to where the screen is pressed, but the -button press doesn't occur until the screen is touched AGAIN. This means -that if you touch to click button 'Q' on the screen (for instance), -nothing happens; then you touch elsewhere on the screen and THEN button -'Q' registers a click. This is annoying, doesn't always happen, and I -don't yet know how to fix it.
  • -
-

Download

- -

Authors

- -

Changelog

-
    -
  • 2024-02-11 Corrected issue where motion events where not sending -notifications for unfocused clients such as an on screen keyboard
  • -
  • 2024-03-26 Rebased, and removed #ifdef's for the pointer constraints -patch which has been merged into upstream
  • -
  • 2024-03-28 Removed debug
  • -
-
-

limitnmaster

-

Description

-

Limits nmaster to within the range of currently-opened windows -(nmaster will not change past the full horizontal split layout)

-

Download

- -

Authors

- -
-

lockedkeys

-

Description

-

This patch allows you to add keybindings to the lockscreen.

-
static const Key lockedkeys[] = {
-    /* Note that Shift changes certain key codes: c -> C, 2 -> at, etc. */
-    /* modifier                  key                 function        argument */
-
-    /* Ctrl-Alt-Backspace and Ctrl-Alt-Fx used to be handled by X server */
-    { WLR_MODIFIER_CTRL|WLR_MODIFIER_ALT,XKB_KEY_Terminate_Server, quit, {0} },
-#define CHVT(n) { WLR_MODIFIER_CTRL|WLR_MODIFIER_ALT,XKB_KEY_XF86Switch_VT_##n, chvt, {.ui = (n)} }
-    CHVT(1), CHVT(2), CHVT(3), CHVT(4), CHVT(5), CHVT(6),
-    CHVT(7), CHVT(8), CHVT(9), CHVT(10), CHVT(11), CHVT(12),
-};
-

Download

- -

Authors

- -
-

master-right

-

Description

-

Show the master area to the right.

-

Download

- -

Authors

- -
-

mastercolumn

-

Description

-

This patch adds a layout, mastercol, in which the -windows in the master area are arranged in columns of equal size. The -number of columns is always nmaster + 1, and the last column is a stack -of leftover windows (as in the normal tile layout). It effectively -differs from the default tile layout only in that master windows are -arranged horizontally rather than vertically.

-

For gaps, apply mastercolumn-gaps.patch on top of -mastercolumn.patch and gaps.patch.

-

Download

-
mastercolumn.patch
- -
mastercolumn-gaps.patch
- -

Authors

- -
-

menu

-

Description

-

This patch adds menu command, which allows dwl to -interface with dmenu-like programs.

-

By default, two menus are available:

-
    -
  • focusing a window by its title by pressing Alt+o
  • -
  • selecting a layout from a list by pressing -Alt+Shift+o
  • -
-

Edit menus array in config.h to add/change -menus and use a different dmenu program.

-

Download

- -

Authors

- -
-

meson

-

Description

-

Add the meson build system.

-

This is useful for people who do not want to self-manage a wlroots -installation.

-

To enable Xwayland support, you will need to enable it in the wlroots -subproject:

-
meson setup -Dwlroots:xwayland=enabled build
-

Download

- -

Authors

- -
-

minimalborders

-

Description

-

Dynamically adjusts the borders between adjacent windows to make them -visually merge

-

NOTE: to disable minimalborders after applying this -patch, set draw_minimal_borders to 0

-
static const int draw_minimal_borders = 0; /* disable minimalborders */
-
-Preview: -
-with:
-
-
static const unsigned int borderpx         = 10;  /* border pixel of windows */
-

Before applying the patch -

-

After applying the patch -

-
- -

Download

- -

Authors

- -
-

modes

-

Description

-

Implement modes, that way each mapping is associated with a mode and -is only active while in that mode, default mode is -NORMAL

-

Example

-

In the example below, you declare a mode: BROWSER, which -is activated when you press modkey + b. Then, you -can press f to launch Firefox and return to the -default NORMAL mode.

-
enum {
-  BROWSER,
-};
-const char *modes_labels[] = {
-  "browser",
-};
-
-static const Key keys[] = {
-  // ...
-  { MODKEY, XKB_KEY_b, entermode, {.i = BROWSER} },
-  // ...
-};
-
-static const Modekey modekeys[] = {
-  /* mode      modifier                  key                 function        argument */
-  { BROWSER, { 0, XKB_KEY_f, spawn, SHCMD("firefox") } },
-  { BROWSER, { 0, XKB_KEY_f, entermode, {.i = NORMAL} } },
-  { BROWSER, { 0, XKB_KEY_Escape, entermode, {.i = NORMAL} } },
-};
-

Download

- -

Authors

- -
-

monfig

-

Description

-

Allows more monitor configuration in config.h

-

Download

- -

Authors

- -
-

movecenter

-

Description

-
-

This patch is no longer being maintained by me wochap, since I'm now using a -different patch specific to my use case: https://codeberg.org/wochap/dwl/src/branch/v0.6-c/betterfloat/betterfloat-diff.patch.

-
-

This patch provides a keybinding to center the focused floating -window.

-

Press MODKEY + x to center the focused floating -window.

-

It does NOT center windows that are not floating.

-

The variable respect_monitor_reserved_area allows the -user to choose whether to center relative to the monitor or relative to -the window area.

-
-Explanation of respect_monitor_reserved_area: -
-The "Monitor area" refers to the space enclosed by the green rectangle, while the "Window area" refers to the space enclosed by the red rectangle.
-
-
-
- -

Download

- -

Authors

- -
-

moveresizekb

-

Description

-

This allows the user to change size and placement of floating windows -using only the keyboard, default keybindings:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
KeybindingAction
MODKEY + Upmove 40px up
MODKEY + Downmove 40px down
MODKEY + Leftmove 40px left
MODKEY + Rightmove 40px right
MODKEY + Shift + -Upshrink height 40px
MODKEY + Shift + -Downgrow height 40px
MODKEY + Shift + -Leftshrink width 40px
MODKEY + Shift + -Rightgrow width 40px
-

Download

- -

Authors

- -
-

movestack

-

Description

-

Allows you to move a window up and down the stack.

-

Download

- -

Authors

- -
-

namedscratchpads

-

Description

-

Allows for the creation of multiple scratchpad windows, each assigned -to a different keybinding. In simple terms, it enables 'run or raise' -functionality

-

This patch adds the following functions:

-
    -
  • togglescratch: simply toggles the scratchpad -window
  • -
  • focusortogglescratch: change the focus to the -scratchpad window if it is visible and toggles it if it is already in -focus
  • -
  • focusortogglematchingscratch: similar to -focusortogglescratch but also closes all other scratchpad -windows
  • -
-

If you don't assign keybindings to any of the above functions and so -get a compiler warning about them not being used, just remove them from -your dwl branch to stop the warning.

-

Download

- -

Authors

- -
-

naturalscrolltrackpad

-

Description

-

Set natural scrolling only for trackpads.

-

Download

- -

Authors

- -
-

numlock-capslock

-

Description

-

Allows activating numlock or capslock at startup

-

Download

- -

Authors

- -
-

passthrough

-

Description

-

allows pausing keybind handling

-

also allows for bitcarrying-esque control of nested instances

-

default keybind is Ctrl+Logo+Alt+Shift+Esc, can be customized in -config.h

-

Download

- -

Authors

- -
-

perinputconfig

-

Description

-

Replace the singular keyboard and pointer input configuration with an -array allowing to set different variables matching by name.

-

Tip to find the names: Grep for device_name and add a -line after it to print to stdout. Then run EX: -dwl > /tmp/print_device_names.log, exit dwl, and should -see the names.

-

Download

- -

Authors

- -
-

pertag

-

Description

-

Makes layout, mwfact and nmaster individual for every tag.

-

Download

- -

Authors

- -
-

pointer-gestures-unstable-v1

-

Description

-

Forward the following events to client: swipe_begin, swipe_update, -swipe_end, pinch_begin, pinch_update and pinch_end

-

This patch allows you to pinch zoom in Chrome, for example. In -combination with the following patches gestures -and shiftview, -it would allow you to switch workspaces by performing a 3-finger swipe -on your touchpad.

-

Download

- -

Authors

- -
-

press_repeat_release

-

Description

-

This patch adds 3 additional options to the Key struct, -on_press, on_repeat and -on_release which can be used to control which events a key -binding should be triggered on.

-

NOTE: Due to concerns about patching difficulties this patch does NOT -include any changes to config.def.h. After applying you -will need to add the 3 additional initializers to each key binding that -you would like to modify. Any key binding that is not updated will cause -a build warning but should function as it does in vanilla.

-

Download

- -

Authors

- -
-

primaryselection

-

Description

-

Adds a config option to disable/enable primary selection -(middle-click paste).

-

Download

- -

Authors

- -
-

push

-

Description

-

Adds functions pushup and pushdown to move -windows within the tiling order.

-

Download

- -

Authors

- -
-

regexrules

-

Description

-

Allows the use of regular expressions for window rules "app_id" and -"title"

-
static const Rule rules[] = {
-    // ...
-    { "kitty-htop",  NULL,  1 << 8,  0,  -1 },
-    { "^kitty$",     NULL,  0,       0,  -1 },
-    // ...
-};
-

Download

- -

Authors

- -
-

regions

-

Description

-

This patch will allow for a program to be used and have the current -window regions on all monitors to be passed to the program as standard -input.

-

example is grim -g "$(slurp)"

-

Download

- -

Authors

- -
-

relative-mouse-resize

-

Description

-

When resizing windows, the mouse will jump and resize the window in -the quadrant that the resize starts at.

-

Download

- -

Authors

- -
-

remembertags

-

Description

-

This patch modifies the behavior when selecting tags so that -selecting a tag will also enable any other tags that were previously -visible.

-

For example:

-
    -
  1. Select tag 5, with mod+5
  2. -
  3. Toggle tag 8, with ctrl+mod+8
  4. -
  5. Select tag 1, with mod+1. Tags 5 and 8 should no longer be -visible.
  6. -
  7. Select tag 5 again, with mod+5. Tag 8 should be visible since it was -remembered.
  8. -
  9. Select tag 5 again, with mod_5. Selecting the already selected tag -resets any remembered tags, so now tag 5 should be the only one -visible.
  10. -
-

Download

- -

Authors

- -
-

restore-monitor

-

Description

-

Moves clients to their old output when it is reattached.

-

Download

- -

Authors

- -
-

right

-

Description

-

Put newly connected monitors on the right, like X does.

-

Download

- -

Authors

- -
-

rlimit_max

-

Description

-

Sets the current maximum open file descriptors to the maximum -available limit.

-

This patch is useful - and solves issue #628 for running -heavy Xwayland applications on systems that do not provide limits out of -the box.

-

Download

- -

Authors

- -
-

rotatetags

-

Description

-

This patch provides the ability to rotate the tagset left / right. It -implements a new function rotatetags which modifies the current tagset. -Same as original dwm patch. Also adds ability to move focused client to -left / right adjacent tag by specifying appropriate enum value as -argument.

-

Download

- -

Authors

- -
-

scenefx

-

Description

-

Implement https://github.com/wlrfx/scenefx

-
/* available options */
-
-static const int opacity = 0; /* flag to enable opacity */
-static const float opacity_inactive = 0.5;
-static const float opacity_active = 1.0;
-
-static const int shadow = 1; /* flag to enable shadow */
-static const int shadow_only_floating = 0; /* only apply shadow to floating windows */
-static const struct wlr_render_color shadow_color = COLOR(0x0000FFff);
-static const struct wlr_render_color shadow_color_focus = COLOR(0xFF0000ff);
-static const int shadow_blur_sigma = 20;
-static const int shadow_blur_sigma_focus = 40;
-static const char *const shadow_ignore_list[] = { "xdg-desktop-portal-gtk", NULL }; /* list of app-id to ignore */
-
-static const int corner_radius = 0; /* 0 disables corner_radius */
-
-static const int blur = 1; /* flag to enable blur */
-static const int blur_optimized = 1;
-static const int blur_ignore_transparent = 1;
-static const struct blur_data blur_data = {
-    .radius = 5,
-    .num_passes = 3,
-    .noise = 0.02,
-    .brightness = 0.9,
-    .contrast = 0.9,
-    .saturation = 1.1,
-};
-
-

NOTE: If you are using nix with flakes, scenefx has -a flake for scenefx https://github.com/wlrfx/scenefx/blob/main/flake.nix

-
-
-

NOTE: Some GTK apps are being cut off when they have -shadows enabled. You can use the shadow_ignore_list option -to prevent shadows from being rendered on those apps

-
-
-

NOTE: Blur doesn't work on windows with opacity set -(opacity_active, opacity_inactive)

-
-
-

NOTE: In DWL's Makefile scenefx must be -placed before wlroots, e.g. -PKGS = scenefx wlroots wayland-server ...

-
-
-Preview -
-
-
-
-
- -

Download

-
    -
  • git -branch

  • -
  • 2024-07-09

    -

    IMPORTANT: This patch only works with the -2ec3505248e819191c37cb831197629f373326fb commit on the -main branch of scenefx, therefore, it does not -support blur.

    -

    IMPORTANT: This patch requires you to build DWL with -the following dependencies

    -
      -
    • scenefx
    • -
    • libGL
    • -
  • -
  • 2024-04-11

    -

    IMPORTANT: This patch only works with the -de4ec10e1ff9347b5833f00f8615d760d9378c99 commit on the -wlr_scene_blur branch of scenefx, as it adds -support for blur.

    -

    IMPORTANT: This patch requires you to build DWL with -the dependencies of WLROOTS:

    -
      -
    • scenefx
    • -
    • libGL
    • -
    • libcap
    • -
    • libinput
    • -
    • libpng
    • -
    • libxkbcommon
    • -
    • mesa
    • -
    • pixman
    • -
    • seatd
    • -
    • vulkan-loader
    • -
    • wayland
    • -
    • wayland-protocols
    • -
    • xorg.libX11
    • -
    • xorg.xcbutilerrors
    • -
    • xorg.xcbutilimage
    • -
    • xorg.xcbutilrenderutil
    • -
    • xorg.xcbutilwm
    • -
    • xwayland (optional)
    • -
    • ffmpeg
    • -
    • hwdata
    • -
    • libliftoff
    • -
    • libdisplay-info
    • -
  • -
  • v0.5

  • -
-

Authors

- -
-

scroll-factor

-

Description

-

This patch adds scroll factor to dwl. The settings can be found in -the trackpad section of the config. This allows user to control the -sensitivity of 2-finger touchpad scrolling.

-

Download

- -

Authors

- -
-

setupenv

-

Description

-

Allow configuring environment variables in config.h

-

Download

- -

Authors

- -
-

shiftview

-

Description

-

Add keybindings to cycle through tags with visible clients.

-

Download

- -

Authors

- -
-

simpleborders

-

Description

-

Like smartborders. Don't put borders when there is only one window on -the screen.

-

Download

- -

Authors

- -
-

singlemaster

-

Description

-

Restricts layout to only having one client in the master area.

-

Download

- -

Authors

- -
-

singletagset

-

Description

-

Single set of tags shared between multiple monitors.

-

This patch allows all the tags to be shared between both (or more) -monitors. So a single set of tags from 1 to 9 can be viewed on any -monitor, as opposed to having separate tag sets 1 to 9 on each -monitor.

-

Originally based on the dwm single_tagset patch: https://dwm.suckless.org/patches/single_tagset/

-

Download

- -

Authors

- -
-

singletagset-pertag

-

Description

-

Pertag keeps layouts, mfact and nmaster per tag instead of per -output.

-

This adapted version of pertag contains one version of the rules per -all outputs, instead of one per output. This makes switching to tags -from other monitors keep the window layout.

-

This patch expects singletagset -patch to be already in your tree committed. It applies onto it.

-

This patch is incompatible with pertag.

-

Download

- -

Authors

- -
-

singletagset-sticky

-

Description

-

Makes sticky work as expected with singletagset. The sticky window -will stay on original output until you explicitely put it to a different -monitor.

-

This patch expects both singletagset -and sticky -patches to be already in your tree committed. It applies onto them.

-

Download

- -

Authors

- -
-

skipfocus

-

Description

-

Adds a rule-based ability to skip automatically focusing a window on -creation. Expected use-case is for transient windows like notifications -etc. The window can still be focused by mouse or keyboard movement.

- - - - - - - - - - - - - - - - - - - - - -
skipfocus valueeffect
0usual
1skipautofocus
2skipfocus entirely
-

Download

- -

Authors

- -
-

smartborders

-

Description

-

The borders of a window aren't drawn when the window is the only -tiling window in its tag OR if the window is in a monocle layout.

-

Download

- -

Authors

- -
-

snail

-

Description

-

Adds a spiral-inspired layout for wide screens.

-

Download

- -

Authors

- -
-

snail-gaps

-

Description

-

Adds support for the gaps -patch to the snail -layout patch.

-

Install the gaps -patch and the snail -patch first.

-

Download

- -

Authors

- -
-

stacker

-

Description

-

Stacker is a patch that allows moving around the stack more freely. -With only one keybinding, quickly move, swap and jump around the window -stack.

-
    -
  1. Focus any window of the stack with a single key binding.
  2. -
  3. Swap the currently focused windows with any other window in the -stack.
  4. -
  5. Move the selected window in the stack with -relativeswap.
  6. -
-

This patch is heavily inspired by the original stacker dwm -patch.

-

Keybinding

-
    -
  • MODKEY + {q, w, -e, r}: jump to the first, second, third and -last window of the stack
  • -
  • MODKEY + SHIFT + {Q, -W, E, R}: swap the selected with -the first, second, third and last window of the stack
  • -
  • MODKEY + SHIFT + {J, -K}: move the selected window up & down the stack
  • -
-

Missing feature

-

Jumping to the last selected window is not yet implemented.

-

Download

- -

Authors

- -
-

startargv

-

Description

-

allow passing startup command on argv

-

e.g. dwl -s foot -s launches foot -s

-

put sh -c right after dwl -s to emulate -normal behaviour

-

Download

- -

Authors

- -
-

sticky

-

Description

-

Adds a toggleable function that makes a sticky client that is visible -on all tags.

-

Originally based on dwm sticky patch.

-

Download

- -

Authors

- -
-

swallow

-

Description

-

Terminals swallow windows that they are the parent of.

-

foot is the terminal by default, you can change it in client rules in -config.h.

-

2023-08-16 and up are made to also work with x windows: https://codeberg.org/dwl/dwl/issues/331

-

for freebsd users: apply swallow-freebsd.patch on top -of swallow.patch

-

Download

- -

Authors

- -
-

swapandfocusdir

-

Description

-

Focus the window (floating or no) to the left, right, above, or below -the current focused window.

-

Swap the focused window with the window (no floating) to the left, -right, above, or below.

-

NOTE: this patch uses the same algorithm that River -uses to select the window in the given direction.

-

Download

- -

Authors

- -
-

switchtotag

-

Description

-

Add a rule option to switch to the configured tag when a window -opens, then switch back when it closes.

-

Download

- -

Authors

- -
-

tab

-

Description

-

Add a tab bar or window title to the top or bottom of windows.

-

Download

- -

Authors

- -
-

tablet-input

-

Description

-

implements wlr-tablet-v2 for drawing tablets and supports cursor -emulation

-

inspired by @guyuming76's branch, -with coding help from @Palanix and testing by @Thanatos

-

Download

- -

Authors

- -
-

tearing

-

Description

-

This patch adds support for tearing protocol. To get it working -export WLR_DRM_NO_ATOMIC=1 is probably required. Setting -ForceTearingRule is also probably required since surfaces -always receive presentation hint 0 (VSYNC) as far as i can tell.

-

Set rules in the config.h (exact string match):

-
static const ForceTearingRule force_tearing[] = {
-    {.title = "", .appid = "oni.exe"},
-    {.title = "", .appid = "hl_linux"},
-    {.title = "", .appid = "steam_app_210970"},
-};
-

Download

- -

Authors

- -
-

titleurgent

-

Description

-

Whenever a client title changes set the client's urgent flag.

-

Hacky solution I use to deal with qutebrowser not setting urgent flag -when a new tab is opened.

-

Download

- -

Authors

- -
-

toggle_constraints

-

Description

-

Adds a function called togglepointerconstraints to turn pointer -constraint enforcement on and off with a keybind.

-

Usage

-

Add a binding for the togglepointerconstraints function in the keys[] -array of config.h. The function does not take any argument. Pointer -constraints default to enabled, and can be toggled on and off with the -function from there.

-

Example:

-
{ MODKEY, XKB_KEY_c, togglepointerconstraints, {0}},
-

Download

- -

Authors

- -
-

togglekblayout

-

Description

-
-

This patch is no longer being maintained by me wochap, since I'm now using a -different patch specific to my use case: https://codeberg.org/wochap/dwl/src/branch/v0.6-b/xkb-rules-switcher/xkb-rules-switcher.patch

-
-

Switch between multiple keyboard layouts at runtime.

-

Download

- -

Authors

- -
-

togglekblayoutandoptions

-

Description

-

Switch between multiple keyboard layouts, variants, and options at -runtime.

-

Download

- -

Authors

- -
-

unclutter

-

Description

-

Hide the mouse cursor if it isn't being used for a certain period of -time.

-

Download

- -

Authors

- -
-

ungroup-keyboards

-

Description

-

Ungroup keyboard input devices based on device name.

-

I wrote this patch was because keyboard device grouping breaks the -behaviour of the ydotool virtual device. This patch fixes my issue #558 -in the codeberg issue tracker.

-

See the inputdevicerules patch for a more generalised version of this -idea.

-

Download

- -

Authors

- -
-

vanitygaps

-

Description

-

Adds (inner) gaps between client windows and (outer) gaps between -windows and the screen edge in a flexible manner.

-

Download

- -

Authors

- -
-

varcol

-

Description

-

A variable column layout.

-

This layout behaves much the same as the tile layout, -but adds key bindings that can be used to:

-
    -
  • Increase/decrease the number of non-master columns
  • -
  • Increase/decrease the colfact to adjust the column spacing
  • -
  • Push a client in or out of a special left column
  • -
  • Toggle displaying the special left column
  • -
-

Download

- -

Authors

- -
-

viewnextocctag

-

Description

-

View the next or previous tag, skipping any tags that do not have any -clients.

-

Download

- -

Authors

- -
-

virtual-pointer

-

Description

-

implement wlr_virtual_pointer_v1 for things like wayvnc server to -work

-

NOTE: no longer neccessary if you are using a DWL -version after https://codeberg.org/dwl/dwl/commit/ac6074f4fdb8cc263c877f08e16a5805d3bb22d2

-

Download

- -

Authors

- -
-

warpcursor

-

Description

-

Warp cursor to the centre of newly focused clients.

-

Only moves the cursor if the cursor is currently not on the new -client.

-

This is my version of the orphaned cursorwarp patch except I left out -the config flag as I think it is unnecessary.

-

Download

- -

Authors

- -
-

winview

-

Description

-

Implements the function winview which switches the -visible tags to the tags on which the current client is visible.

-

This patch is inspired from https://dwm.suckless.org/patches/winview/. -Citing the description of the dwm patch:

-
-

Dwm tags are a powerfull feature that allows organizing windows in -workspaces. Sometime it can be difficult to remember the tag to activate -to unhide a window. With the winview patch the window to unhide can be -selected from the all-window view. The user switches to the all-window -view (Mod1-0), selects the window (Mod1-j/k or using the mouse) and -press Mod1-o. The key Mod1-o switches the view to the selected window -tag.

-

Recommend patches

-

The grid layout is well adapted to display many windows in a limited -space. Using both grid and pertag patches you will be able to select -this layout for the all-window view while keeping your preferred layout -for the other views. Configuration and Installation Using the default -configuration file

-
Make sure the directory where you build dwm does not contain a config.h file;
-Apply the patch;
-Run make and make install.
-

Using an existing customised configuration file

-

Apply the patch; Add the following element in the keys array:

-

{ MODKEY, XK_o, winview, {0} },

-

Run make and make install.

-

An example of how to insert this line can be found in the default -config file template, config.def.h.

-
-

Download

- -

Authors

- -
-

xwayland-handle-minimize

-

Description

-

Some windows (wine) games go black screen after losing focus and -never recover https://github.com/swaywm/sway/issues/4324. -This patch fixes this by handling minimize requests that some xwayland -clients do.

-

Download

- -

Authors

- -
-

zoomswap

-

Description

-

This patch swaps the current window (C) with the previous master (P) -when zooming.

-
Original behaviour :
-+-----------------+-------+
-|                 |       |
-|                 |       |
-|                 |       |
-|        P        +-------|
-|                 |       |
-|                 |   C   |
-|                 |       |
-+-----------------+-------+
-
-+-----------------+-------+
-|                 |       |
-|                 |   P   |
-|                 |       |
-|        C        +-------|
-|                 |       |
-|                 |       |
-|                 |       |
-+-----------------+-------+
-
-New Behaviour :
-+-----------------+-------+
-|                 |       |
-|                 |       |
-|                 |       |
-|        C        +-------+
-|                 |       |
-|                 |   P   |
-|                 |       |
-+-----------------+-------+
-
-+-----------------+-------+
-|                 |       |
-|                 |       |
-|                 |       |
-|        P        +-------+
-|                 |       |
-|                 |   C   |
-|                 |       |
-+-----------------+-------+
-

Download

- -

Authors

- -
-

STALE PATCHES

-

DRMLeaseManager

-

Description

-

This implements the DRM lease protocol, which is needed to use -devices such as VR headsets.

-

Download

- -

Authors

- -
-

XF86keysym

-

Description

-

Utilizing the /usr/include/X11/XF86keysym.h -header file to change the volume via the appropriate keys.

-

Download

- -

Authors

- -
-

alphafocus

-

Description

-

Adds configurable transparency for focused and unfocused windows.

-

Download

- -

Authors

- -
-

attachabove

-

Description

-

Newly created windows are placed above the currently selected window -in the stack.

-

Download

- -

Authors

- -
-

attachtop

-

Description

-

This is a port of attachtop patch for dwm: https://dwm.suckless.org/patches/attachtop

-

New client attaches below the last master/on top of the stack.

-

Behavior feels very intuitive as it doesn't disrupt existing masters -no matter the amount of them, it only pushes the clients in stack -down.

-

Download

- -

Authors

- -
-

autorotation

-

Description

-

Adds keybindings for screen rotation and auto rotation from an -accelerometer.

-

Setup

-

Find an accelerometer device in sysfs -(cat /sys/bus/iio/devices/iio*/name, or using a script: monitor-iio.sh)
-Find the raw output file of the accelerometer (e.g. -cat /sys/bus/iio/devices/iio:device0/in_accel_x_raw should -output an integer).
-Add the raw output file names to the dwl configuration -accel_*.

-

Add a udev rule to uniquely identify the device, for example:

-
sudo echo 'SUBSYSTEM=="iio", KERNEL=="iio*", ATTR{name}=="accel_3d", GROUP="input", SYMLINK+="input/accel"' >> /etc/udev/rules.d/99-accel.rules
-sudo udevadm control --reload-rules && sudo udevadm trigger
-

(the device is probably already in /dev/ e.g. -/dev/iio:device0 but on my computer the number changes -after a reboot)

-

A symlink to the device should now be available in -/dev/input/ and accessible to input group members.
-Add the device path to the dwl configuration -accel_path.

-

Config

-
    -
  • rotation_enabled: If the auto rotation is enabled on -startup.
  • -
  • rotation_delay: How often to check the accelerometer -values in milliseconds.
  • -
  • rotation_flat: Threshold on the normalized Z axis to -consider the device flat and stop the auto rotation.
  • -
  • rotation_thresh: Rotation threshold after which the -screen flips (values less than 0.5 will cause a back and forth).
  • -
-
    -
  • accel_path: The path to the accelerometer device file -(e.g. "/dev/input/accel").
  • -
  • accel_x: The name of the sysfs file for the -accelerometer x axis.
  • -
  • accel_y: The name of the sysfs file for the -accelerometer y axis.
  • -
  • accel_z: The name of the sysfs file for the -accelerometer z axis.
  • -
-

Default keybindings:

-
    -
  • <Modkey> + <Shift> + -<Arrows>: Change the screen rotation manually -(doesn't disable the auto rotation).
  • -
  • <Modkey> + <Shift> + -<R>: Enable/disable the auto rotation.
  • -
-

Download

- -

Authors

- -
-

center

-

Description

-

Adds a rule to automatically center clients on the current -monitor.

-

Download

- -

Authors

- -
-

clipboardManager

-

Description

-

Store your clipboard history using clipman clipboard -manager without your KeePassXC passwords leaking into clipman.

-

Ensure these dependencies are installed (instructions for debian, -other distros are left as an exercise...):

-
apt install clipman libmodern-perl-perl moreutils wl-clipboard
-

Change your command to launch dwl to something like the -following:

-
dwl -s 'pee somebar dwl-getwindowtitle'
-

Ensure the following command is running in the background of your -dwl session. Put it whereever your auto-started stuff -is.

-
exec wl-paste -t text --watch dwl-clipman
-

This solution is based on the following reddit post, modified to -support dwl. https://www.reddit.com/r/swaywm/comments/ljl0dh/keeping_secrets_secret_with_keepassxc_clipman_and/

-

Feel free to use this code however you want, but I can't guarantee it -will work for what you are trying to do. Licenced under the same license -as dwl, "WITHOUT WARRANTY OF ANY KIND".

-

Download

- -

Authors

- -
-

clipboardipc

-

Description

-

Adds clipboard functionality. Requires the ipc patch for dwl and -wl-clipboard to be installed. By default, requires clipman for the clipboard -and dwl-state for -getting the appid of the focused application, but you can change these -in the script if you have alternatives. You may change which -applications to not record by modifying the excludes array -in dwl-cliboard-watcher. Make sure -wl-paste -t text -w dwl-clipboard-watcher is running after -dwl.

-

Downloads

- -

Authors

- -
-

cyclelayouts

-

Description

-

Adds function to cycle through available layouts.

-

Download

- -

Authors

- -
-

fibonacci

-

Description

-

Arranges windows in a Fibonacci spiral or dwindle.

-

Scheme

-
+-----------+-----------+  +-----------+-----------+
-|           |           |  |           |           |
-|           |     2     |  |           |     2     |
-|           |           |  |           |           |
-|     1     +--+--+-----+  |     1     +-----+-----+
-|           | 5|-.|     |  |           |     |  4  |
-|           +--+--+  3  |  |           |  3  +--+--+
-|           |  4  |     |  |           |     | 5|-.|
-+-----------+-----+-----+  +-----------+-----+-----+
-     spiral                     dwindle
-

Download

- -

Authors

- -
-

focusMonPointer

-

Description

-

Implements focusmon() function that moves the cursor to -the focused monitor.

-

Download

- -

Authors

- -
-

focusdir

-

Description

-

Focus the window left, right, above or below the current focused -window

-

Download

- -

Authors

- -
-

focusmaster

-

Description

-

Focus the master regardless of the current focus.

-

Download

- -

Authors

- -
-

genericgaps

-

Description

-

This patch is a modified version of vanitygaps -that adds gaps around clients regardless of a layout. It means you can -apply any layout patch and the gaps will be shown properly as long as -the layout does not add any gaps on its own.

-

This works by allowing a layout to place clients normally without -gaps, and then correcting positions and dimensions of clients afterwards -to add gaps around them. To make it work, I had to modify -resize() function, and, as a side effect, this change fixed -some flickering I experienced when using snail layout.

-

Changelog

-

2023-11-24:

-
    -
  • Refactor, it does exactly the same, just using less code.
  • -
  • Replace gappih, gappiv, -gappoh and gappov with only -gappx. They don't do anything anyways.
  • -
-

Download

- -

Authors

- -
-

gridmode

-

Description

-

Arranges windows in a grid of equal sizes.

-

Download

- -

Authors

- -
-

hidecursor

-

Description

-

Hide the cursor when typing

-

Download

- -

Authors

- -
-

kbrules

-

Description

-

Allow for keyboard rules to be used; This allows for -keyboard-specific options or layouts.

-

The keyboard's names can be retrieved from -libinput list-devices | grep Device, example:

-
static const KeyboardRule kbrules[] = {
-    { "AT Translated Set 2 keyboard", { .options = "altwin:swap_alt_win,caps:swapescape" } },
-};
-

Download

- -

Authors

- -
-

keychord

-

Description

-

This patch implements sequences for chained keybindings (like the dwm -keychord -patch).

-

Notes:

-
    -
  • The maximum number of sequences is set to 5 in the -Keychord struct for a given keybinding
  • -
  • This original motivation was better support for stumpwm style of keybindings, -however this is not a limitation
  • -
-

Example

-

The default values for MODKEY and PREFIXKEY -can be changed in config.def.h and/or -config.h.

-

emacs-like

-

In the example below, the firefox command is bound to -the key sequence alt-s alt-u f.

-
static const Keychord keychords[] = {
-  /* Note that Shift changes certain key codes: c -> C, 2 -> at, etc. */
-  /* count key_sequences                          function  argument */
-  { 3, {{MODKEY, XKB_KEY_s}, {MODKEY, XKB_KEY_u}, {MOD_NONE, XKB_KEY_f}}, spawn, SHCMD("firefox") },
-};
-

vim-like

-

In the example below, the firefox command is bound to -the key sequence alt-s u f.

-
static const Keychord keychords[] = {
-  /* Note that Shift changes certain key codes: c -> C, 2 -> at, etc. */
-  /* count key_sequences                          function  argument */
-  { 3, {{MODKEY, XKB_KEY_s}, {MOD_NONE, XKB_KEY_u}, {MOD_NONE, XKB_KEY_f}}, spawn,SHCMD("firefox") },
-};
-

Download

- -

Authors

- -
-

keymap

-

Description

-

Print current keyboard layout to stdout

-

Download

- -

Authors

- -
-

mouse-follows-focus

-

Description

-

This patch adds the option to let the cursor jump to the center of -new clients, as well as move the cursor to the center of clients that -gains focus.

-

Download

- -

Authors

- -
-

move-stack-top

-

Description

-

Extend the movestack patch -to let you also focus, or move, a client to the top or bottom of the -stack.

-

Download

- -

Authors

- -
-

nomousefocus

-

Description

-

Prevent focus on mouseover.

-

Download

- -

Authors

- -
-

onlyquitonempty

-

Description

-

Only exit when no windows are open

-

Download

- -

Authors

- -
-

privilegeDrop

-

Description

-

Adds the -u option that allows users to pass a desired uid to drop to -after becoming DRM master.

-

Download

- -

Authors

- -
-

relativemouseresize

-

Description

-

When resizing windows, the mouse will no longer jump to the bottom -right corner and only resize from that corner. Instead, the mouse will -resize the window in the quadrant that the resize starts at. This is the -same resize behavior as Sway and is similar to the resizehere dwm -patch.

-

Download

- -

Authors

- -
-

restartdwl

-

Description

-

This patch allows you to restart dwl with a keybinding.
-NOTE: that all of your applications are gonna get -killed on dwl restart.

-

The function creates a file at /tmp/restart_dwl and -exits dwl.
-You have to modify your dwl launch script in order for this patch to -work.
-Example dwl launch script:

-
do=true
-while $do ||  [ -f /tmp/restart_dwl ]; do
-    do=false
-    rm -rf /tmp/restart_dwl > /dev/null 2>&1
-    dwl
-done
-

It's a do-while that checks if /tmp/restart_dwl -exists after the first run of dwl.
-If this file exists delete it and start dwl again.

-

Download

- -

Authors

- -
-

restoretiling

-

Description

-

All floating windows become tiling when switching to a different -layout.

-

Download

- -

Authors

- -
-

stickyrule

-

Description

-

Add a rule to clients to spawn them sticky on -start up. I personally use it to make dragon show up on all tags.

-

Download

-

Apply on top of sticky patch.

- -

Authors

- -
-

swaycompat

-

Description

-

Implements just enough of the sway-ipc protocol to -facilitate status bars. Tested with waybar and -rootbar.

-

Download

- -

Authors

- -
-

touchscreen

-

Description

-

Adds SIMPLE touchscreen functionality.
Currently emulates mouse -movement and button presses.

-

Download

- -

Authors

- -
-

vertile

-

Description

-

A tiled layout optimized for wide vertical monitors.

-

Scheme

-
|---------------------------|
-|                           |
-|                           |
-|             M             |
-|                           |
-|                           |
-|---------------------------|
-|            t1             |
-|---------------------------|
-|            t2             |
-|---------------------------|
-|            t3             |
-|---------------------------|
-

Download

- -

Authors

- -
-

xcursor

-

Description

-

Set cursor theme and size via XCURSOR_THEME and -XCURSOR_SIZE environmental variables.

-

Download

- -

Authors

- -
- -