{ ... }: { flake.homeModules.nathan = { config, lib, pkgs, ... }: { options.olympus.packageSet = lib.mkOption { type = lib.types.str; default = "full"; }; config = with lib; mkMerge [ { home.packages = with pkgs; [ kjv openssh sops dig #toybox btop zip unzip rsync curl cava android-tools neovim-remote zulu fastfetch ncmpcpp playerctl mpc ffmpeg ]; } (mkIf config.wayland.windowManager.hyprland.enable { home.packages = with pkgs; [ grim slurp wl-clipboard xfce.thunar blueberry brightnessctl libdbusmenu-gtk3 ]; }) (mkIf (pkgs.stdenv.hostPlatform == "x86_64-linux") { home.packages = with pkgs; [ (python314.withPackages (ps: with ps; [ gpustat numpy matplotlib scipy pandas pyaudio pyusb requests ])) ]; }) (mkIf (config.olympus.packageSet == "full") { nixpkgs.config = { allowUnfree = true; }; home.packages = with pkgs; [ handbrake quickemu bottles lmms #unfree { geogebra spotify discord #} rustdesk-flutter mpv vlc pavucontrol rpi-imager tigervnc keepassxc localsend #3D modeling/printing blender freecad-wayland cura-appimage #productivity libreoffice #games prismlauncher ]; }) ]; }; }