{ config, pkgs, ... }: let ui = config.rice.roles config.rice.palette.hex; imvConfig = pkgs.writeText "imv-config" '' [options] background=${ui.bg} overlay_font=${config.rice.fonts.sans.name}:${toString config.rice.fonts.sans.size} overlay_text_color=${ui.fg} overlay_background_color=${ui.surface} ''; imvWrapped = pkgs.symlinkJoin { name = "imv"; paths = [ pkgs.imv ]; nativeBuildInputs = [ pkgs.makeWrapper ]; postBuild = '' wrapProgram $out/bin/imv \ --set imv_config "${imvConfig}" ''; }; in with pkgs; (scope "apps" { videoPlayer = mpv; imageViewer = imvWrapped; musicPlayer = strawberry; streamPlayer = config.programs.pwas.airdrome.package; soulSeek = nicotine-plus; }) // (scope "programs.pwas.airdrome" { name = "Airdrome"; url = "https://listen.lobotomise.me"; icon = builtins.fetchurl { name = "airdrome.svg"; url = "https://raw.githubusercontent.com/JPGuillemin/Airdrome/refs/heads/master/public/icon.svg"; sha256 = "sha256:1chmza1cbfg028ilz4dqg583s3121iw4fhc136v9f0zf44h76y7m"; }; description = "Airdrome, a Navidrome client"; categories = [ "Music" "Network" ]; })