diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index 664ee433104b..282af77b9af2 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -5986,6 +5986,13 @@ githubId = 30749142; keys = [ { fingerprint = "4E35 F2E5 2132 D654 E815 A672 DB2C BC24 2868 6000"; } ]; }; + debling = { + name = "Denilson S. Ebling"; + email = "d.ebling8@gmail.com"; + github = "debling"; + githubId = 32403873; + keys = [ { fingerprint = "3EDD 9C88 B0F2 58F8 C25F 5D2C CCBC 8AA1 AF06 2142"; } ]; + }; declan = { name = "Declan Rixon"; email = "declan.fraser.rixon@gmail.com"; diff --git a/pkgs/by-name/ri/river-ultitile/build.zig.zon.nix b/pkgs/by-name/ri/river-ultitile/build.zig.zon.nix new file mode 100644 index 000000000000..a26d29e2067e --- /dev/null +++ b/pkgs/by-name/ri/river-ultitile/build.zig.zon.nix @@ -0,0 +1,99 @@ +# generated by zon2nix (https://github.com/Cloudef/zig2nix) + +{ + lib, + linkFarm, + fetchurl, + fetchgit, + runCommandLocal, + zig, + name ? "zig-packages", +}: + +with builtins; +with lib; + +let + unpackZigArtifact = + { name, artifact }: + runCommandLocal name { nativeBuildInputs = [ zig ]; } '' + hash="$(zig fetch --global-cache-dir "$TMPDIR" ${artifact})" + mv "$TMPDIR/p/$hash" "$out" + chmod 755 "$out" + ''; + + fetchZig = + { + name, + url, + hash, + }: + let + artifact = fetchurl { inherit url hash; }; + in + unpackZigArtifact { inherit name artifact; }; + + fetchGitZig = + { + name, + url, + hash, + rev ? throw "rev is required, remove and regenerate the zon2json-lock file", + }: + let + parts = splitString "#" url; + url_base = elemAt parts 0; + url_without_query = elemAt (splitString "?" url_base) 0; + in + fetchgit { + inherit name rev hash; + url = url_without_query; + deepClone = false; + }; + + fetchZigArtifact = + { + name, + url, + hash, + ... + }@args: + let + parts = splitString "://" url; + proto = elemAt parts 0; + path = elemAt parts 1; + fetcher = { + "git+http" = fetchGitZig ( + args + // { + url = "http://${path}"; + } + ); + "git+https" = fetchGitZig ( + args + // { + url = "https://${path}"; + } + ); + http = fetchZig { + inherit name hash; + url = "http://${path}"; + }; + https = fetchZig { + inherit name hash; + url = "https://${path}"; + }; + }; + in + fetcher.${proto}; +in +linkFarm name [ + { + name = "wayland-0.3.0-lQa1kjPIAQDmhGYpY-zxiRzQJFHQ2VqhJkQLbKKdt5wl"; + path = fetchZigArtifact { + name = "wayland"; + url = "https://codeberg.org/ifreund/zig-wayland/archive/v0.3.0.tar.gz"; + hash = "sha256-xU8IrETSFOKKQQMgwVyRKLwGaek4USaKXg49S9oHSTQ="; + }; + } +] diff --git a/pkgs/by-name/ri/river-ultitile/package.nix b/pkgs/by-name/ri/river-ultitile/package.nix new file mode 100644 index 000000000000..83c5c351a7a7 --- /dev/null +++ b/pkgs/by-name/ri/river-ultitile/package.nix @@ -0,0 +1,69 @@ +{ + callPackage, + fetchFromSourcehut, + lib, + pandoc, + pkg-config, + stdenv, + wayland, + wayland-protocols, + wayland-scanner, + zig_0_14, +}: + +let + zig = zig_0_14; +in +stdenv.mkDerivation (finalAttrs: { + pname = "river-ultitile"; + version = "1.3.0"; + + src = fetchFromSourcehut { + owner = "~midgard"; + repo = "river-ultitile"; + rev = "v${finalAttrs.version}"; + hash = "sha256-whzJZLgd51kXOVq9YVqcADTOyGmHmwJZWzbrZGZx3Ak="; + }; + + nativeBuildInputs = [ + zig.hook + pkg-config + wayland + wayland-scanner + ]; + + buildInputs = [ + wayland-protocols + pandoc # used for building documentation + ]; + + deps = callPackage ./build.zig.zon.nix { }; + + zigBuildFlags = [ + "--system" + "${finalAttrs.deps}" + ]; + + meta = { + description = "Configurable layout generator for the River compositor"; + longDescription = '' + A layout generator for **river**. Features include: + - **configurable** layouts employing nested tiles (no juggling with coordinates), + - **widescreen** support by default, + - default layouts, switchable at run time with a command or key binding: + - dwm-like main/stack layout, + - main on the left on normal screens, + - **main in the center and stacks on both sides** on widescreens, + - a vertical stack, + - a horizontal stack, and + - a monocle layout, + - optional per-tag-per-output state. + ''; + changelog = "https://git.sr.ht/~midgard/river-ultitile/tree/v${finalAttrs.version}/item/CHANGELOG.md"; + homepage = "https://git.sr.ht/~midgard/river-ultitile"; + license = lib.licenses.gpl3Plus; + mainProgram = "river-ultitile"; + maintainers = with lib.maintainers; [ debling ]; + platforms = lib.platforms.linux; + }; +})