1
0
Fork
You've already forked dwl
0
forked from dwl/dwl
dwm for Wayland
  • C 92.9%
  • Nix 3.3%
  • Roff 2%
  • Makefile 1.8%
2026年04月17日 15:50:38 +03:00
.gitea/issue_template request description before logs 2024年01月15日 02:15:54 +00:00
patches patch: wlr-foreign-toplevel-management 2026年03月23日 18:29:48 +02:00
protocols patch: wlr-foreign-toplevel-management 2026年03月23日 18:29:48 +02:00
systray patch: bar-systray 2026年03月12日 19:56:39 +02:00
.gitignore added flake.nix 2026年03月12日 19:40:22 +02:00
.mailmap add myself to .mailmap 2024年07月24日 15:51:49 -06:00
CHANGELOG.md fix crash when a client is created while all outputs are disabled 2024年08月26日 21:56:10 -06:00
client.h patch: swallow 2026年03月14日 11:05:20 +02:00
config.def.h disable autostart in config.def.h 2026年03月14日 13:18:18 +02:00
config.lixos.h first version of lixos dwl config 2026年04月17日 15:50:38 +03:00
config.masiina.h screenshot 2026年04月05日 17:29:59 +03:00
config.mk Revert "Update config.mk" 2025年06月09日 00:18:17 -05:00
dbus.c patch: bar-systray 2026年03月12日 19:56:39 +02:00
dbus.h patch: bar-systray 2026年03月12日 19:56:39 +02:00
drwl.h patch: bar 2026年03月12日 18:40:25 +02:00
dwl-README.md add readme 2026年03月15日 14:16:39 +02:00
dwl.1 add readme 2026年03月15日 14:16:39 +02:00
dwl.c patch: wlr-foreign-toplevel-management 2026年03月23日 18:29:48 +02:00
dwl.desktop Add desktop entry file 2023年09月22日 19:49:18 -06:00
flake.lock added flake.nix 2026年03月12日 19:40:22 +02:00
flake.nix wlroots version 2026年03月23日 18:35:08 +02:00
LICENSE add sway LICENSE file 2022年03月22日 23:44:53 -06:00
LICENSE.dwm add TinyWL and dwm LICENSE files 2020年04月22日 11:26:57 -05:00
LICENSE.sway add sway LICENSE file 2022年03月22日 23:44:53 -06:00
LICENSE.tinywl add TinyWL and dwm LICENSE files 2020年04月22日 11:26:57 -05:00
Makefile patch: wlr-foreign-toplevel-management 2026年03月23日 18:29:48 +02:00
README.md add readme 2026年03月15日 14:16:39 +02:00
shiftview.c patch: shiftview 2026年03月12日 20:47:10 +02:00
util.c replace spaces with tabs 2024年07月27日 00:41:39 -06:00
util.h set O_NONBLOCK flag to stdout 2024年07月01日 20:40:54 -06:00

My configuration of dwl

This configuration includes a lot of patches (found in the patches folder) and my configurations for some of my computers.

dwl

Patches included:

  • alwayscenter
  • attachbottom
  • autostart (0.8)
  • bar
  • bar-systray (0.7)
  • bartruecenteredtitle
  • drm_lease
  • fakefullscreenclient
  • focusdir
  • follow
  • gaps
  • gestures
  • lock-size
  • mouse-trackpad-split (0.7)
  • movestack
  • pointer-gestures-unstable
  • regexrules
  • rotate-clients
  • shiftview
  • smartborders
  • sticky
  • swallow
  • unclutter

A lot of the patches have been modified to be compatible with each other. The patch files included are the original ones. Some other things have been modified as well, for a complete changelog, take a look at the commits.

Nixos

A flake is included in this repository that outputs a package and a module.

Module

This overrides the default nixos module, so you need to disable it. To use this in your configuration add it to your flake and then import it in your configuration:

# flake.nix
{
 inputs = {
 ...
 dwl = {
 url = "git+ssh://git@codeberg.org/osmo1/dwl.git";
 inputs.nixpkgs.follows = "nixpkgs";
 };
 };
 ...
}
# configuration.nix
{
 inputs,
 lib,
 ...
}:
{
 ...
 disabledModules = [
 "${inputs.nixpkgs}/nixos/modules/programs/wayland/dwl.nix"
 ];
 imports = [
 inputs.dwl.nixosModules.default
 ];
 programs.dwl = {
 enable = true;
 package = (
 inputs.dwl.packages.${pkgs.system}.dwl {
 configH = ./config.h;
 }
 );
 extraSessionCommands = "${lib.getExe pkgs.foot}";
 statusCommand = "${lib.getExe pkgs.slstatus} -s";
 };
 ...
}

Package

The outputed package includes a configH attribute (like in nixpkgs) which can be overriden:

inputs.dwl.packages.${pkgs.system}.dwl {
 configH = ./config.h
}

or if you want mine:

inputs.dwl.packages.${pkgs.system}.dwl {
 configH = pkgs.runCommand "config-masiina.h" { } ''
 cp -L ${inputs.dwl}/config.masiina.h $out
 '';
}

configH expects either a string or a path, if the value is a string, it gets put into the config.h file, if the value is a path, it gets copied to be the config.h. Unfortunately this makes it kinda hard to reference files in the flake from outside it. It isn't pretty but it works.

Building and testing

To build using the flake, run

$ nix build .#dwl --keep-failed

the result will be in the result folder, and if the build failed a temporary folder with the derivated files should be mentioned at the top of the logs.