# GUI file manager — Thunar (lightweight GTK, Stylix-themed) plus the
# backend services a standalone compositor needs for it to work fully:
# gvfs (trash/mount/network), tumbler (thumbnails), udisks2 (removable
# media — also what yazi's mount plugin drives). The keyboard-driven TUI
# flagship is yazi (modules/home/yazi.nix); this is the point-and-click
# half and the XDG handler for "open folder" / "show in files".
{ config, lib, pkgs, ... }:

let
  cfg = config.nomarchy.system;
in
{
  config = lib.mkIf cfg.fileManager.enable {
    programs.thunar = {
      enable = lib.mkDefault true;
      plugins = with pkgs; [
        thunar-archive-plugin    # create/extract archives from the context menu
        thunar-volman            # auto-manage removable drives/media
        thunar-media-tags-plugin # rename/inspect audio by tags
      ];
    };

    services.gvfs.enable = lib.mkDefault true;    # trash, mounts, network shares
    services.tumbler.enable = lib.mkDefault true; # thumbnail generation
    services.udisks2.enable = lib.mkDefault true; # mount/unmount removable media

    environment.systemPackages = with pkgs; [
      file-roller       # GUI archive manager (backend for thunar-archive-plugin)
      ffmpegthumbnailer # video thumbnails (Thunar + yazi)
      libgsf            # ODF thumbnails
      poppler-utils     # PDF thumbnails / pdftoppm (yazi PDF preview too)
      xfce4-exo         # "Open Terminal Here" and default-app associations
      shared-mime-info  # MIME database
    ];
  };
}
