{ pkgs, config, inputs, lib, ... }: let sets = with pkgs; rec { writing = [ apostrophe libreoffice ]; drawing = [ pkgs.drawing gimp inkscape krita xournalpp ]; cli-utils = [ bat dua duf fzf git hyperfine lsd ripgrep wget xh ]; www = [ ungoogled-chromium ]; gui-apps = with inputs.self.packages.x86_64-linux; [ obfuscate fragments-remote ] ++ [ (amberol.overrideAttrs (_: rec { version = "0.7.0"; src = pkgs.fetchFromGitLab { domain = "gitlab.gnome.org"; owner = "World"; repo = "amberol"; rev = version; hash = "sha256-cBHFyPqhgcFOeYqMhF1aX3XCGAtqEZpI7Mj7b78Etmo="; }; cargoDeps = pkgs.rustPlatform.fetchCargoTarball { inherit src; name = "amberol-${version}"; hash = "sha256-GaMJsIrTbhI1tmahEMlI1v5hmjw+tFEv9Wdne/kiYIA="; }; })) celluloid easyeffects gnome-firmware-updater gnome-podcasts gnome.dconf-editor gnome.gnome-boxes gnome.gnome-todo gnome.gnome-tweaks gnome.nautilus-python jellyfin-media-player lollypop pavucontrol scrcpy tilix virt-manager ]; dev-tools = [ bustle gnome-builder ]; system = with pkgs.gnomeExtensions; [ appindicator caffeine gsconnect ]; }; in { environment.systemPackages = lib.flatten (builtins.attrValues sets); }