{ pkgs, inputs, lib, ... }: let custom = inputs.self.packages.${pkgs.system}; sets = with pkgs; { writing = [ (apostrophe.override { texliveMedium = pkgs.emptyDirectory; }) libreoffice ]; drawing = [ pkgs.drawing gimp inkscape krita rnote ]; cli-utils = [ bat dua duf fzf git hyperfine lsd ripgrep wget xh ]; www = [ custom.ungoogled-chromium ]; gui-apps = with custom; [ amberol blackbox-high-refresh-rate cavalier denaro deja-dup dialect obfuscate fragments-remote tubefeeder wike celluloid easyeffects endeavour gnome-firmware-updater gnome-podcasts gnome.dconf-editor gnome.gnome-boxes gnome.gnome-sound-recorder gnome.gnome-tweaks gnome.nautilus-python jellyfin-media-player junction newsflash pavucontrol scrcpy vaults virt-manager warp ]; dev-tools = [ d-spy emblem gnome-builder sysprof custom.textpieces custom.git-remote-ipld custom.webfont-kit-generator ]; system = with pkgs.gnomeExtensions; [ appindicator caffeine gsconnect ]; }; in { environment.systemPackages = lib.flatten (builtins.attrValues sets); }