{ ... }: { 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 (python314.withPackages (ps: with ps; [ gpustat numpy matplotlib scipy pandas pyaudio pyusb requests ])) cava android-tools neovim-remote zulu fastfetch ncmpcpp playerctl mpc ffmpeg ]; } (mkIf config.wayland.windowManager.hyprland.enable { nixpkgs.config = { allowUnfree = true; }; home.packages = with pkgs; [ grim slurp wl-clipboard xfce.thunar blueberry brightnessctl libdbusmenu-gtk3 ]; }) (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 ]; }) ]; }; }