MCPcopy Index your code
hub / github.com/MTTamurex/MTT-File-Manager-RUST

github.com/MTTamurex/MTT-File-Manager-RUST @v.0.1.5

Chat with this repo
repository ↗ · DeepWiki ↗ · release v.0.1.5 ↗ · + Follow
3,839 symbols 13,428 edges 413 files 1,271 documented · 33% updated 3d agov.0.1.5 · 2026-07-03★ 50
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

MTT File Manager

Native Windows file manager built in Rust with a modern UI, archive browsing, advanced media preview, and Windows integration.

print

Key Features

Interface & Navigation

  • Dark / Light theme — Toggle between dark and light mode in Settings > Appearance; persisted in SQLite, applied to all windows including image, PDF, and text viewers with native title bar support via DWM
  • Dual panel (split view) — Side-by-side file browsing with independent left and right panels; toggle via the toolbar button. Each panel maintains its own navigation history, sort order, view mode, and selection. File copy/move operations default to the opposite panel as the destination
  • Tabbed navigation — Multiple tabs with independent history
  • Grid and List views — Adjustable thumbnail sizes
  • Smart address bar — Direct path input with breadcrumbs
  • Sidebar — Quick access to drives, libraries, Cloud Drives, and Recycle Bin
  • Cloud Drives — Detects Windows Cloud Files sync roots registered with Explorer and shows them in a dedicated sidebar section; tested with OneDrive, Proton Drive and Google Drive
  • Quick Access — Pin folders via right-click or drag-and-drop; reorder via drag; persistent storage
  • Tags — Assign persistent color tags to files and folders, browse dedicated Tag views from the sidebar, and manage custom tags from Settings
  • Archive navigation — Open supported compressed files like folders and browse their contents directly (.zip, .7z, .rar, .tar, .tar.gz, .tgz, .tar.bz2, .tbz2, .tar.xz, .txz, .tar.zst, .tzst, .gz, .gzip)

Media Preview

  • Integrated preview — View files without leaving the app
  • Dedicated image viewer — Separate process with a bounded sliding-window GPU texture cache, hidden-first startup, and multi-threaded decoding
  • Text viewer — Separate process for plain text, code, logs, and markup files using the same lightweight viewer runtime as the image/PDF viewers
  • Video player — Standalone mpv-based player with D3D11 GPU pipeline
  • Audio playback & metadata — Audio-only files open in the standalone mpv player with real-time waveform visualization; the preview panel extracts codec, bitrate, channels, sample rate, and music tags
  • PDF viewer — Native pdfium-based viewer with bounded texture caching and asynchronous rendering in a separate process
  • Smart thumbnails — Multi-stage generation: image crate → WIC → Shell API → Media Foundation
  • Animated GIF playback — Animated preview on details panel

Global Search

  • Instant search — Query an in-memory index supporting millions of files
  • Hybrid volume indexing — NTFS/ReFS via USN Journal; non-USN volumes via full-tree scan
  • Background service — Dedicated Windows Service for continuous indexing
  • Spotlight-style overlay — Activated by Ctrl+Shift+F
  • Paginated results — Offset/limit pagination with incremental loading
  • Tag filters — Narrow global search results to any tagged item or to specific tags

Disclaimer: The Global Search feature reads the NTFS/ReFS USN Journal and MFT to build its index. Because accessing these system structures requires elevated privileges, the installer registers a dedicated Windows Service that runs with administrative rights. This is the only component of MTT File Manager that requires elevated installation privileges.

File Operations

  • Core operations — Copy, cut, paste, rename, delete
  • Batch rename — Select 2+ files and press F2 to open the batch rename modal; configure a shared base name, number position (suffix/prefix), separator style (parentheses, underscore, dash, space, or none), and start/step/padding; drag-to-reorder; live preview table with per-row conflict detection
  • Native context menu — Full Windows Shell context menu integration
  • Tag assignment — Add, remove, or switch file/folder tags from the context menu; tags are preserved on supported renames/moves and cleared when files are deleted
  • Recycle Bin — Browse, restore, and permanently delete
  • Cloud Files support — Sync status badges for cloud-only, locally available, syncing, and pinned files; supports Windows Cloud Files actions such as "Always keep on this device" and "Free up space"
  • ISO mounting — Mount ISO files as virtual drives

Performance & Cache

  • Multi-level cache — Memory, disk (SQLite), and GPU textures
  • Tag view cache — Persistent metadata cache and paged loading make large Tag views appear quickly without preloading thumbnails or increasing GPU texture cache limits
  • Async workers — Background processing keeps UI responsive
  • UI virtualization — Efficient rendering of large directories
  • Per-folder monitoring — Default notify crate watcher with opt-in drive-wide ReadDirectoryChangesW

Graphics Backend

The app supports multiple rendering backends, selectable in Settings > General > GPU Backend (requires app restart):

Wgpu — Vulkan (Default)

  • Default backend for the main window on Windows
  • Best observed scrolling and thumbnail-upload performance in large media folders
  • Uses Vulkan through wgpu with aggressive thumbnail memory cleanup tuned for this backend
  • Auto mode prioritizes Vulkan first, then falls back to OpenGL and DirectX 12 if Vulkan is unavailable

Experimental Backends — OpenGL / DirectX 12

  • Available for compatibility testing from Settings > General > GPU Backend
  • OpenGL options are fallback/legacy paths and may show occasional stutter during grid scrolling because texture uploads can be synchronous on the CPU thread
  • Known limitation DX12: because wgpu creates the swapchain with FLIP_DISCARD, a brief black frame may flash during the minimize animation on Windows. This is a documented behavior of the wgpu DX12 backend and does not affect functionality.
  • DX12 and OpenGL are currently treated as experimental compared with the Vulkan default

Prerequisites

  • Windows 10 or newer, 64-bit — The installer targets x64-compatible Windows systems.
  • Microsoft Visual C++ Redistributable 2015-2022 (x64) — Required by the native runtime dependencies. The official Microsoft installer is available at: https://aka.ms/vs/17/release/vc_redist.x64.exe
  • Administrator permission during installation — Required to install and start the Global Search Windows Service (mtt-search-service.exe).
  • Video codecs for extended thumbnail support — Optional, but recommended for formats not supported by Windows out of the box. See Video Thumbnail Codecs.

The main file manager does not need to run as administrator for normal file browsing and file operations. Elevated permission is needed for the search service because Global Search indexes NTFS/ReFS volumes using low-level Windows filesystem data such as the USN Journal and MFT. Access to those structures is restricted by Windows, so the installer registers a dedicated Windows Service with the required privileges instead of requiring the whole application to run elevated.

Usage

Tags

  • Assign tags — Select one or more files/folders, open the context menu, and use the Tag submenu to apply or remove color tags.
  • Browse by tag — Use the Tags section in the sidebar to open a virtual Tag view containing every item assigned to that tag.
  • Manage tags — Open Settings > Tags to create, rename, recolor, delete tags, and toggle whether the Tags section is shown in the sidebar.
  • Search with tags — In Global Search, use the Tag filter to show all results, any tagged item, or items matching selected tags.
  • Performance behavior — Tag views load in pages and use cached file metadata for fast first paint while thumbnails remain loaded only for visible items.

Keyboard Shortcuts

Some app-level shortcuts are configurable in Settings > Keyboard Shortcuts. Standard file and folder shortcuts remain fixed.

Shortcut Action
Ctrl+T New tab
Ctrl+W Close tab
Ctrl+Tab Next tab
Ctrl+Shift+Tab Previous tab
Ctrl+C / Ctrl+V Copy / Paste
Ctrl+X Cut
Delete Move to Recycle Bin
Shift+Delete Permanent delete
F2 Rename (single file) / Batch Rename modal (2+ files selected)
F5 Reload folder
Ctrl+Shift+F Global search
Ctrl+L Focus address bar
Ctrl+Shift+N New folder
Ctrl+Mouse Wheel Adjust thumbnail size
Alt+Enter Properties
Space Video Preview / Open file with internal viewer (Images,PDF,Text)

Technologies

Category Technology Version Purpose
Language Rust Edition 2021 Performance and safety
GUI eframe/egui 0.31 Modern immediate-mode GUI (features: persistence, wgpu, glow)
GPU Backend (Default) wgpu Vulkan via eframe 24.x Main window uses Vulkan by default for best thumbnail/grid performance; Auto falls back to OpenGL/DX12 if needed
GPU Backend (Experimental) OpenGL / DirectX 12 via eframe via eframe / 24.x Compatibility backends available from Settings; requires app restart
Windows API windows-rs 0.61.0 Native Windows integration
Video libmpv2 5.0.3 High-performance video playback
PDF pdfium (pdfium-render) 0.8.37 Native PDF rendering (requires pdfium.dll)
Database SQLite (rusqlite) 0.32 Reliable persistence
Images image crate 0.25 Image processing
Archives zip + sevenz-rust + tar + flate2/bzip2/xz2/zstd 2 / 0.6 / 0.4 / 1 / 0.5 / 0.1 / 0.13 Native archive handling for ZIP, 7z, TAR, and compressed TAR variants
RAR unrar 0.5 Native RAR handling via the upstream UnRAR source
Parallelism rayon 1.10 Parallel processing
IPC Named Pipes + bincode 1.3 App ↔ search service communication
Service windows-service 0.7 Background indexing service
i18n rust-i18n 3 Multi-language support (en, pt-BR)

Runtime Dependencies

  • libmpv-2.dll — Required for video playback
  • pdfium.dll — Required for PDF viewer
  • Video codecs — Required for video thumbnail extraction (see Video Thumbnail Codecs below)

Diagnostic Mode Privacy Notes

  • Settings > Diagnostics writes a privacy-filtered diagnostic file intended for technical troubleshooting with data minimization by design.
  • The diagnostic file is meant to keep only technical information relevant to application behavior.
  • File names, folder names, full paths, search text, and other sensitive or private user identifiers should not be exposed in this artifact. The log file is in plain text, so you can check it yourself to see all info collected and decied for yourself if you want to share or not.
  • Nothing is sent automatically outside the application. The diagnostic file stays local unless the user chooses to share it.
  • The feature auto-disables after 24 hours and keeps only the latest 10 MiB of filtered diagnostic events.
  • This is a technical privacy measure for minimization and safer troubleshooting. It is not a standalone legal certification of LGPD or any other regulatory compliance.

Video Thumbnail Codecs

The thumbnail pipeline uses 3 Windows APIs for video files: Shell API (Stage 3), IThumbnailCache (Stage 4), and Media Foundation (Stage 5). All three require video codecs to be registered on the system.

What works out of the box (Windows 10/11)

  • MP4 (H.264/AVC), WMV, AVI — native Windows codecs

What requires installation

Format Without codecs With K-Lite Codec Pack
MP4 H.264 ✅ Works ✅ Works
MP4 HEVC/H.265 ❌ Fails ✅ Works
MKV (any codec) ❌ Fails ✅ Works
WEBM VP9/AV1 ❌ Fails ✅ Works
FLV ❌ Fails ✅ Works

Recommended: K-Lite Codec Pack

Download K-Lite Codec Pack (Standard) — includes LAV Filters which register: - Thumbnail handlers for Windows Shell (enables Stages 3 and 4) - Media Foundation decoders (enables Stage 5) - Support for HEVC/H.265, VP9, AV1, MKV, WEBM, FLV, and more

Note: Without the appropriate codecs installed, all video thumbnail stages will fail silently and the file will display a generic icon instead.

Credits

This project includes and builds upon work from the following projects:

  • ModernH, by Harkesh Bhatia. Our OSC file originated from this project and is used here with small modifications.
  • RTX HDR / RTX VSR toggle gist, by anthonybaldwin. This gist served as an early development reference while experimenting with RTX HDR / RTX VSR behavior in mpv; the current repository implementation has since been reworked independently.

License

Except where otherwise noted, the original code and documentation authored for this repository are licensed under the Apache License, Version 2.0. See the top-level LICENSE and NOTICE files.

Apache-2.0 was chosen because it fits the current Rust stack well and gives a clear attribution baseline: anyone redistributing the Apache-licensed portions of this project must preserve the copyright notice, the license text, and any applicable NOTICE entries. In practice, this lets the project require retention of legal attribution, but it does not force public branding, UI credits, or endorsement for every downstream project.

This repository also contains or redistributes third-party components that remain under their own licenses and are not relicensed under Apache-2.0. Key examples include:

  • `mpv_ui/portable_config/scr

Extension points exported contracts — how you extend this code

ItemSlotOperations (Interface)
Trait for operations needed to render an item slot [3 implementers]
src/ui/components/item_slot/mod.rs
OptionExt (Interface)
Extension trait to convert `Option ` into `AppResult ` with context. [1 implementers]
src/domain/errors.rs
ContextMenuOperations (Interface)
Operations that can be performed from context menu [1 implementers]
src/ui/context_menu.rs
ResultExt (Interface)
Extension trait to map generic `Result ` into `AppResult `. [1 implementers]
src/domain/errors.rs
GridViewOperations (Interface)
Operations that can be performed from grid view [1 implementers]
src/ui/views/grid_view/mod.rs
ListViewOperations (Interface)
Operations that can be performed from list view [1 implementers]
src/ui/views/list_view/mod.rs
NavigationOperations (Interface)
Navigation operations trait that can be implemented by the main app
src/ui/navigation.rs

Core symbols most depended-on inside this repo

clone
called by 1185
src/infrastructure/windows/taskbar_minimize.rs
len
called by 511
src/infrastructure/directory_dirty_registry.rs
iter
called by 465
crates/mtt-search-service/src/record_store.rs
is_empty
called by 398
src/application/notification.rs
get
called by 281
src/app/shortcuts.rs
ok
called by 257
src/infrastructure/onedrive/mod.rs
insert
called by 250
crates/mtt-search-service/src/name_arena.rs
label
called by 236
src/app/shortcuts.rs

Shape

Function 1,923
Method 1,484
Class 317
Enum 107
Interface 8

Languages

Rust100%

Modules by API surface

src/ui/cache.rs76 symbols
src/infrastructure/diagnostic_logger.rs72 symbols
src/infrastructure/onedrive/mod.rs56 symbols
src/app/state/helpers.rs54 symbols
src/app/shortcuts.rs52 symbols
src/ui/components/media_preview.rs51 symbols
crates/mtt-search-service/src/file_index.rs49 symbols
src/infrastructure/windows/file_flags.rs43 symbols
src/pdf_viewer/render_worker.rs42 symbols
src/workers/thumbnail/queue.rs40 symbols
crates/mtt-search-service/src/mft_reader.rs40 symbols
src/image_viewer/loader.rs39 symbols

For agents

$ claude mcp add MTT-File-Manager-RUST \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page