From 3b4bee0ea40829053bd5df48dff3d3f737b6d4b8 Mon Sep 17 00:00:00 2001 From: uku Date: Sat, 13 Jan 2024 11:23:46 +0100 Subject: [PATCH] add hyprland & xdph --- exprs/hyprlang.nix | 30 ++++++++++++++++++ exprs/overlay.nix | 11 ++++++- exprs/xdph.nix | 78 ++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 118 insertions(+), 1 deletion(-) create mode 100644 exprs/hyprlang.nix create mode 100644 exprs/xdph.nix diff --git a/exprs/hyprlang.nix b/exprs/hyprlang.nix new file mode 100644 index 0000000..554426f --- /dev/null +++ b/exprs/hyprlang.nix @@ -0,0 +1,30 @@ +{ + lib, + stdenv, + fetchFromGitHub, + cmake, +}: +stdenv.mkDerivation (finalAttrs: { + pname = "hyprlang"; + version = "0.2.1"; + + src = fetchFromGitHub { + owner = "hyprwm"; + repo = "hyprlang"; + rev = "v${finalAttrs.version}"; + hash = "sha256-KjAYC3sMyfipCHpkj0XSPw/C9KdCNlWtguQW5rEUiqo="; + }; + + nativeBuildInputs = [cmake]; + + outputs = ["out" "dev"]; + + doCheck = true; + + meta = with lib; { + homepage = "https://github.com/hyprwm/hyprlang"; + description = "The official implementation library for the hypr config language"; + license = licenses.gpl3Plus; + platforms = platforms.linux; + }; +}) diff --git a/exprs/overlay.nix b/exprs/overlay.nix index cbd29d1..90676a0 100644 --- a/exprs/overlay.nix +++ b/exprs/overlay.nix @@ -1,4 +1,4 @@ -final: prev: { +final: prev: rec { # FUCK REPRODUCIBILITY RARGHGHGHGHDKGJDKLGJSDKLGMDJGLKSDJLMGSJDKMGJZEIZ vesktop = prev.vesktop.overrideAttrs (old: {patches = [];}); @@ -10,4 +10,13 @@ final: prev: { obs-studio = prev.obs-studio.overrideAttrs (old: { cmakeFlags = old.cmakeFlags ++ [(prev.lib.cmakeBool "ENABLE_LIBFDK" true)]; # NixOS/nixpkgs#278127 }); + + hyprlang = prev.callPackage ./hyprlang.nix { + stdenv = prev.gcc13Stdenv; + }; + + xdg-desktop-portal-hyprland = prev.qt6Packages.callPackage ./xdph.nix { + stdenv = prev.gcc13Stdenv; + hyprlang = hyprlang; + }; } diff --git a/exprs/xdph.nix b/exprs/xdph.nix new file mode 100644 index 0000000..d676943 --- /dev/null +++ b/exprs/xdph.nix @@ -0,0 +1,78 @@ +{ + lib, + stdenv, + fetchFromGitHub, + cmake, + pkg-config, + wayland-scanner, + makeWrapper, + wrapQtAppsHook, + hyprland-protocols, + hyprlang, + libdrm, + mesa, + pipewire, + qtbase, + qttools, + qtwayland, + sdbus-cpp, + systemd, + wayland, + wayland-protocols, + hyprland, + hyprpicker, + slurp, +}: +stdenv.mkDerivation (self: { + pname = "xdg-desktop-portal-hyprland"; + version = "1.3.1"; + + src = fetchFromGitHub { + owner = "hyprwm"; + repo = "xdg-desktop-portal-hyprland"; + rev = "v${self.version}"; + hash = "sha256-wP611tGIWBA4IXShWbah7TxqdbvhfcfT2vnXalX/qzk="; + }; + + nativeBuildInputs = [ + cmake + pkg-config + wayland-scanner + makeWrapper + wrapQtAppsHook + ]; + + buildInputs = [ + hyprland-protocols + hyprlang + libdrm + mesa + pipewire + qtbase + qttools + qtwayland + sdbus-cpp + systemd + wayland + wayland-protocols + ]; + + dontWrapQtApps = true; + + postInstall = '' + wrapProgramShell $out/bin/hyprland-share-picker \ + "''${qtWrapperArgs[@]}" \ + --prefix PATH ":" ${lib.makeBinPath [slurp hyprland]} + + wrapProgramShell $out/libexec/xdg-desktop-portal-hyprland \ + --prefix PATH ":" ${lib.makeBinPath [(placeholder "out") hyprpicker]} + ''; + + meta = with lib; { + homepage = "https://github.com/hyprwm/xdg-desktop-portal-hyprland"; + description = "xdg-desktop-portal backend for Hyprland"; + license = licenses.bsd3; + maintainers = with maintainers; [fufexan]; + platforms = platforms.linux; + }; +})