{ pkgs, ... }: {
  imports = [
    ./image/config.nix
    ./picker/config.nix
  ];
  programs.neovim = {
    plugins = [{
      plugin = pkgs.vimPlugins.snacks-nvim;
      type = "lua";
      config = /*lua*/ ''
        require("snacks").setup({
          ${import ./image/lua.nix}
          ${import ./scroll/lua.nix}
          ${import ./picker/lua.nix}
        })

        -- by hermes + claude opus 4.6
        vim.api.nvim_create_user_command("SnacksToggleImage", function()
          local cfg = Snacks.image.config
          cfg.enabled = not cfg.enabled
          if not cfg.enabled then
            Snacks.image.placement.clean()
            -- Stop inline/doc autocmds so images don't get re-created
            for _, buf in ipairs(vim.api.nvim_list_bufs()) do
              if vim.b[buf].snacks_image_attached then
                pcall(vim.api.nvim_del_augroup_by_name, "snacks.image.inline." .. buf)
                pcall(vim.api.nvim_del_augroup_by_name, "snacks.image.doc." .. buf)
                vim.b[buf].snacks_image_attached = nil
              end
            end
          else
            -- Re-attach doc images for current buffer
            Snacks.image.doc.attach(vim.api.nvim_get_current_buf())
          end
          vim.notify("snacks.image: " .. (cfg.enabled and "enabled" or "disabled"))
        end, {})
      '';
    }];
  };
}