84 lines
1.9 KiB
Nix
84 lines
1.9 KiB
Nix
# Media pack — players, image/video editing, screen capture.
|
|
#
|
|
# Migrated from packages.nix `multimedia` category. Runs the list through
|
|
# omni.lib.filterPackages so the omni.packages.exclude mechanism still
|
|
# applies — this is a desktop-bundle pack (omni-coupled by design), not
|
|
# one of the standalone-importable packs.
|
|
{ config, lib, pkgs, ... }:
|
|
let
|
|
cfg = config.omni.packs.media;
|
|
in
|
|
{
|
|
options.omni.packs.media.enable =
|
|
lib.mkEnableOption "Media pack (players, image/video editing, screen capture)";
|
|
|
|
config = lib.mkIf cfg.enable {
|
|
environment.systemPackages = config.omni.lib.filterPackages (
|
|
with pkgs;
|
|
[
|
|
# Audio
|
|
pipewire
|
|
pulseaudio
|
|
pavucontrol
|
|
easyeffects
|
|
spotify
|
|
spotifyd
|
|
cmus
|
|
mpd
|
|
ncmpcpp
|
|
|
|
# Video
|
|
mpv
|
|
vlc
|
|
obs-studio
|
|
kdePackages.kdenlive
|
|
handbrake
|
|
ffmpeg-full
|
|
|
|
# Images
|
|
imv
|
|
feh
|
|
gimp
|
|
inkscape
|
|
krita
|
|
imagemagick
|
|
graphicsmagick
|
|
drawio
|
|
|
|
# Image morphing (python + opencv + dlib for landmark-based morphing).
|
|
# Exposed as `morph-py` so it doesn't collide with the bare `python3`
|
|
# pulled in by the development category.
|
|
(writeShellScriptBin "morph-py" ''
|
|
exec ${
|
|
python3.withPackages (
|
|
ps: with ps; [
|
|
opencv4
|
|
dlib
|
|
face-recognition-models
|
|
numpy
|
|
scipy
|
|
]
|
|
)
|
|
}/bin/python3 "$@"
|
|
'')
|
|
|
|
# 3D / CAD — bare `openscad` is pinned to 2021.01 which no
|
|
# longer builds against current toolchains in nixpkgs-unstable.
|
|
openscad-unstable
|
|
|
|
# Screen capture
|
|
grim
|
|
slurp
|
|
wf-recorder
|
|
flameshot
|
|
peek
|
|
|
|
# PDF
|
|
zathura
|
|
evince
|
|
kdePackages.okular
|
|
mupdf
|
|
]
|
|
);
|
|
};
|
|
}
|