{ lib, pkgs, config, osConfig, ... }: let userConfig = osConfig.host.users.eve; hardware = osConfig.host.hardware; in { config = { nixpkgs.config = { allowUnfree = true; }; # Packages that can be installed without any extra configuration # See https://search.nixos.org/packages for all options home.packages = lib.lists.optionals userConfig.isDesktopUser ( with pkgs; [ gnomeExtensions.dash-to-panel claude-code ] ); # Packages that need to be installed with some extra configuration # See https://home-manager-options.extranix.com/ for all options programs = lib.mkMerge [ { # Let Home Manager install and manage itself. home-manager.enable = true; } (lib.mkIf (config.user.isDesktopUser || config.user.isTerminalUser) { git = { enable = true; settings = { user.name = "Eve"; user.email = "evesnrobins@gmail.com"; init.defaultBranch = "main"; }; }; openssh = { enable = true; hostKeys = [ { type = "ed25519"; path = "${config.home.username}_${osConfig.networking.hostName}_ed25519"; } ]; }; }) (lib.mkIf config.user.isDesktopUser { vscode = { enable = true; package = pkgs.vscodium; }; firefox.enable = true; bitwarden.enable = true; discord.enable = true; makemkv.enable = true; signal-desktop-bin.enable = true; steam.enable = true; piper.enable = hardware.piperMouse.enable; krita.enable = true; ungoogled-chromium.enable = true; inkscape.enable = true; obsidian.enable = true; obs-studio.enable = true; kdenlive.enable = true; tor-browser.enable = true; olympus.enable = true; libreoffice.enable = true; claude-code.enable = osConfig.host.ai.enable; # Windows applications that we need to figure out how to install guild-wars-2.enable = false; vortex.enable = false; dungeon-draft.enable = false; vmware-workstation.enable = true; }) ]; }; }