dwl-patches overhaul

Eliminated wiki.
Individual patches have a README.md explanation in their own subdirectory.
Simplified submission of new patches and maintenance of existing patches.
Instructions page (README.md autodisplayed) is now at https://codeberg.org/dwl/dwl-patches/
This commit is contained in:
A Frederick Christensen 2024-04-24 20:20:07 -05:00
parent d6b051f5b8
commit 9c5d5d85f3
No known key found for this signature in database
GPG Key ID: 6183FA655784FC36
183 changed files with 1434 additions and 4 deletions

View File

@ -1,5 +1,65 @@
## Welcome to [dwl-patches](https://codeberg.org/dwl/dwl-patches)!
The dwl project is available at [https://codeberg.org/dwl/dwl](https://codeberg.org/dwl/dwl).
This repository and the associated wiki is exclusively for dwl PATCHES.
# dwl-patches
* A general [dwl wiki](https://codeberg.org/dwl/dwl/wiki) is available at the main [dwl](https://codeberg.org/dwl/dwl) page.
* This repository is exclusively for dwl PATCHES.
Please see the dwl-patches [wiki](https://codeberg.org/dwl/dwl-patches/wiki) for patch descriptions and for [instructions](https://codeberg.org/dwl/dwl-patches/wiki/instructions) on contributing/updating/reporting issues.
## STALE Patches
Many patches previously in regular use do not cleanly apply to the current code base. Following the migration to Codeberg, these stale patch descriptions and details are being stored for the time being at [_STALE_PATCHES].
If you are an original author of one of these or you have the inclination to revive one of these, please follow the procedure outlined in [Instructions] for contributing new patches.
Additionally, when you have write access to this repository, remove the `.md` file from [_STALE_PATCHES] for the patch which you have revived.
## Patching
Since dwl follows [suckless](https://suckless.org/) philosophy it doesn't provide every feature under the sun. To broaden dwl's functionality, one needs to get familiar with the concept of patching. To get your feet wet, consult [the hacking page](https://suckless.org/hacking/) of the suckless website.
Since dwl is still taking shape, patches may need to be updated after larger changes to the code. Feel free to [contribute](instructions) updated versions!
*Note: These external patches are user-submitted content, and the authors of dwl cannot monitor them. Please download and review a patch before using it!*
## Reporting Issues
- Issues with existing patches can be generated here in the dwl-patches [issues]. Please be sure to "@" reference the patch author in your issue.
## Creating Patches
1. Create a [Codeberg] account and fork the [dwl] repository.
2. Create a branch in your Codeberg `dwl` repository for the patch you are generating and maintaining.
## Contributing Patches to `dwl-patches`
1. If you do not have it already, add the remote for the main dwl repository in your local copy:
`git remote add upstream https://codeberg.org/dwl/dwl`
2. In your local repository of dwl, create a .patch file
`git format-patch upstream/main...<branch-name> --stdout > PATCHNAME.patch`
3. Fork [https://codeberg.org/dwl/dwl-patches][dwl-patches]
4. Configure your repository
`git config --local pull.rebase true`
5. In your local copy, add a directory called `patches/PATCHNAME`. Place the `PATCHNAME.patch` you created in step three into the `patches/PATCHNAME` directory.
6. Use the Codeberg web interface to send a pull request to [dwl-patches] (NOT to [dwl]) (Codeberg nicely will generate a URL for you)
7. Add a `README.md` page to the `PATCHNAME` directory using this template (add/remove sections as you like):
```markdown
### Description
Insert a short summary of changes that your patch implements.
### Download
- [git branch](https://codeberg.org/USERNAME/dwl/src/branch/PATCHNAME)
- [yyyy-mm-dd](https://codeberg.org/dwl/dwl-patches/raw/branch/main/patches/PATCHNAME/PATCHNAME.patch)
USE THE ^raw^ PATCH LINK HERE
### Authors
- [YOUR_NICK](https://codeberg.org/USERNAME)
```
You may choose to include screenshots (hosted in your patch's subdirectory) in your `README.md`. The process is described [here](https://docs.codeberg.org/markdown/using-images/).
8. WHEN YOUR PULL REQUEST IS APPROVED, your Codeberg account will also be granted commit access to [dwl-patches]. Once you have write access, you can make direct modifications/upates to your patches instead of pull requests.
## Updating/Modifying Existing Patches
- If the existing patch is already being maintained by another author, do not make modifications to it without permission.
- Create an issue at [issues] @mentioning the current maintainer
- If you receive no reply for seven days, you may adopt the patch. If you are adopting the patch, you need to maintain a `dwl` branch in your Codeberg repository.
- Modify the `README.md` with new links for your raw patch and for your git branch. **LEAVE PREVIOUS AUTHOR(S)' NICKS/LINKS INTACT UNDER THE "Authors" HEADING!** Add your own nick/link to the top of the "Authors" list.
[dwl-patches]: https://codeberg.org/dwl/dwl-patches
[Codeberg]: https://codeberg.org
[dwl]: https://codeberg.org/dwl/dwl
[dwl-patches]: https://codeberg.org/dwl/dwl-patches
[issues]: https://codeberg.org/dwl/dwl-patches/issues
[_STALE_PATCHES]:https://codeberg.org/dwl/dwl-patches/src/branch/main/_STALE_PATCHES

View File

@ -0,0 +1,9 @@
### Description
Automatically center floating windows.
### Download
- [git branch](https://codeberg.org/guidocella/dwl/src/branch/alwayscenter)
- [2024-02-06](https://codeberg.org/dwl/dwl-patches/raw/branch/main/patches/alwayscenter/alwayscenter.patch)
### Authors
- [Guido Cella](https://codeberg.org/guidocella)

View File

@ -0,0 +1,13 @@
### 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)

View File

@ -0,0 +1,13 @@
### 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-03-31](https://codeberg.org/dwl/dwl-patches/raw/branch/main/patches/autostart/autostart.patch)
### Authors
- [sevz](https://codeberg.org/sevz)
- [Rayan Nakib](https://nakibrayan2.pages.dev/)
- [NFVblog](https://github.com/nf02)

31
patches/bar/README.md Normal file
View File

@ -0,0 +1,31 @@
### 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
- [git branch](https://codeberg.org/sewn/dwl/src/branch/bar)
- [2024-04-25](https://codeberg.org/dwl/dwl-patches/raw/branch/main/patches/bar/bar.patch)
Below is a preview of the barpadding and barborder patches applied.
![bar, barpadding and border patch preview](bar-with-barpadding-and-border.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)

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

View File

@ -0,0 +1,10 @@
### Description
Add a border around the [bar](https://codeberg.org/dwl/dwl-patches/wiki/bar) similar to how a client is given a border.
### Download
- [2024-04-14](https://codeberg.org/dwl/dwl-patches/raw/branch/main/patches/barborder/barborder.patch) (bar 2024-04-14)
### Authors
- [sewn](https://codeberg.org/sewn)

View File

@ -0,0 +1,10 @@
### Description
Adds the ability to change the [bar's](https://codeberg.org/dwl/dwl-patches/wiki/bar) height.
### Download
- [2024-04-5](https://codeberg.org/dwl/dwl-patches/raw/branch/main/patches/barheight/barheight.patch)
- [git branch](https://codeberg.org/Oak/dwl/src/branch/barheight)
### Authors
- [Oak](https://codeberg.org/oak)

View File

@ -0,0 +1,10 @@
### Description
Add vertical and horizontal space between the [bar](https://codeberg.org/dwl/dwl-patches/wiki/bar) and the edge of the screen.
### Download
- [2024-04-14](https://codeberg.org/dwl/dwl-patches/raw/branch/main/patches/barpadding/barpadding.patch) (bar 2024-04-14)
### Authors
- [sewn](https://codeberg.org/sewn)

36
patches/borders/README.md Normal file
View File

@ -0,0 +1,36 @@
### Description
Adds 2 more borders to each side (top, bottom, left, right) of every window.
<details>
<summary>Preview</summary>
<pre>
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`:
<img src="https://i.imgur.com/msead2K.png"/>
and `border_color_type` set to `BrdStart`:
<img src="https://i.imgur.com/ssgPG36.png"/>
and `border_color_type` set to `BrdEnd`:
<img src="https://i.imgur.com/i2Xtjy6.png"/>
and `border_color_type` set to `BrdStartEnd`:
<img src="https://i.imgur.com/fnkitdR.png"/>
</pre>
</details>
### Download
- [git branch](https://codeberg.org/wochap/dwl/src/branch/v0.5/borders)
- [v0.5](https://codeberg.org/dwl/dwl-patches/raw/branch/main/patches/borders/borders.patch)
### Authors
- [wochap](https://codeberg.org/wochap)

View File

@ -0,0 +1,26 @@
### 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.5/bottomstack)
- [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)

View File

@ -0,0 +1,10 @@
### 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)

View File

@ -0,0 +1,13 @@
### 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)

View File

@ -0,0 +1,33 @@
### 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
- [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)

21
patches/cfact/README.md Normal file
View File

@ -0,0 +1,21 @@
### 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)
- [2024-02-15](https://codeberg.org/dwl/dwl-patches/raw/branch/main/patches/cfact/cfact.patch)
### Authors
- [Palanix](https://codeberg.org/Palanix)

View File

@ -0,0 +1,12 @@
### 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-01-17](https://codeberg.org/dwl/dwl-patches/raw/branch/main/patches/chainkeys/chainkeys.patch)
### Authors
- [Ben Collerson](https://codeberg.org/bencc)

View File

@ -0,0 +1,18 @@
### 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-03-31](https://codeberg.org/dwl/dwl-patches/raw/branch/main/patches/client-opacity/client-opacity.patch)
### Authors
- [sevz](https://codeberg.org/sevz)

9
patches/column/README.md Normal file
View File

@ -0,0 +1,9 @@
### 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)

View File

@ -0,0 +1,9 @@
### 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)
- [2023-11-30](https://codeberg.org/dwl/dwl-patches/raw/branch/main/patches/coredump/coredump.patch)
### Authors
- [sevz](https://codeberg.org/sevz)

View File

@ -0,0 +1,11 @@
### Description
Adds ability to change cursor's theme and size.
### Download
- [git branch](https://codeberg.org/wochap/dwl/src/branch/v0.5/cursortheme)
- [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)

View File

@ -0,0 +1,23 @@
### 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.
<details>
<summary>Explanation of center_relative_to_monitor:</summary>
<pre>
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.
<img src="https://i.imgur.com/xhejzPh.png"/>
</pre>
</details>
### Download
- [git branch](https://codeberg.org/wochap/dwl/src/branch/v0.5/customfloat)
- [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)

View File

@ -0,0 +1,18 @@
### 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)

View File

@ -0,0 +1,11 @@
### 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
- [2024-04-16](https://codeberg.org/dwl/dwl-patches/raw/branch/main/patches/dim-unfocused/dim-unfocused.patch)
- [git branch](https://codeberg.org/dhruva_sambrani/dwl/src/branch/dim-unfocused)
### Authors
- [Dhruva Sambrani](https://codeberg.org/dhruva_sambrani)

View File

@ -0,0 +1,9 @@
### Description
Change mfact by dragging the mouse.
### Download
- [git branch](https://codeberg.org/Palanix/dwl/src/branch/dragmfact)
- [2024-02-16](https://codeberg.org/dwl/dwl-patches/raw/branch/main/patches/dragmfact/dragmfact.patch)
### Authors
- [Palanix](https://codeberg.org/Palanix)

View File

@ -0,0 +1,11 @@
### 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) (<dima@dimakrasner.com>)

8
patches/env/README.md vendored Normal file
View File

@ -0,0 +1,8 @@
### 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/env/env.patch)
### Authors
- [Dima Krasner](https://codeberg.org/dimkr) (<dima@dimakrasner.com>)

View File

@ -0,0 +1,8 @@
### 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)

View File

@ -0,0 +1,8 @@
### 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) (<dima@dimakrasner.com>)

View File

@ -0,0 +1,9 @@
### 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)

View File

@ -0,0 +1,9 @@
### 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)

View File

@ -0,0 +1,15 @@
### Description
Arranges windows in a grid. Except it adjusts the number of windows in the first few columns to avoid empty cells.
### Download
- [2024-08-01](https://codeberg.org/dwl/dwl-patches/raw/branch/main/patches/gaplessgrid/gaplessgrid.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)

13
patches/gaps/README.md Normal file
View File

@ -0,0 +1,13 @@
### 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/sewn/dwl/src/branch/gaps)
- [2024-04-01](https://codeberg.org/dwl/dwl-patches/raw/branch/main/patches/gaps/gaps.patch)
### Authors
- [sewn](https://codeberg.org/sewn)
- [Serene Void](https://github.com/serenevoid)
- [Rayan Nakib](https://nakibrayan2.pages.dev)

View File

@ -0,0 +1,20 @@
### 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`
```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-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)

View File

@ -0,0 +1,11 @@
### 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)

View File

@ -0,0 +1,9 @@
### 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)
- [2023-11-25](https://codeberg.org/dwl/dwl-patches/raw/branch/main/patches/hide-behind-fullscreen/hide-behind-fullscreen.patch)
### Authors
- [sevz](https://codeberg.org/sevz)

View File

@ -0,0 +1,9 @@
### 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)
- [2023-11-25](https://codeberg.org/dwl/dwl-patches/raw/branch/main/patches/hide-behind-monocle/hide-behind-monocle.patch)
### Authors
- [sevz](https://codeberg.org/sevz)

View File

@ -0,0 +1,11 @@
### Description
Prevent [bar](https://codeberg.org/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
- [2024-04-14](https://codeberg.org/dwl/dwl-patches/raw/branch/main/patches/hide_vacant_tags/hide_vacant_tags.patch) (bar 2024-04-14)
### Authors
- [sewn](https://codeberg.org/sewn)

View File

@ -0,0 +1,9 @@
### 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)

19
patches/ipc/README.md Normal file
View File

@ -0,0 +1,19 @@
### 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.
### Download
- [git branch](https://codeberg.org/notchoc/dwl/src/branch/ipc)
- [2024-03-13](https://codeberg.org/dwl/dwl-patches/raw/branch/main/patches/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)

View File

@ -0,0 +1,29 @@
### 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-keymap", 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
- [git branch](https://codeberg.org/ForzCross/dwl/src/branch/kblayout.patch)
- [2024-01-21](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)

View File

@ -0,0 +1,18 @@
### 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)
- [2023-11-25](https://codeberg.org/dwl/dwl-patches/raw/branch/main/patches/keycodes/keycodes.patch)
### Config after patching
(run in DWL source directory)
```
export XKB_DEFAULT_VARIANT=yourbestkeyboardlayout
cc -lxkbcommon -o generate-keys generate-keys.c
./generate-keys
sudo make install
```
### Authors
- [sevz](https://codeberg.org/sevz)

View File

@ -0,0 +1,21 @@
### 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

View File

@ -0,0 +1,9 @@
### 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)

View File

@ -0,0 +1,23 @@
### 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)

View File

@ -0,0 +1,9 @@
### Description
Show the master area to the right.
### Download
- [git branch](https://codeberg.org/sevz/dwl/src/branch/master-right)
- [2023-11-25](https://codeberg.org/dwl/dwl-patches/raw/branch/main/patches/master-right/master-right.patch)
### Authors
- [sevz](https://codeberg.org/sevz)

View File

@ -0,0 +1,33 @@
### 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 */
```
<details>
<summary>Preview:</summary>
<pre>
with:
```c
static const unsigned int borderpx = 10; /* border pixel of windows */
```
Before applying the patch
<img src="https://i.imgur.com/VQfXCjp.png"/>
After applying the patch
<img src="https://i.imgur.com/I7s0Xkv.png"/>
</pre>
</details>
### Download
- [git branch](https://codeberg.org/wochap/dwl/src/branch/v0.5/minimalborders)
- [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)

35
patches/modes/README.md Normal file
View File

@ -0,0 +1,35 @@
### 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 <kbd>modkey</kbd> + <kbd>b</kbd>. Then, you can press <kbd>f</kbd> 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)

9
patches/monfig/README.md Normal file
View File

@ -0,0 +1,9 @@
### 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)

View File

@ -0,0 +1,24 @@
### Description
This patch provides a keybinding to center the focused floating window.
Press <kbd>MODKEY</kbd> + <kbd>x</kbd> to center the focused floating window.
It does NOT center windows that are not floating.
The variable `center_relative_to_monitor` allows the user to choose whether to center relative to the monitor or relative to the window area.
<details>
<summary>Explanation of center_relative_to_monitor:</summary>
<pre>
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.
<img src="https://i.imgur.com/xhejzPh.png"/>
</pre>
</details>
### Download
- [git branch](https://codeberg.org/wochap/dwl/src/branch/v0.5/movecenter)
- [v0.5](https://codeberg.org/dwl/dwl-patches/raw/branch/main/patches/movecenter/movecenter.patch)
### Authors
- [wochap](https://codeberg.org/wochap)

View File

@ -0,0 +1,20 @@
### Description
This allows the user to change size and placement of floating windows using only the keyboard, default keybindings:
| Keybinding | Action |
| :--- | :--- |
| <kbd>MODKEY</kbd> + <kbd>Up</kbd> | move 40px up |
| <kbd>MODKEY</kbd> + <kbd>Down</kbd> | move 40px down |
| <kbd>MODKEY</kbd> + <kbd>Left</kbd> | move 40px left |
| <kbd>MODKEY</kbd> + <kbd>Right</kbd> | move 40px right |
| <kbd>MODKEY</kbd> + <kbd>Shift</kbd> + <kbd>Up</kbd> | shrink height 40px |
| <kbd>MODKEY</kbd> + <kbd>Shift</kbd> + <kbd>Down</kbd> | grow height 40px |
| <kbd>MODKEY</kbd> + <kbd>Shift</kbd> + <kbd>Left</kbd> | shrink width 40px |
| <kbd>MODKEY</kbd> + <kbd>Shift</kbd> + <kbd>Right</kbd> | 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)

View File

@ -0,0 +1,13 @@
### 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)

Some files were not shown because too many files have changed in this diff Show More