From 15ba326af315c99adab37e3658d4d10a9d2d90ff Mon Sep 17 00:00:00 2001 From: reidlab Date: Tue, 13 Jan 2026 07:20:25 -0800 Subject: [PATCH] thumbnailing --- modules/desktop/default.nix | 1 + modules/desktop/thumbnailers.nix | 33 ++++++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 modules/desktop/thumbnailers.nix diff --git a/modules/desktop/default.nix b/modules/desktop/default.nix index 4d0e019..54d9ccf 100644 --- a/modules/desktop/default.nix +++ b/modules/desktop/default.nix @@ -15,6 +15,7 @@ in { { modules.desktop.fonts.enable = true; modules.desktop.fonts.baseFonts = true; + modules.desktop.thumbnailers.enable = true; # enable networking networking.networkmanager.enable = true; diff --git a/modules/desktop/thumbnailers.nix b/modules/desktop/thumbnailers.nix new file mode 100644 index 0000000..e81a4d6 --- /dev/null +++ b/modules/desktop/thumbnailers.nix @@ -0,0 +1,33 @@ +{ lib, config, pkgs, ... }: + +with lib; +let + cfg = config.modules.desktop.thumbnailers; +in { + options.modules.desktop.thumbnailers = { + enable = mkEnableOption "Enable a collection of thumbnailers"; + }; + + config = mkIf cfg.enable { + hm.home.packages = let + mkThumbnailer = { name, mime, exec }: pkgs.writeTextFile { + name = "${name}-thumbnailer"; + destination = "/share/thumbnailers/${name}.thumbnailer"; + text = '' + [Thumbnailer Entry] + Exec=${exec} + MimeType=${mime} + ''; + }; + in [ + # videos + pkgs.ffmpegthumbnailer + # krita + (mkThumbnailer { + name = "kra"; + mime = "application/x-krita"; + exec = "sh -c \"${pkgs.unzip}/bin/unzip -p %i preview.png > %o\""; + }) + ]; + }; +}