dwl-patches
- A general dwl wiki is available at the main dwl repository.
- This repository is exclusively for dwl PATCHES.
Note: All patches are user-submitted content. The authors of dwl do not continually monitor them. You are responsible for downloading and reviewing 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.
Contributing Patches to dwl-patches
Since dwl follows suckless 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 of the suckless website.
Patches should normally target the latest dwl release.
If you target an older release, specify that in the Download
link on your README.md
page.
If you target the unstable main
branch, specify that in the Download
link on your README.md
page.
-
Starting from a local clone of dwl (not dwl-patches)
-
If you do not have it already, add the remote for the main dwl repository in your local copy and fetch it:
git remote add --fetch upstream https://codeberg.org/dwl/dwl
-
Use git to create a branch for your new patch and hack away creating your patched version of dwl.
-
In your local clone of dwl, create a .patch file
git format-patch upstream/main...<branch-name> --stdout > PATCHNAME.patch
-
Now fork dwl-patches (not dwl) in Codeberg and clone it locally
-
Configure your
dwl-patches
local clonegit config --local pull.rebase true
-
In your local
dwl-patches
clone, add a directory calledpatches/PATCHNAME
. Place thePATCHNAME.patch
you created in step (2) into thepatches/PATCHNAME
directory. -
Add a
README.md
page to thePATCHNAME
directory using this template (add/remove sections as you like):### Description Insert a short summary of changes that your patch implements. ### Download - [git branch](/USERNAME/dwl/src/branch/PATCHNAME) ^^^^^^^^^^ OPTIONAL: Patchers are no longer obligated to maintain public `dwl` branches devoted to their patches - [0.7](/dwl/dwl-patches/raw/branch/main/patches/PATCHNAME/PATCHNAME.patch) Use the ^RAW^ patch link here ^^^ "0.7" is an example. Use the release that your patch targets - [main YYYY-MM-DD](/dwl/dwl-patches/raw/branch/main/patches/PATCHNAME/PATCHNAME.patch) ^^^^^^^^^^ Patches targeting the unstable "main" branch include a YYYY-MM-DD indicator ### Authors - latest at top [Codeberg nick is mandatory; other contact methods optional] - [YOUR_NICK](https://codeberg.org/USERNAME) your_email@if_you_wish_to.share.it your_irc_nick at [Libera IRC dwl channel](https://web.libera.chat/?channels=#dwl) your_discord_handle at [dwl Discord](https://discord.gg/jJxZnrGPWN)
You may choose to include screenshots (hosted in your patch's subdirectory) in your
README.md
. The process is described here. -
Use the Codeberg web interface to send a pull request to dwl-patches (NOT to dwl)
-
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.
Individuals who have made known that they no longer intend to maintain their patches will have commit access to the [dwl-pathces] repository removed.
A returning user who formerly had commit access is welcome to open an issue on dwl-patches requesting commit access be reinstated. When doing so, please link to the original issue opened that granted commit access.
Updating/Modifying/Adopting Existing Patches
- If the existing patch is already being maintained by another author, do not make modifications to it.
- Create an issue at issues @mentioning the current maintainer.
- If you receive no reply for seven days, you may assume the patch abandoned and you may adopt the patch.
- 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.
Deprecating Existing Patches
- Patches will not be removed from this archive but may instead be deprecated if the author(s)/maintainer(s) of a patch so desire.
- Please do not open issues or contact maintainers to request deprecation of a patch.
- Deprecation of a patch will only occur if all authors or current maintainers of the patch agree to the decision to deprecate.
- In such a circumstance the author(s)/maintainer(s):
- Will create a commit moving the patch to the
stale-patches
directory - May explain in the associated
README.md
any relevant details of the decision to deprecate the patch.
- Will create a commit moving the patch to the
- This process allows current or future users of the patch the option to adopt, modify, or integrate stale/historical code or portions thereof.
stale-patches
Deprecated or unmaintained patches are held in the stale-patches directory.
Currently, this directory also contains .md
description files from ancient patches predating the move to Codeberg.
If you have the inclination to revive one of these, please follow the same procedures outlined below for contributing new patches.
In your initial pull request (or in the commit that revives the stale patch if you already have write access), remove the corresponding .md
file or the patch directory from stale-patches.