Return to repo list


Gentoo-friendly patches for Suckless's dwm.
Return to

README (4737B)

      1 suckless-gf-dwm - Gentoo-Friendly Patches for Suckless's dwm
      3 == What Is This? ==
      5     This repository contains a host of patches that can be applied to dwm, the dynamic window manager from These
      6 patches have been modified to work with Gentoo's dwm package, and are specifically compatible with the 'savedconfig' USE flag. Each
      7 patch in this repository has its own directory. Each of these directories contains the actual patch file itself (ending in '.patch',
      8 for Portage compatibility reasons), and a file called USAGE that informs the user of any manual changes that should or might be
      9 applied in order to use the patch. Be sure to read USAGE carefully before applying the patch, and follow the instructions therein!
     11     This project exists because of a problem with the default way that Suckless programs work in a Gentoo environment. Gentoo's
     12 package manager, Portage, offers a built-in utility for patching programs, and this utility works nicely with the patches for dwm
     13 that can be found on Additionally, since Portage is a source-based package manager, it also offers a utility for 
     14 editing config.h files in Suckless programs by using the 'savedconfig' USE flag. This USE flag, when enabled, will create a directory 
     15 in /etc/portage/savedconfig that contains a header file (this file is located in /etc/portage/savedconfig/x11-wm/ in dwm's case).
     16 This header file can be edited just like the one that you would edit if you were working with a git repository or other copy of the
     17 dwm code directly. Edits made to this file are applied as a diff to config.def.h at emerge time, thus providing a very simple and
     18 convenient way of incorporating Suckless's recommended modification methodology in a Portage-friendly fashion. There is a problem
     19 with this, however; because of the way that Portage patches programs as part of ebuilds, most of the time any patches that make
     20 changes to config.def.h themselves will be totally incompatible with a custom savedconfig header file, and emerge will fail if you
     21 try to apply such a patch while 'savedconfig' is enabled. The solution to this dilemma is to modify the patches in such a way as to
     22 make them never make any changes to config.def.h, and thus make them compatible with 'savedconfig' and friendly to Gentoo. Any
     23 changes that the patch originally tried to make to config.def.h could either be applied manually to the savedconfig header file by
     24 the user, or potentially included in another file as part of the patching process, depending on what the changes do.
     26     A side-goal of this repository is to make each target patch (see below) support the current stable version of x11-wm/dwm as
     27 offered by Gentoo tree (currently dwm version 6.2). Many of the patches suckless-gf-dwm targets are not themselves considered to be
     28 compatible with this modern version of dwm, but the project intends to fix any compatibilty issues that the target patches have with 
     29 the unmodified current dwm codebase and thus make them work. This could potentially result in substantial changes coming to individual 
     30 patches, or perhaps the total rewrite of patches altogether. Compatibility changes will be noted in individual patches' USAGE files.
     32     These patches are ALL compatible with Portage and savedconfig. Effort has also been taken to ensure the patches are themselves
     33 cross-compatible; that is, that they do not conflict with each other. Despite this effort, lack of conflict between patches is not 
     34 guaranteed at this time. If any specific patches are known to be incompatible with each other, the conflict will be noted inside the 
     35 patches' USAGE files. Normally, this should serve to document most incompatiblities, but in the case of the user applying a great many 
     36 patches all at once, it is possible that novel conflicts may occur. Be aware of this should you try to emerge with a huge number of 
     37 patches!
     39 == Target Patches ==
     41     suckless-gf-dwm targets the patches located at the following locations:
     43         (1).
     45     CURRENT PROGRESS: 18/172 patches supported
     46                       1/172 patches unsupported
     49         (1). alpha -
     50              |-Makes changes to that haven't been successfully ported yet
     54 == License ==
     56     suckless-gf-dwm is released under the MIT/X Consortium License, the same license that dwm itself is under:
     57     (
     59     See the LICENSE file for details.
     61 == Maintainer ==
     63     suckless-gf-dwm is maintained by Erik Letson <>. Please direct any questions or patches to that email.