Dwm: Difference between revisions

From NixOS Wiki
imported>Hypnosis2839
m clean up formatting
imported>Hypnosis2839
add info about custom source trees
Line 10: Line 10:
</syntaxhighlight>
</syntaxhighlight>


== Creating override ==
== Creating an override ==
=== Patching dwm ===


To patch dwm, override <code>services.xserver.windowManager.dwm.package</code> as below:
To patch dwm, override <code>services.xserver.windowManager.dwm.package</code> as below:
Line 30: Line 31:
};
};
</syntaxhighlight>
</syntaxhighlight>
=== Using custom sources ===
If you have a locally stored source tree for dwm with changes already applied, you can use that instead:
<syntaxhighlight lang="nix">
services.xserver.windowManager.dwm.package = pkgs.dwm.overrideAttrs {
  src = ./path/to/dwm/source/tree;
};
</syntaxhighlight>
Alternatively, you can set <code>src</code> to [https://nixos.org/manual/nixpkgs/stable/#chap-pkgs-fetchers the output of a fetcher], if you have the source tree stored online.


== See also ==
== See also ==

Revision as of 02:02, 18 August 2023

dwm is a window manager made by the suckless team.

Installation

Enable dwm in your system configuration:

services.xserver.windowManager.dwm.enable = true;

Creating an override

Patching dwm

To patch dwm, override services.xserver.windowManager.dwm.package as below:

services.xserver.windowManager.dwm.package = pkgs.dwm.override {
  patches = [
    # for local patch files, replace with relative path to patch file
    ./path/to/local.patch
    # for external patches
    (pkgs.fetchpatch {
      # replace with actual URL
      url = "https://dwm.suckless.org/patches/path/to/patch.diff";
      # replace hash with the value from `nix-prefetch-url "https://dwm.suckless.org/patches/path/to/patch.diff" | xargs nix hash to-sri --type sha256`
      # or just leave it blank, rebuild, and use the hash value from the error
      hash = "";
    })
  ];
};

Using custom sources

If you have a locally stored source tree for dwm with changes already applied, you can use that instead:

services.xserver.windowManager.dwm.package = pkgs.dwm.overrideAttrs {
  src = ./path/to/dwm/source/tree;
};

Alternatively, you can set src to the output of a fetcher, if you have the source tree stored online.

See also