Files
hypr/flake.nix
2026-07-04 16:43:04 +01:00

84 lines
2.0 KiB
Nix

{
description = "A very basic flake";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
hyprland.url = "github:hyprwm/Hyprland";
wrappers.url = "github:lassulus/wrappers";
otter-launcher = {
url = "github:kuokuo123/otter-launcher";
inputs.nixpkgs.follows = "nixpkgs";
};
wshowkeys = {
url = "github:voidarclabs/wshowkeys";
inputs.nixpkgs.follows = "nixpkgs";
};
woomer.url = "github:coffeeispower/woomer";
};
outputs = {
self,
nixpkgs,
wrappers,
...
} @ inputs: let
system = "x86_64-linux";
pkgs = import nixpkgs {inherit system;};
hypr = inputs.hyprland.packages.${system}.default;
defaultRuntimePkgs = let
input = {
package,
output ? "default",
}:
inputs.${package}.packages.${system}.${output};
in {
inherit
(pkgs)
kitty
firefox
nemo
wlogout
grimblast
wpaperd
syncthing
gotify-desktop
wayvnc
quickshell
way-edges
waybar
dunst
;
otter-launcher = input {package = "otter-launcher";};
wshowkeys = input {package = "wshowkeys";};
woomer = input {package = "woomer";};
};
mkWrapped = {
pkgs,
package,
runtimePackages,
exePath,
flags,
}:
(wrappers.lib.wrapPackage {
inherit pkgs package exePath flags;
runtimeInputs = builtins.attrValues runtimePackages;
env = {
"MODULES_ROOT" = ./.;
};
}).overrideAttrs (old: {
passthru = (old.passthru or {}) // {inherit runtimePackages;};
});
in {
lib.defaultRuntimePkgs.${system} = defaultRuntimePkgs;
packages.${system}.default = pkgs.lib.makeOverridable mkWrapped {
inherit pkgs;
package = hypr;
runtimePackages = defaultRuntimePkgs;
exePath = pkgs.lib.getExe hypr;
flags."--config" = ./hyprland.lua;
};
};
}