St
Installing
environment.systemPackages = [ st ];
Official Patches
Can be applied by first downloading them from `st.suckless.org/patches` like so:
curl https://st.suckless.org/patches/rightclickpaste/st-rightclickpaste-0.8.2.diff >rightclicktopaste.diff
And then including them in an attribute override in your systemPackages declaration:
environment.systemPackages = [ (st.overrideAttrs (oldAttrs: rec { patches = [ ./rightclicktopaste.diff ]; })) ];
Unofficial Patches
Hosted on GitHub can be applied in a similar fashion using:
environment.systemPackages = [ (st.overrideAttrs (oldAttrs: rec { patches = [ "${fetchFromGitHub { owner = "foo"; repo = "bar"; rev = "0.0.1"; sha256 = "111111111111111111111111111111111111111111111111111"; }}/some-custom-patch.diff" ]; })) ];
Patch Dependencies
Can be included with the `buildInputs` line like in the following ligature patch example:
curl https://st.suckless.org/patches/ligatures/0.8.3/st-ligatures-20200430-0.8.3.diff >ligatures.diff
environment.systemPackages = [ (st.overrideAttrs (oldAttrs: rec { buildInputs = oldAttrs.buildInputs ++ [ pkgs.harfbuzz ]; patches = [ ./ligatures.diff ]; })) ];