nix/graphical/media.nix
2026-04-08 11:51:33 +10:00

46 lines
1.2 KiB
Nix

{
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"
];
})