{ config, pkgs, nixvim, ... }: let programs = [ "git" "alacritty" "firefox" "nixvim" "hyprlock" "waybar" "zsh" "btop" "wofi" "password-store" "gpg" "ssh" ]; services = [ "syncthing" "hyprpaper" "network-manager-applet" "gpg-agent" ]; packages = [ pkgs.networkmanagerapplet pkgs.pavucontrol pkgs.wl-clipboard pkgs.virt-manager ]; in { users.n8 = { programs = builtins.listToAttrs ( map (n: { name = n; value = if builtins.pathExists ./${n}/default.nix then (import ./${n} { inherit pkgs; home = config.home-manager.users.n8.home; }) else { enable = true; }; }) programs ); services = builtins.listToAttrs ( map (n: { name = n; value = if builtins.pathExists ./${n}/default.nix then (import ./${n} { inherit pkgs; }) else { enable = true; }; }) services ); wayland.windowManager.hyprland = import ./hyprland; home.packages = packages; home.pointerCursor = { gtk.enable = true; package = pkgs.bibata-cursors; name = "Bibata-Modern-Classic"; size = 24; }; gtk = { enable = true; theme = { package = pkgs.gruvbox-dark-gtk; name = "gruvbox-dark"; }; iconTheme = { package = pkgs.gnome.adwaita-icon-theme; name = "adwaita-icon-theme"; }; font = { name = "SauceCodePro NF"; size = 11; }; }; home.stateVersion = "24.05"; }; backupFileExtension = "backup"; sharedModules = [ nixvim.homeManagerModules.nixvim ]; }