diff --git a/pkgs/default.nix b/pkgs/default.nix index 484de92c..95bc7bcf 100644 --- a/pkgs/default.nix +++ b/pkgs/default.nix @@ -41,6 +41,7 @@ let gnome-info-collect = callPackage ./gnome-info-collect { }; hush-shell = callPackage ./hush-shell.nix { }; ictree = callPackage ./ictree.nix { }; + kiwmi = callPackage ./kiwmi { }; libadwaita-latest = libadwaita.overrideAttrs (super: self: { version = "1.2.0"; src = fetchFromGitLab { diff --git a/pkgs/kiwmi/default.nix b/pkgs/kiwmi/default.nix new file mode 100644 index 00000000..4aa68f1c --- /dev/null +++ b/pkgs/kiwmi/default.nix @@ -0,0 +1,68 @@ +{ stdenv +, lib +, fetchFromGitHub +, meson +, ninja +, pkg-config +, makeBinaryWrapper +, lua +, pixman +, wlroots +, wayland +, wayland-protocols +, wayland-scanner +, libxkbcommon +, udev +, git +, extraOptions ? [ ] +}: + +let + rev = "17814972abe6a8811a586fa87c99a2b16a86075f"; +in +stdenv.mkDerivation rec { + pname = "kiwmi"; + version = "2022-09-26"; + + src = fetchFromGitHub { + inherit rev; + owner = "buffet"; + repo = pname; + sha256 = "sha256-n9PA6cyEjSlnDcRrqIkO83UaCE/hovbi/oZon1B+nuw="; + }; + + nativeBuildInputs = [ + meson + ninja + pkg-config + makeBinaryWrapper + ]; + + buildInputs = [ + git + libxkbcommon + lua + pixman + udev + wayland + wayland-protocols + wayland-scanner + wlroots + ]; + + mesonFlags = [ "-Dkiwmi-version=${version}-${lib.strings.substring 0 6 rev}" ]; + + passthru.providedSessions = [ "kiwmi" ]; + + postInstall = lib.optionalString (lib.length extraOptions >= 1) '' + wrapProgram $out/bin/kiwmi \ + ${lib.concatMapStrings (flag: " --add-flags ${lib.escapeShellArg flag}") extraOptions} + ''; + + meta = with lib; { + homepage = "https://github.com/buffet/kiwmi"; + description = "Fully programmable Wayland compositor"; + license = licenses.mpl20; + platforms = platforms.unix; + }; +}