refactor: rename some flake attr directories

This commit is contained in:
matt1432 2024-12-16 15:51:41 -05:00
parent 1ce40f2c1a
commit 6ca0d7248b
329 changed files with 178 additions and 139 deletions

View file

@ -0,0 +1,66 @@
self: {
config,
pkgs,
...
}: {
config = let
cfg = config.roles.desktop;
agsCfg = hmCfg.programs.ags;
hmCfg = config.home-manager.users.${cfg.user};
hyprland = hmCfg.wayland.windowManager.hyprland.finalPackage;
agsConfig = let
homeFiles = config.home-manager.users.${cfg.user}.home.file;
nodeModules = homeFiles."${agsCfg.configDir}/node_modules".source;
tsconfig = homeFiles."${agsCfg.configDir}/tsconfig.json".source;
varsTs = homeFiles."${agsCfg.configDir}/widgets/lockscreen/vars.ts".source;
in
pkgs.runCommandLocal "agsConfig" {} ''
cp -ar ${tsconfig} ./tsconfig.json
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 {
assertions = [
{
assertion = cfg.ags.enable;
message = ''
The Display Manager requires AGS 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 = [
agsCfg.package
hyprland
];
text = ''
exec ags run ${agsConfig} -a greeter
'';
})
];
};
};
# For accurate stack trace
_file = ./default.nix;
}

View file

@ -0,0 +1,60 @@
self: {
config,
lib,
pkgs,
...
}: {
imports = [
(import ./ags.nix self)
(import ./hyprland.nix self)
];
config = 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
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;
};
};
};
};
# 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

@ -0,0 +1,77 @@
self: {
config,
lib,
pkgs,
...
}: {
config = let
inherit (lib) optionals;
inherit (self.lib.hypr) mkAnimation;
inherit (import ./setupMonitors.nix {inherit config pkgs;}) setupMonitors;
cfg = config.roles.desktop;
# Nix stuff
cfgHypr =
config
.home-manager
.users
.${cfg.user}
.wayland
.windowManager
.hyprland;
in {
home-manager.users.greeter = {
imports = [
(import ../theme self)
];
wayland.windowManager.hyprland = {
enable = true;
systemd.enable = false;
package = cfgHypr.finalPackage;
settings = {
inherit (cfgHypr.settings) cursor device input misc monitor;
envd = optionals (config.nvidia.enable) [
"LIBVA_DRIVER_NAME, nvidia"
"NVD_BACKEND, direct"
"XDG_SESSION_TYPE, wayland"
"GBM_BACKEND, nvidia-drm"
"__GLX_VENDOR_LIBRARY_NAME, nvidia"
];
general.border_size = 0;
decoration = {
blur.enabled = false;
shadow.enabled = false;
};
animation = map mkAnimation [
{
name = "fadeLayersIn";
enable = false;
}
{
name = "layers";
duration = 4;
style = "popin";
}
];
exec-once = [
setupMonitors
"agsGreeter &> /tmp/ags-greetd.log; hyprctl dispatch exit"
];
};
};
};
};
# For accurate stack trace
_file = ./hyprland.nix;
}

View file

@ -0,0 +1,53 @@
{
config,
pkgs,
...
}: let
inherit (pkgs.lib) getExe;
cfg = config.roles.desktop;
hyprland =
config
.home-manager
.users
.${cfg.user}
.wayland
.windowManager
.hyprland
.finalPackage;
# Show Regreet on all monitors
dupeMonitors = pkgs.writeShellApplication {
name = "dupeMonitors";
runtimeInputs = [hyprland pkgs.jq];
text = ''
main="${cfg.mainMonitor}"
names="($(hyprctl -j monitors | jq -r '.[] .description'))"
if [[ "$main" == "null" ]]; then
main="''${names[0]}"
fi
for (( i=0; i<''${#names[@]}; i++ )); do
# shellcheck disable=SC2001
name=$(echo "''${names[$i]}" | sed 's/.*(\(.*\))/\1/')
# shellcheck disable=SC2001
desc=$(echo "''${names[$i]}" | sed 's/ (.*//')
if [[ "$name" != "$main" && "desc:$desc" != "$main" ]]; then
hyprctl keyword monitor "$name",preferred,auto,1,mirror,"$main"
fi
done
hyprctl dispatch focusmonitor "$main"
'';
};
# Check if user wants the greeter only on main monitor
in {
setupMonitors =
if (cfg.mainMonitor != "null" && !cfg.displayManager.duplicateScreen)
then "hyprctl dispatch focusmonitor ${cfg.mainMonitor}"
else getExe dupeMonitors;
}