66 lines
1.6 KiB
Nix
66 lines
1.6 KiB
Nix
{
|
|
moduleWithSystem,
|
|
self,
|
|
inputs,
|
|
...
|
|
}: {
|
|
flake.nixosModules.hyprland = moduleWithSystem ({
|
|
self',
|
|
pkgs,
|
|
...
|
|
}: let
|
|
modules = with self.nixosModules; [
|
|
audio
|
|
systemTheme
|
|
];
|
|
runtimePkgs = self'.packages.hyprland.passthru.runtimePackages;
|
|
lib = pkgs.lib;
|
|
in {
|
|
imports = modules;
|
|
|
|
programs.hyprland = {
|
|
enable = true;
|
|
package = self'.packages.hyprland;
|
|
};
|
|
|
|
services.xserver.enable = true;
|
|
security.polkit.enable = true;
|
|
|
|
environment.systemPackages = with pkgs; [
|
|
hyprlock
|
|
gsettings-desktop-schemas
|
|
];
|
|
|
|
system.activationScripts.hyprRuntimeEnv = lib.stringAfter ["specialfs"] ''
|
|
mkdir -p /run/hypr-runtime-env/bin
|
|
${lib.concatStringsSep "\n" (lib.mapAttrsToList (name: pkg: ''
|
|
ln -sfn ${lib.getExe pkg} /run/hypr-runtime-env/bin/${name}
|
|
'')
|
|
runtimePkgs)}
|
|
'';
|
|
});
|
|
perSystem = {
|
|
self',
|
|
system,
|
|
inputs',
|
|
...
|
|
}: {
|
|
packages = {
|
|
hyprland = inputs'.hyprland.packages.default.override {
|
|
runtimePackages =
|
|
inputs.hyprland.lib.defaultRuntimePkgs.${system}
|
|
// {
|
|
wpaperd = self'.packages.wpaperd;
|
|
kitty = self'.packages.kitty;
|
|
gotify-desktop = self'.packages.gotify-desktop;
|
|
otter-launcher = self'.packages.otter-launcher;
|
|
quickshell = self'.packages.quickshell;
|
|
waybar = self'.packages.waybar;
|
|
wlogout = self'.packages.wlogout;
|
|
way-edges = self'.packages.way-edges;
|
|
};
|
|
};
|
|
};
|
|
};
|
|
}
|