{ inputs, ... }: { flake.homeModules.nathan = { config, lib, pkgs, ... }: { imports = [ inputs.sops-nix.homeManagerModules.sops ]; options.homeconfig = with lib; { name = mkOption { type = with types; nullOr str; default = null; }; graphical = mkOption { type = with types; bool; default = true; }; standalone = mkOption { type = with types; bool; default = false; }; virtual-machines = mkOption { type = with types; bool; default = false; }; }; config = { homeconfig = { name = "nathan"; mpd.enable = lib.mkDefault true; calcurse.enable = lib.mkDefault true; git.enable = lib.mkDefault true; nh.enable = lib.mkDefault true; minimal = lib.mkDefault false; hyprland.enable = lib.mkDefault config.homeconfig.graphical; hyprlock.enable = lib.mkDefault config.homeconfig.hyprland.enable; wal.enable = lib.mkDefault config.homeconfig.graphical; #hyprpanel.enable = lib.mkDefault config.homeconfig.hyprland.enable; rofi.enable = lib.mkDefault config.homeconfig.hyprland.enable; firefox.enable = lib.mkDefault config.homeconfig.graphical; aurora.enable = lib.mkDefault config.homeconfig.hyprland.enable; }; home.username = lib.mkDefault config.homeconfig.name; home.homeDirectory = lib.mkDefault "/home/${config.home.username}"; home.stateVersion = "23.11"; home.pointerCursor = lib.mkIf config.homeconfig.graphical { gtk.enable = true; package = pkgs.bibata-cursors; name = "Bibata-Modern-Classic"; size = 16; }; dconf.settings = lib.mkIf config.homeconfig.virtual-machines { "org/virt-manager/virt-manager/connections" = { autoconnect = ["qemu:///system"]; uris = ["qemu:///system"]; }; }; gtk = lib.mkIf (config.homeconfig.graphical && config.homeconfig.hyprland.enable) { enable = true; theme.name = "Tokyonight-Dark"; theme.package = pkgs.tokyonight-gtk-theme; iconTheme.package = pkgs.rose-pine-icon-theme; iconTheme.name = "rose-pine-moon"; }; sops = { age.keyFile = "${config.home.homeDirectory}/.config/sops/age/keys.txt"; defaultSopsFile = ./secrets.yaml; defaultSopsFormat = "yaml"; #secrets."remoteBuildKey" = {}; }; services.mpris-proxy.enable = true; programs.ssh = { enable = true; matchBlocks = { "builder" = { hostname = "esotericbytes.com"; user = "remote-builder"; identityFile = "${config.home.homeDirectory}/.ssh/id_ed25519"; port = 22; }; "remote" = { hostname = "esotericbytes.com"; user = "nathan"; identityFile = "${config.home.homeDirectory}/.ssh/id_ed25519"; port = 22; }; }; }; }; }; }