add hyprland & xdph

This commit is contained in:
uku 2024-01-13 11:23:46 +01:00
parent 03981bfe5b
commit 3b4bee0ea4
Signed by: uku
GPG key ID: 7D01D7B105E77166
3 changed files with 118 additions and 1 deletions

30
exprs/hyprlang.nix Normal file
View file

@ -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;
};
})

View file

@ -1,4 +1,4 @@
final: prev: { final: prev: rec {
# FUCK REPRODUCIBILITY RARGHGHGHGHDKGJDKLGJSDKLGMDJGLKSDJLMGSJDKMGJZEIZ # FUCK REPRODUCIBILITY RARGHGHGHGHDKGJDKLGJSDKLGMDJGLKSDJLMGSJDKMGJZEIZ
vesktop = prev.vesktop.overrideAttrs (old: {patches = [];}); vesktop = prev.vesktop.overrideAttrs (old: {patches = [];});
@ -10,4 +10,13 @@ final: prev: {
obs-studio = prev.obs-studio.overrideAttrs (old: { obs-studio = prev.obs-studio.overrideAttrs (old: {
cmakeFlags = old.cmakeFlags ++ [(prev.lib.cmakeBool "ENABLE_LIBFDK" true)]; # NixOS/nixpkgs#278127 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;
};
} }

78
exprs/xdph.nix Normal file
View file

@ -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;
};
})