diff --git a/pkgs/applications/window-managers/river/default.nix b/pkgs/applications/window-managers/river/default.nix index 9b40d34b6f24..d6869b4786f1 100644 --- a/pkgs/applications/window-managers/river/default.nix +++ b/pkgs/applications/window-managers/river/default.nix @@ -1,7 +1,19 @@ -{ lib, stdenv ,fetchFromGitHub -, zig, wayland, pkg-config, scdoc -, xwayland, wayland-protocols, wlroots -, libxkbcommon, pixman, udev, libevdev, libX11, libGL +{ lib +, stdenv +, fetchFromGitHub +, libGL +, libX11 +, libevdev +, libxkbcommon +, pixman +, pkg-config +, scdoc +, udev +, wayland +, wayland-protocols +, wlroots +, xwayland +, zig }: stdenv.mkDerivation rec { @@ -12,33 +24,62 @@ stdenv.mkDerivation rec { owner = "ifreund"; repo = pname; rev = "0c8e718d95a6a621b9cba0caa9158915e567b076"; - sha256 = "1jjh0dzxi7hy4mg8vag6ipfwb9qxm5lfc07njp1mx6m81nq76ybk"; + sha256 = "sha256-c3lzsA2oml7DlfYA5mipHafF3Y3mqY1eJR6e2H8DUMo="; fetchSubmodules = true; }; - buildInputs = [ xwayland wayland-protocols wlroots pixman - libxkbcommon pixman udev libevdev libX11 libGL + nativeBuildInputs = [ + pkg-config + scdoc + wayland-protocols + zig + ]; + buildInputs = [ + libGL + libX11 + libevdev + libxkbcommon + pixman + pixman + udev + wayland + wlroots + xwayland ]; - preBuild = '' + dontConfigure = true; + + buildPhase = '' + runHook preBuild export HOME=$TMPDIR + zig build -Dman-pages -Drelease-safe -Dxwayland --prefix $out + runHook postBuild ''; + installPhase = '' - zig build -Drelease-safe -Dxwayland -Dman-pages --prefix $out install + runHook preInstall + zig build -Dman-pages -Drelease-safe -Dxwayland --prefix $out install + runHook postInstall ''; - nativeBuildInputs = [ zig wayland scdoc pkg-config ]; - - installFlags = [ "DESTDIR=$(out)" ]; - meta = with lib; { + homepage = "https://github.com/ifreund/river"; description = "A dynamic tiling wayland compositor"; longDescription = '' - river is a dynamic tiling wayland compositor that takes inspiration from dwm and bspwm. + river is a dynamic tiling wayland compositor that takes inspiration from + dwm and bspwm. + + Its design goals are: + - Simplicity and minimalism, river should not overstep the bounds of a + window manager. + - Window management based on a stack of views and tags. + - Dynamic layouts generated by external, user-written executables. + (A default rivertile layout generator is provided.) + - Scriptable configuration and control through a custom wayland protocol + and separate riverctl binary implementing it. ''; - homepage = "https://github.com/ifreund/river"; license = licenses.gpl3Plus; + maintainers = with maintainers; [ branwright1 AndersonTorres ]; platforms = platforms.linux; - maintainers = with maintainers; [ branwright1 ]; }; }