19 , xwaylandSupport ? true
22 stdenv.mkDerivation (finalAttrs: {
26 outputs = [ "out" ] ++ lib.optionals withManpages [ "man" ];
28 src = fetchFromGitHub {
31 rev = "refs/tags/v${finalAttrs.version}";
32 fetchSubmodules = true;
33 hash = "sha256-cIcO6owM6eYn+obYVaBOVQpnBx4++KOqQk5Hzo3GcNs=";
42 ++ lib.optional withManpages scdoc;
53 ] ++ lib.optional xwaylandSupport libX11;
57 zigBuildFlags = lib.optional withManpages "-Dman-pages"
58 ++ lib.optional xwaylandSupport "-Dxwayland";
61 install contrib/river.desktop -Dt $out/share/wayland-sessions
64 passthru.providedSessions = [ "river" ];
67 homepage = "https://github.com/ifreund/river";
68 description = "A dynamic tiling wayland compositor";
70 River is a dynamic tiling Wayland compositor with flexible runtime
74 - Simple and predictable behavior, river should be easy to use and have a
76 - Window management based on a stack of views and tags.
77 - Dynamic layouts generated by external, user-written executables. A
78 default rivertile layout generator is provided.
79 - Scriptable configuration and control through a custom Wayland protocol
80 and separate riverctl binary implementing it.
82 changelog = "https://github.com/ifreund/river/releases/tag/v${finalAttrs.version}";
83 license = lib.licenses.gpl3Plus;
84 maintainers = with lib.maintainers; [
89 mainProgram = "river";
90 platforms = lib.platforms.linux;