nixos-configs/nixosModules/desktop/manager/ags.nix
matt1432 ab8bb48feb
All checks were successful
Discord / discord commits (push) Has been skipped
refactor(ags): remove unneeded agsV1 stuff
2024-11-12 16:55:57 -05:00

72 lines
1.7 KiB
Nix

self: {
config,
lib,
pkgs,
...
}: {
config = let
# Libs
inherit (lib) removePrefix;
cfg = config.roles.desktop;
hmCfg = config.home-manager.users.${cfg.user};
ags = hmCfg.programs.ags-v2.package;
hyprland = hmCfg.wayland.windowManager.hyprland.finalPackage;
agsConfig = let
homeFiles = config.home-manager.users.${cfg.user}.home.file;
agsDir = "${removePrefix "/home/${cfg.user}/" config.environment.variables.FLAKE}/nixosModules/ags-v2/config";
nodeModules = homeFiles."${agsDir}/node_modules".source;
tsconfig = homeFiles."${agsDir}/tsconfig.json".source;
varsTs = homeFiles."${agsDir}/widgets/lockscreen/vars.ts".source;
in
pkgs.runCommandLocal "agsConfig" {} ''
cp -ar ${tsconfig} ./tsconfig.json
cp -ar ${../../ags-v2/config}/* ./.
chmod +w -R ./.
cp -ar ${varsTs} ./widgets/lockscreen/vars.ts
cp -ar ${nodeModules} ./node_modules
${ags}/bin/ags bundle ./app.ts $out
'';
in {
assertions = [
{
assertion = cfg.ags-v2.enable;
message = ''
The Display Manager requires AGSv2 to be enabled.
'';
}
];
# Add home folder for home-manager to work
users.users.greeter = {
home = "/var/lib/greeter";
createHome = true;
};
home-manager.users.greeter = {
home.packages = [
hyprland
(pkgs.writeShellApplication {
name = "agsGreeter";
runtimeInputs = [
ags
hyprland
];
text = ''
export CONF="greeter"
exec ags run ${agsConfig}
'';
})
];
};
};
# For accurate stack trace
_file = ./default.nix;
}