diff options
Diffstat (limited to 'pkgs/by-name/ri/river/package.nix')
-rw-r--r-- | pkgs/by-name/ri/river/package.nix | 101 |
1 files changed, 101 insertions, 0 deletions
diff --git a/pkgs/by-name/ri/river/package.nix b/pkgs/by-name/ri/river/package.nix new file mode 100644 index 0000000000000..e28161b0b02c4 --- /dev/null +++ b/pkgs/by-name/ri/river/package.nix @@ -0,0 +1,101 @@ +{ lib +, stdenv +, callPackage +, fetchFromGitea +, libGL +, libX11 +, libevdev +, libinput +, libxkbcommon +, pixman +, pkg-config +, scdoc +, udev +, wayland +, wayland-protocols +, wlroots_0_17 +, xwayland +, zig_0_13 +, withManpages ? true +, xwaylandSupport ? true +}: + +stdenv.mkDerivation (finalAttrs: { + pname = "river"; + version = "0.3.3"; + + outputs = [ "out" ] ++ lib.optionals withManpages [ "man" ]; + + src = fetchFromGitea { + domain = "codeberg.org"; + owner = "river"; + repo = "river"; + rev = "refs/tags/v${finalAttrs.version}"; + fetchSubmodules = true; + hash = "sha256-DYaxtYJLZQqE2SyPfWec/zXsZKRnxK2QNgOkM7GJkLI="; + }; + + deps = callPackage ./build.zig.zon.nix { }; + + nativeBuildInputs = [ + pkg-config + wayland + xwayland + zig_0_13.hook + ] + ++ lib.optional withManpages scdoc; + + buildInputs = [ + libGL + libevdev + libinput + libxkbcommon + pixman + udev + wayland-protocols + wlroots_0_17 + ] ++ lib.optional xwaylandSupport libX11; + + dontConfigure = true; + + zigBuildFlags = [ + "--system" + "${finalAttrs.deps}" + ] ++ lib.optional withManpages "-Dman-pages" ++ lib.optional xwaylandSupport "-Dxwayland"; + + postInstall = '' + install contrib/river.desktop -Dt $out/share/wayland-sessions + ''; + + passthru = { + providedSessions = [ "river" ]; + updateScript = ./update.nu; + }; + + meta = { + homepage = "https://codeberg.org/river/river"; + description = "Dynamic tiling wayland compositor"; + longDescription = '' + River is a dynamic tiling Wayland compositor with flexible runtime + configuration. + + Its design goals are: + - Simple and predictable behavior, river should be easy to use and have a + low cognitive load. + - 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. + ''; + changelog = "https://codeberg.org/river/river/releases/tag/v${finalAttrs.version}"; + license = lib.licenses.gpl3Plus; + maintainers = with lib.maintainers; [ + adamcstephens + moni + rodrgz + ]; + mainProgram = "river"; + platforms = lib.platforms.linux; + }; +}) |