refactor(modules): make sure nothing is added without setting enable

This commit is contained in:
matt1432 2025-01-04 19:02:30 -05:00
parent 4a2ad39114
commit 49dc072b81
56 changed files with 684 additions and 506 deletions
modules/desktop/manager

View file

@ -1,29 +1,32 @@
self: {
config,
lib,
pkgs,
...
}: {
config = let
cfg = config.roles.desktop;
agsCfg = hmCfg.programs.ags;
hmCfg = config.home-manager.users.${cfg.user};
}: let
inherit (lib) mkIf;
hyprland = hmCfg.wayland.windowManager.hyprland.finalPackage;
cfg = config.roles.desktop;
agsCfg = hmCfg.programs.ags;
hmCfg = config.home-manager.users.${cfg.user};
agsConfig = let
homeFiles = config.home-manager.users.${cfg.user}.home.file;
hyprland = hmCfg.wayland.windowManager.hyprland.finalPackage;
nodeModules = homeFiles."${agsCfg.configDir}/node_modules".source;
varsTs = homeFiles."${agsCfg.configDir}/widgets/lockscreen/vars.ts".source;
in
pkgs.runCommandLocal "agsConfig" {} ''
cp -ar ${../../ags/config}/* ./.
chmod +w -R ./.
cp -ar ${varsTs} ./widgets/lockscreen/vars.ts
cp -ar ${nodeModules} ./node_modules
${agsCfg.package}/bin/ags bundle ./app.ts $out
'';
in {
agsConfig = let
homeFiles = config.home-manager.users.${cfg.user}.home.file;
nodeModules = homeFiles."${agsCfg.configDir}/node_modules".source;
varsTs = homeFiles."${agsCfg.configDir}/widgets/lockscreen/vars.ts".source;
in
pkgs.runCommandLocal "agsConfig" {} ''
cp -ar ${self}/modules/ags/config/* ./.
chmod +w -R ./.
cp -ar ${varsTs} ./widgets/lockscreen/vars.ts
cp -ar ${nodeModules} ./node_modules
${agsCfg.package}/bin/ags bundle ./app.ts $out
'';
in {
config = mkIf cfg.enable {
assertions = [
{
assertion = cfg.ags.enable;

View file

@ -3,58 +3,57 @@ self: {
lib,
pkgs,
...
}: {
}: let
inherit (lib) mkIf;
cfg = config.roles.desktop;
hyprland =
config
.home-manager
.users
.${cfg.user}
.wayland
.windowManager
.hyprland
.finalPackage;
# Hide TTY on launch
cmd = toString (pkgs.writeShellScript "hyprland-wrapper" ''
trap 'systemctl --user stop hyprland-session.target; sleep 1' EXIT
exec Hyprland >/dev/null
'');
in {
imports = [
(import ./ags.nix self)
(import ./hyprland.nix self)
(import ./ags self)
(import ./hyprland self)
];
config = let
inherit (lib) mkIf;
config = mkIf (cfg.enable && cfg.displayManager.enable) {
services = {
displayManager.sessionPackages = [hyprland];
cfg = config.roles.desktop;
greetd = {
enable = true;
settings = {
default_session = {
command = cmd;
user = "greeter";
};
hyprland =
config
.home-manager
.users
.${cfg.user}
.wayland
.windowManager
.hyprland
.finalPackage;
# Hide TTY on launch
cmd = toString (pkgs.writeShellScript "hyprland-wrapper" ''
trap 'systemctl --user stop hyprland-session.target; sleep 1' EXIT
exec Hyprland >/dev/null
'');
in
mkIf cfg.displayManager.enable {
services = {
displayManager.sessionPackages = [hyprland];
greetd = {
enable = true;
settings = {
default_session = {
command = cmd;
user = "greeter";
};
initial_session = {
command = cmd;
user = cfg.user;
};
initial_session = {
command = cmd;
user = cfg.user;
};
};
};
# unlock GPG keyring on login
services.gnome.gnome-keyring.enable = true;
security.pam.services.greetd.enableGnomeKeyring = true;
};
# unlock GPG keyring on login
services.gnome.gnome-keyring.enable = true;
security.pam.services.greetd.enableGnomeKeyring = true;
};
# For accurate stack trace
_file = ./default.nix;
}

View file

@ -3,28 +3,28 @@ self: {
lib,
pkgs,
...
}: {
config = let
inherit (lib) optionals;
inherit (self.lib.hypr) mkAnimation;
}: let
inherit (self.lib.hypr) mkAnimation;
inherit (import ./setupMonitors.nix {inherit config pkgs;}) setupMonitors;
inherit (lib) mkIf optionals;
cfg = config.roles.desktop;
inherit (import ./setupMonitors.nix {inherit config pkgs;}) setupMonitors;
# Nix stuff
cfgHypr =
config
.home-manager
.users
.${cfg.user}
.wayland
.windowManager
.hyprland;
in {
cfg = config.roles.desktop;
cfgHypr =
config
.home-manager
.users
.${cfg.user}
.wayland
.windowManager
.hyprland;
in {
config = mkIf cfg.enable {
home-manager.users.greeter = {
imports = [
(import ../theme self)
(import ../../theme self)
];
wayland.windowManager.hyprland = {
@ -73,5 +73,5 @@ self: {
};
# For accurate stack trace
_file = ./hyprland.nix;
_file = ./default.nix;
}