feat(media): add mpv and imv media viewers

new `modules/media.nix`: mpv (with mpv-gallery-view) for video/audio, imv for
images. imv key binds run per-file actions — copy path via `wl-copy`, rotate/
flip via `magick`, delete, open in gimp, show `mediainfo`. wallpaper via awww
plus a `setbg` wrapper (symlink to ~/.local/share/bg + live push); awww-daemon
and boot restore wired as hyprland exec-once. add mako as the notification
daemon backing the notify-send toasts.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-07-05 20:32:51 +02:00
parent 24b7930363
commit 1e163fe025
2 changed files with 71 additions and 1 deletions
+18 -1
View File
@@ -11,7 +11,7 @@ let
editor = "nvim";
in
{
imports = [ ./gpg.nix ];
imports = [ ./gpg.nix ./media.nix ];
home.sessionVariables = {
TERMINAL = terminal;
@@ -332,10 +332,27 @@ in
# Uses foot's default socket, which footclient also defaults to.
# Tradeoff: if the server dies, all foot windows die with it.
"foot --server"
# wallpaper (see modules/media.nix): start the awww daemon, then restore
# the persisted choice. awww keeps no state across restarts, so re-push
# the ~/.local/share/bg symlink if it exists.
"awww-daemon"
"sh -c '[ -e \"$HOME/.local/share/bg\" ] && awww img \"$HOME/.local/share/bg\"'"
];
};
};
# Notification daemon. notify-send clients (e.g. imv's info/delete toasts in
# modules/media.nix, gpg-agent errors) need a running server on the bus.
# Minimal to match the desktop: Nerd Font, no rounding, square border.
services.mako = {
enable = true;
settings = {
font = "JetBrainsMono Nerd Font 10";
border-radius = 0;
default-timeout = 5000;
};
};
programs.waybar = {
enable = true;
settings = {