90 lines
2.1 KiB
Nix
90 lines
2.1 KiB
Nix
self: {
|
|
config,
|
|
lib,
|
|
pkgs,
|
|
...
|
|
}: let
|
|
inherit (self.inputs) ags;
|
|
in {
|
|
config = let
|
|
cfg = config.roles.desktop;
|
|
|
|
hyprland =
|
|
config
|
|
.home-manager
|
|
.users
|
|
.${cfg.user}
|
|
.wayland
|
|
.windowManager
|
|
.hyprland
|
|
.finalPackage;
|
|
in {
|
|
# Add home folder for home-manager to work
|
|
users.users.greeter = {
|
|
home = "/var/lib/greeter";
|
|
createHome = true;
|
|
};
|
|
|
|
# Setup node modules for dev env
|
|
home-manager.users.${cfg.user}.home.file = let
|
|
flakeDir = config.environment.variables.FLAKE;
|
|
modulesDir = "${lib.removePrefix "/home/${cfg.user}/" flakeDir}/nixosModules";
|
|
nodeModules =
|
|
config.home-manager.users.${cfg.user}.home.file."${modulesDir}/ags/config/node_modules".source
|
|
or config.home-manager.users.${cfg.user}.home.file."${modulesDir}/ags-v2/config/node_modules".source;
|
|
in {
|
|
"${modulesDir}/desktop/manager/ags/node_modules".source = nodeModules;
|
|
};
|
|
|
|
home-manager.users.greeter = {
|
|
imports = [ags.homeManagerModules.default];
|
|
|
|
programs.ags.enable = true;
|
|
|
|
home.packages = [
|
|
hyprland
|
|
pkgs.gtk3
|
|
pkgs.glib
|
|
];
|
|
|
|
xdg.configFile = {
|
|
"ags".source = pkgs.stdenv.mkDerivation {
|
|
name = "ags-greeter";
|
|
src = lib.fileset.toSource {
|
|
root = ./.;
|
|
fileset = lib.fileset.unions [
|
|
./scss
|
|
./greeter.ts
|
|
./ts
|
|
./tsconfig.json
|
|
];
|
|
};
|
|
|
|
buildInputs = builtins.attrValues {
|
|
inherit
|
|
(pkgs)
|
|
bun
|
|
dart-sass
|
|
;
|
|
};
|
|
|
|
buildPhase = ''
|
|
sass ./scss/greeter.scss style.css
|
|
bun build ./greeter.ts \
|
|
--external resource:///* \
|
|
--external gi://* \
|
|
--external cairo > config.js
|
|
'';
|
|
|
|
installPhase = ''
|
|
mkdir $out
|
|
mv style.css config.js $out/
|
|
'';
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
# For accurate stack trace
|
|
_file = ./default.nix;
|
|
}
|