biglybt: 3.5.0.0 -> 3.6.0.0
[NixPkgs.git] / pkgs / applications / window-managers / river / default.nix
blob3d3008692922bdb8b33281292d4e37706f995c2e
1 { lib
2 , stdenv
3 , fetchFromGitea
4 , libGL
5 , libX11
6 , libevdev
7 , libinput
8 , libxkbcommon
9 , pixman
10 , pkg-config
11 , scdoc
12 , udev
13 , wayland
14 , wayland-protocols
15 , wlroots_0_17
16 , xwayland
17 , zig_0_11
18 , withManpages ? true
19 , xwaylandSupport ? true
22 stdenv.mkDerivation (finalAttrs: {
23   pname = "river";
24   version = "0.3.0";
26   outputs = [ "out" ] ++ lib.optionals withManpages [ "man" ];
28   src = fetchFromGitea {
29     domain = "codeberg.org";
30     owner = "river";
31     repo = "river";
32     rev = "refs/tags/v${finalAttrs.version}";
33     fetchSubmodules = true;
34     hash = "sha256-6LZuWx0sC6bW0K7D0PR8hJlVW6i6NIzOOORdMu3Gk5U=";
35   };
37   nativeBuildInputs = [
38     pkg-config
39     wayland
40     xwayland
41     zig_0_11.hook
42   ]
43   ++ lib.optional withManpages scdoc;
45   buildInputs = [
46     libGL
47     libevdev
48     libinput
49     libxkbcommon
50     pixman
51     udev
52     wayland-protocols
53     wlroots_0_17
54   ] ++ lib.optional xwaylandSupport libX11;
56   dontConfigure = true;
58   zigBuildFlags = lib.optional withManpages "-Dman-pages"
59                   ++ lib.optional xwaylandSupport "-Dxwayland";
61   postInstall = ''
62     install contrib/river.desktop -Dt $out/share/wayland-sessions
63   '';
65   passthru.providedSessions = [ "river" ];
67   meta = {
68     homepage = "https://codeberg.org/river/river";
69     description = "A dynamic tiling wayland compositor";
70     longDescription = ''
71       River is a dynamic tiling Wayland compositor with flexible runtime
72       configuration.
74       Its design goals are:
75       - Simple and predictable behavior, river should be easy to use and have a
76         low cognitive load.
77       - Window management based on a stack of views and tags.
78       - Dynamic layouts generated by external, user-written executables. A
79         default rivertile layout generator is provided.
80       - Scriptable configuration and control through a custom Wayland protocol
81         and separate riverctl binary implementing it.
82     '';
83     changelog = "https://codeberg.org/river/river/releases/tag/v${finalAttrs.version}";
84     license = lib.licenses.gpl3Plus;
85     maintainers = with lib.maintainers; [
86       adamcstephens
87       moni
88       rodrgz
89     ];
90     mainProgram = "river";
91     platforms = lib.platforms.linux;
92   };