{ lib, pkgs, ... }: let shellAliases = { ll = "ls -alh"; update-boot = "sudo nixos-rebuild boot --max-jobs 10 --build-host admin@10.0.1.18"; update-switch = "sudo nixos-rebuild switch --max-jobs 10"; update-flake = "nix flake update steamdeck-nixpkgs steamdeck-chaotic steamdeck-home-manager steamdeck-impermanence steamdeck-jovian steamdeck-lanzaboote steamdeck-nixos-hardware steamdeck-sops-nix steamdeck-steam-rom-manager --flake /etc/nixos"; nas-ssh = "ssh admin@10.0.1.18"; ducks = "du -cksh * | sort -hr | head -n 15"; }; gitAliases = { co = "checkout"; ci = "commit"; cia = "commit --amend"; s = "status"; st = "status"; b = "branch"; p = "pull --rebase"; pu = "push"; }; in { home.username = "deck"; home.homeDirectory = "/home/deck"; home.stateVersion = "23.11"; programs.home-manager.enable = true; sops = { age.keyFile = "/home/deck/.config/sops/age/keys.txt"; defaultSopsFile = "/etc/nixos/secrets/secrets.yaml"; validateSopsFiles = false; secrets = { "ssh-keys-public/deck" = { path = "/home/deck/.ssh/id_ed25519.pub"; mode = "0644"; }; "ssh-keys-private/deck" = { path = "/home/deck/.ssh/id_ed25519"; mode = "0600"; }; }; }; programs = { mangohud.enable = true; java.enable = true; zsh = { enable = true; enableCompletion = true; autosuggestion.enable = true; syntaxHighlighting.enable = true; shellAliases = shellAliases; oh-my-zsh = { enable = true; plugins = [ "git" ]; theme = "fishy"; }; }; git = { enable = true; userName = "mjallen18"; userEmail = "matt.l.jallen@gmail.com"; aliases = gitAliases; extraConfig = { credential.helper = "gnome-keyring"; }; }; steam-rom-manager = { enable = true; steamUsername = "mjallen18"; # Optional: override default paths if needed environmentVariables = { romsDirectory = "/home/deck/Emulation/roms"; steamDirectory = "/home/deck/.local/share/Steam"; }; emulators = { ryujinx.enable = true; dolphin-gamecube = { enable = true; package = pkgs.dolphin-emu; romFolder = "gc"; fileTypes = [ ".iso" ".ISO" ".gcm" ".GCM" ".ciso" ".CISO" "rvz" ]; extraArgs = "-b -e \"\${filePath}\""; }; pcsx2.enable = true; mgba.enable = true; "Non-SRM Shortcuts" = { enable = true; parserType = "Non-SRM Shortcuts"; extraArgs = ""; }; }; }; }; home.packages = with pkgs; [ age apple-cursor chromium colloid-icon-theme colloid-gtk-theme dolphin-emu fastfetch gnome-tweaks gnomeExtensions.appindicator gnomeExtensions.dash-to-dock gnomeExtensions.tiling-assistant heroic lm_sensors mission-center mgba nextcloud-client nixfmt-rfc-style prismlauncher protonup ryujinx-greemdev sops vesktop vmware-horizon-client vscode ]; dconf = { enable = true; settings = { "org/gnome/desktop/interface".clock-format = "12h"; "org/gnome/desktop/interface".color-scheme = "prefer-dark"; "org/gnome/desktop/interface".cursor-theme = lib.mkDefault "macOS"; "org/gnome/desktop/interface".enable-hot-corners = false; "org/gnome/desktop/interface".font-antialiasing = "grayscale"; "org/gnome/desktop/interface".font-hinting = "slight"; "org/gnome/desktop/interface".gtk-theme = lib.mkDefault "Colloid-Dark"; "org/gnome/desktop/interface".icon-theme = lib.mkDefault "Colloid-Dark"; "org/gnome/desktop/peripherals/mouse".accel-profile = "flat"; "org/gnome/desktop/peripherals/touchpad".two-finger-scrolling-enabled = true; "org/gnome/desktop/peripherals/touchpad".tap-to-click = true; "org/gnome/mutter".experimental-features = [ "scale-monitor-framebuffer" "variable-refresh-rate" ]; "org/gnome/tweaks".show-extensions-notice = false; "org/gnome/shell".enabled-extensions = [ "appindicatorsupport@rgcjonas.gmail.com" "user-theme@gnome-shell-extensions.gcampax.github.com" "tiling-assistant@leleat-on-github" "dash-to-dock@micxgx.gmail.com" ]; "org/gnome/shell/extensions/dash-to-panel".primary-monitor = 1; "org/gnome/shell/extensions/dash-to-panel".multi-monitors = false; "org/gnome/shell/extensions/user-theme".name = lib.mkDefault "Colloid-Dark"; "org/gtk/settings/file-chooser".clock-format = "12h"; }; }; }