Files
hypr/flake.nix

101 lines
2.4 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,
env,
}:
(wrappers.lib.wrapPackage {
inherit env pkgs package exePath flags;
}).overrideAttrs (old: {
passthru = (old.passthru or {}) // {inherit runtimePackages;};
});
repoSrc = pkgs.lib.cleanSourceWith {
src = ./.;
filter = path: type: let
name = baseNameOf path;
in
!(name == ".git" || name == ".gitignore" || name == "result" || name == ".direnv");
};
in {
lib.defaultRuntimePkgs.${system} = defaultRuntimePkgs;
packages.${system} = {
default = pkgs.lib.makeOverridable mkWrapped {
inherit pkgs;
package = hypr;
runtimePackages = defaultRuntimePkgs;
exePath = pkgs.lib.getExe hypr;
env."MODULES_ROOT" = ./modules;
flags."--config" = ./hyprland.lua;
};
repo-files = pkgs.stdenvNoCC.mkDerivation {
pname = "hyprland-repo-files";
version = "1.0";
src = repoSrc;
dontBuild = true;
installPhase = ''
mkdir -p $out
cp -r . $out/
'';
};
};
};
}