项目仍处于很早期的 alpha 阶段,可能存在 bug 或缺失功能;源码构建需 Qt6 私有头文件与 qtdeclarative、qtsvg、qtwayland 等依赖;MTP、归档、缩略图、磁盘挂载、管理员操作等需额外安装 kio-extras、7zip、udisks2、ffmpegthumbnailer、polkit 等可选运行时依赖
loaf-fm
m-uvexMIT活跃维护用 Rust 和 QML 写的 Linux 文件管理器,界面采用 Material Design 3 风格,启动快、操作流畅,适合想要轻量又好看桌面文件管理体验的用户。
A beautiful and fast rust-based material 3e file manager for linux.
curl -sSL https://raw.githubusercontent.com/m-uvex/loaf-fm/main/install.sh | bashREADME 未说明具体硬件要求;仅支持 Linux,低电量或低配硬件下可启用低功耗模式关闭动画、透明与模糊效果
用 Rust 与 Qt6/QML 打造的 Material 3 风格 Linux 文件管理器,替代老旧拥挤的文件管理器
用 Rust 和 QML 写的 Linux 文件管理器,界面采用 Material Design 3 风格,启动快、操作流畅,适合想要轻量又好看桌面文件管理体验的用户。
核心能力
- Rust 后端配合硬件加速,实现快速目录导航与低内存占用
- 支持浏览器式标签页与 F3 双栏分屏视图
- 按空格键 Quick Look 预览图片、视频、音频和文档
- 内置归档引擎,可直接浏览、解压和压缩 zip、tar、7z 等格式
- 支持 SMB、WebDAV 网络存储与局域网 P2P 链接分享文件
容易踩的坑
- v0.3.0Loaf v0.3.0最新正式版2026-11-08 · 2026-11-08 09:16 UTC
Loaf v0.3.0 Release Notes
Loaf v0.3.0 is our biggest release yet, adding full WebDAV cloud storage, XDG Desktop Portal file chooser integration, connected Devices & Android MTP phone transfers, a completely modular Material 3 Settings interface, and extensive performance and memory optimizations across startup, directory scanning, and scrolling.
🌟 Highlights & Major Features
🌐 WebDAV Cloud Storage & Unified Network Drives (#101)
Expand your storage beyond local disks and SMB. Loaf now provides first-class support for WebDAV servers alongside SMB/CIFS:
- Nextcloud, ownCloud & Apache: Connect seamlessly via
dav://or securedavs://with custom ports, remote paths, and system keyring authentication. - Unified Network Drives Engine: Both SMB and WebDAV share unified credential storage via FreeDesktop Secret Service (
libsecret), automatic mount detection, and sidebar navigation. - Rebuilt Network Settings Page: Clean Saved Drives group with one-click connect/disconnect, inline renaming, and full drive configuration without protocol clutter.
- Automatic SMB Discovery (#93): Zero-configuration local network scanning via mDNS/Avahi, NetBIOS, and WS-Discovery with a dedicated auto-discovery card and live scan toggle.
📱 Devices Sidebar & Android / Phone MTP Support (#70)
Connect smartphones, cameras, and external drives without opening terminal emulators or mounting utilities:
- Devices Sidebar Navigation: Dedicated section in the sidebar listing partitions, removable USB disks, and connected mobile devices.
- Android / Phone Transfers via MTP: Full
mtp://address support with asynchronous browsing, copy/cut/paste, deletion, and file previews. - Automatic Mount & Eject Controls: One-click mount on access, safe unmount, and eject actions directly from drive context menus.
🖥️ Native XDG Desktop Portal File Chooser (#89)
Loaf can now serve as your system-wide file dialog across all Flatpak and desktop applications:
loaf --portal: Native Freedesktop portal file chooser backend (org.freedesktop.impl.portal.FileChooser).- Open files, save documents, and pick folders directly through Loaf's expressive Material 3 interface instead of generic fallback file pickers.
🎨 Modular Material 3 Settings & Customization
The settings view has been completely re-architected into modular, responsive category tabs:
- Category Tabs: Clean navigation between Interface, Behavior, Accessibility, Experimental, Share, Network, and About.
- Collapsible Setting Cards: Grouped cards with inline Phosphor icons, clean toggles, sliders, and segmented pills.
- Theme Palettes & Translucency: Derives live palettes from your wallpaper or select curated themes (Catppuccin, Nord, Tokyo Night, Gruvbox, Rosé Pine, Loaf Amber, Loaf Violet). Sliders for window background opacity (0% to 100%) and panel backing blur.
- Custom Icon Themes (#77): Switch between Phosphor icons, system desktop theme, GNOME Adwaita, or any installed custom icon theme (Papirus, WhiteSur, Breeze).
- Customizable Top Bar & Menus: Configure toolbar actions, new tab/window button visibility, and breadcrumb chips vs text-only path bar.
⚡ Performance, Startup & Scrolling Overhaul (#91, #80)
Extensive profiling and benchmarking produced massive reductions in latency and CPU usage:
- Lighter Startup & Memory: Deferred loading for Settings and This PC views; memory footprint dropped by over 25%.
- Recycled Grid & List Delegates: Reusable view delegates eliminate stutter and spring thrashing during rapid mouse wheel navigation.
- Sharp Cached Thumbnails: Direct
/tilecropping and rounding inside the image provider eliminates duplicate offscreen layers andMultiEffectoverhea
- Nextcloud, ownCloud & Apache: Connect seamlessly via
- v0.2.1Loaf v0.2.12026-10-27 · 2026-10-27 19:00 UTC
查看更新说明
Follow-up patch to v0.2.0 focused entirely on fixing installation and packaging. Previously, packages and install methods were hit-or-miss across distros because builds were compiled on a single NixOS machine, causing compatibility headaches and
/nix/storepath errors elsewhere.What's Fixed
🔄 Automated CI/CD Builds
All packaging now runs on standard GitHub Actions Ubuntu workers instead of a local NixOS machine. This eliminates environment-specific glibc, Qt, and
/nix/storepath errors across distros. New releases are automatically built and published when a version tag is pushed.📦 Rebuilt Release Packages
Every artifact on this release is compiled fresh against standard Ubuntu 24.04 libraries:
- Debian / Ubuntu:
.debwith Qt6 dependencies correctly declared - Fedora / RHEL:
.rpminstalled to/usr(no more/nix/store) - Arch:
.pkg.tar.zst - Universal: portable
.tar.gzand standalone.AppImage - SHA256SUMS checksums for verification
🔧 Overhauled Installer
The
curl | bashinstaller was rewritten:- Removed the interactive
gumdependency that could hang on piped or non-TTY installs - Visible download progress instead of silent background fetches
- New flags:
--appimage,--tarball,--update,--uninstall,--try - Clean NixOS detection with helpful instructions instead of broken installs
📜 Legal / Compliance (#61)
- Added MIT LICENSE
- Added THIRD-PARTY-LICENSES.md
- Proper license metadata in all packaging files
📥 Arch User Repository
Loaf is now available on the AUR as
loaf-fm:yay -S loaf-fmIncluded Changes
- Show non-file GTK bookmarks in sidebar (#44)
- Rename
nativecontext property to build with Qt 6.8 (#56) - Add new tab and window toolbar buttons (#59)
- Full packaging, CI, and installer overhaul
Looking Ahead — v0.3.0
Work is underway to expand distribution significantly: Flathub, native APT and DNF repositories, upstream nixpkgs support, and automated nightly releases.
Thanks for your patience while we smoothed this out — and let us know if you run into any remaining packaging bugs!
Full announcement: https://github.com/m-uvex/loaf-fm/discussions/62
- Debian / Ubuntu:
- v0.2.0Loaf v0.2.02026-10-25 · 2026-10-25 23:08 UTC
查看更新说明
Loaf v0.2.0 Release Notes
Loaf v0.2.0 is a major architectural and feature release, rewriting core engine subsystems into modular, high-performance components while introducing network shares, peer-to-peer file sharing, tabs, split views, and rich desktop file operations.
🌟 Highlights & Major Features
🌐 SMB / CIFS Network Storage Support
Connect to remote Windows network shares and SMB servers directly from Loaf:
- SMB URI & Server Connection: Navigate and connect directly to
smb://<server>/<share>or browse network locations. - Named SMB Profile Manager: Create, edit, and manage friendly aliases/profiles for network shares directly in Settings.
- Secure Keyring Authentication: Secure credential storage using the system secret service / FreeDesktop keyring (
libsecret/secret-tool) with guest fallback options. - Remote Browsing & Operations: Seamless remote folder navigation, file operations, and mount handling.
🔗 Peer-to-Peer File Sharing via Link
Share any file or folder instantly from your machine without uploading to third-party file locker hosts:
- Instant Cloudflare Tunnel: Spawns an on-demand, encrypted Cloudflare tunnel straight to your machine.
- On-the-fly Compression: Select between direct streaming or instant archiving in
.zip,.tar.gz, or.7z. - Security & Access Controls: Optional password encryption, customizable expiration timers, and bandwidth rate-limiting controls.
- Share Manager: Dedicated management interface to track active shares and cancel tunnels at any moment.
🗂️ Tabs & Dual Split View
- Tabbed Browsing (
Ctrl+T/Ctrl+W): Open multiple directories in fluid tabs with session restoration on next launch. - Dual Container Split View (
F3): Side-by-side file panes allowing concurrent management, comparison, and cross-pane drag-and-drop operations. - This PC & Settings Routing: In-tab integration for system settings and storage dashboards.
⚡ Modular Multithreaded Engine & Async Thumbnails
- Modular Rust Architecture: Split the monolithic bridge into purpose-built modules (
pane.rs,core.rs,fsops.rs,trash.rs,archive.rs,watcher.rs,search.rs,apps.rs,xdg.rs,drives.rs,smb.rs,share.rs). - Async C++ & FreeDesktop Thumbnailing: Background thumbnail generation for images, video frames (
ffmpegthumbnailer), PDFs (evince-thumbnailer), and fonts. - Inotify Live Watchers: Incremental folder diffing that updates only changed items instead of reloading full lists.
🛠️ File Operations, Batch Renamer & Quick Look
- Batch Multi-File Renaming (
F2with multiple items): Pattern search/replace and sequential numbering dialog. - Quick Look (
Space): Instant modal preview with video playback, PDF display, image zooming, and archive directory inspection. - Conflict Resolution Dialog: Visual side-by-side size/date comparison with overwrite, auto-rename, skip, and replace-all actions.
- Direct Symlink Dialog & Context Action: Create relative or absolute symbolic links with a dedicated dialog.
- Archive Navigation: Directly browse into archive files without extracting them first.
📦 Packaging & Installation
Official Interactive Installer
curl -sSL https://raw.githubusercontent.com/m-uvex/loaf-fm/main/install.sh | bashManual Packages
- AppImage:
Loaf-v0.2.0-x86_64.AppImage - Debian / Ubuntu:
loaf_0.2.0_amd64.deb - Arch Linux:
loaf-0.2.0-1-x86_64.pkg.tar.zst - Fedora / RHEL / openSUSE:
loaf-0.2.0-1.fc44.x86_64.rpm - Portable Tarball:
loaf-v0.2.0-linux-x86_64.tar.gz - Nix Flake:
nix run github:m-uvex/loaf-fm
- SMB URI & Server Connection: Navigate and connect directly to
- v0.1.0Loaf v0.1.02026-10-18 · 2026-10-18 02:21 UTC
查看更新说明
🍞 Loaf v0.1.0 - Initial Release
A beautiful and fast Rust-based Material 3 Expressive file manager for Linux.
✨ Highlights
- Material 3 Expressive UI: Fluid spring motion, directional transitions, and smooth hover overlays.
- Dynamic Theming: 8 curated color palettes plus automatic dynamic palette generation from your desktop wallpaper.
- Progressive File Loading: Instant folder opening (<2ms) with smooth 60fps streaming for dense folders.
- Interactive Scrolling: Native wheel and trackpad momentum scrolling with interactive scrollbars on Grid and List views.
- Cascading Archive Creation: Non-modal archive compression for
.zip, password-protected encrypted.zip,.tar.gz,.7z, and advanced formats (.tar.xz,.tar.zst,.tar.bz2,.cpio). - Comprehensive Undo / Redo: Multi-step operation history (
Ctrl+Z/Ctrl+Y) for renames, creations, moves, and deletions. - Storage & Drive Dashboard: "This PC" overview with internal drive pool stats, drive health/space indicators, mount/unmount/rename actions, and optional customizable layout.
- Native Trash Integration: Standard freedesktop directory listing of trashed items with one-click restore and toolbar empty action.
- Multiple View Modes: Responsive Grid View and Detailed List View with dynamic column adaptation.
- Navigation Controls: Mouse side buttons (Back / Forward), full keyboard navigation, and rich drag-and-drop.
📦 Installation
Check the README.md for complete installation instructions for Debian/Ubuntu (
.deb), Arch Linux (.pkg.tar.zst), Nix Flake (nix run .#), or the universal portable tarball.
用户点评
登录用户的真实使用记录,可按版本和硬件筛选还没有人点评。第一个说出真实体验的人最有价值。
🍞 Loaf
A beautiful and fast Rust-based Material 3 Expressive file manager for Linux.
Overview
Loaf is designed to replace crowded, outdated file managers with an interface that looks modern, runs fast, and doesn't compromise on functionality. Built using Rust for native system performance and Qt6 Quick / QML for fluid Material 3 Expressive animations.
Note: Loaf is still at a very alpha stage, expect bugs or missing features. Contributions of any kind are very welcome!
Features
Performance & Design
- Fast by Design: Built with a high-performance Rust backend and hardware acceleration for snappy folder navigation and low memory usage.
- Material 3 Expressive UI: Modern interface with fluid spring animations, modular rounded geometry, and curated icons.
- Dynamic Theming & Opacity: 8 built-in palettes, automatic accent extraction from your desktop wallpaper, and granular slider control over window transparency, foreground, and background opacity.
- Low-Power Mode: Automatically disables animations, transparencies, and blur effects when on battery or low-spec hardware to conserve resources.
Navigation & Layout
- Tabs & Split View: Multi-task efficiently with browser-style tabs (
Ctrl+T) and side-by-side dual pane view (F3). - Flexible View Modes: Responsive Grid and Detailed List views featuring connected, fluid item selection.
- Drive & Storage Dashboard: A dedicated "This PC" hub with partition usage bars, mount/eject controls, and customizable layouts.
Deep Customization & Extensibility
- Total Interface Customization: Tailor the UI to your workflow—show, hide, or reorder sidebar entries, toolbar buttons, headers, and context menu actions.
- Full Nautilus Scripts Support: Run your existing Nautilus scripts directly from the context menu for automated file actions.
- Power Actions: Built-in context options for Open In Terminal, Open With..., and elevated administrative operations.
File Operations & Previews
- Quick Look: Press
Spaceto instantly preview images, videos, audio, and documents without launching an external app. - Rich Thumbnails: High-resolution thumbnail generation for photos, video clips, PDFs, and font files.
- Built-in Archive Engine: Browse, extract, and compress
.zip,.tar.*,.7z, and other standard formats directly within the directory tree.
Connectivity & System Integration
- Network Storage: Connect and browse network shares effortlessly over SMB, WebDAV, and other standard protocols.
- P2P Link Sharing: Generate a local link to instantly beam files and folders to any phone, PC, or browser on your network.
- Native XDG File Picker: Built-in desktop file portal integration that replaces generic system dialogs with Loaf's full interface across all your apps.
Installation
Quick Install
Install or update Loaf using the interactive script:
curl -sSL https://raw.githubusercontent.com/m-uvex/loaf-fm/main/install.sh | bash
Pre-built Packages
Download pre-compiled binaries from the Releases page.
AppImage (Universal)
chmod +x Loaf-*.AppImage
./Loaf-*.AppImage
Debian / Ubuntu / Mint (.deb)
sudo apt install ./loaf_*_amd64.deb
Arch / Manjaro / CachyOS
Install from the AUR (Community maintained):
yay -S loaf-fm-bin
# or
paru -S loaf-fm-bin
Or install the downloaded package manually:
sudo pacman -U ./loaf-*.pkg.tar.zst
Fedora / RHEL / openSUSE (.rpm)
sudo dnf install ./loaf-*.rpm
Nix / NixOS (Recommended, Tested)
Run directly:
nix run github:m-uvex/loaf-fm
Declarative setup via Flakes:
# flake.nix
inputs.loaf.url = "github:m-uvex/loaf-fm";
# configuration.nix
{ inputs, pkgs, ... }: {
nixpkgs.overlays = [ inputs.loaf.overlays.default ];
environment.systemPackages = [ pkgs.loaf ];
}
Building from Source
Option A: Using Nix (Recommended)
The dev shell provides all Qt6 dependencies and toolchains automatically:
nix develop --command cargo build --release
Option B: Manual Build
1. Dependencies
- Build tools: Rust (1.75+), C++17 compiler, CMake, Ninja,
pkg-config - Qt6 libraries:
qtbase(including private headers and QtDBus),qtdeclarative,qtsvg,qtwayland - Fedora:
sudo dnf install qt6-qtbase-devel qt6-qtbase-private-devel qt6-qtdeclarative-devel qt6-qtsvg-devel qt6-qtwayland-devel - Debian/Ubuntu:
sudo apt install qt6-base-dev qt6-base-private-dev qt6-declarative-dev libqt6svg6-dev qt6-wayland-dev - Arch:
sudo pacman -S qt6-base qt6-declarative qt6-svg qt6-wayland
2. Optional Runtime Dependencies
Features degrade gracefully if these are not installed:
kio-extras– MTP USB phone support (requires session D-Bus registration)7zip/p7zip,tar,zstd– Archive browsing and extractionudisks2– Drive management, mounting, and passphrase unlockingffmpegthumbnailer,evince-thumbnailer– Video and PDF thumbnailspolkit– Admin file operations
3. Compile and Run
cargo build --release
./target/release/loaf
Command Line Usage
loaf [OPTIONS] [PATH...]
PATH Folder to open, or a file to show selected in its folder
-p, --path <DIR> Start in DIR
-m, --mini Start in the compact layout
--new-window Open a separate window instead of a tab in the running one
--class <NAME> Use NAME as the window class (Wayland app id / WM_CLASS)
--portal Serve the xdg-desktop-portal file chooser (D-Bus activation)
-v, --verbose Print diagnostic messages
--version Print the version
-h, --help Print help
Integration Notes
- Single-Instance IPC: Running
loaf <path>when an instance is already active attaches the path as a new tab by default. - Desktop "Show in Folder": Registers as the default
org.freedesktop.FileManager1D-Bus provider so browsers and external apps reveal files directly in Loaf. - Window Rules: Passing
--class <NAME>spawns an isolated instance with a distinct identity, making it easy to configure floating, sizing, or workspace rules in Hyprland, Sway, or i3. - System File Dialogs: Running with
--portalallows Loaf to replace generic system open/save file pickers. See docs/portal.md for details.
Keyboard Shortcuts
| Shortcut | Action |
|---|---|
Ctrl + Z | Undo last operation |
Ctrl + Y / Ctrl + Shift + Z | Redo last operation |
Ctrl + H | Toggle hidden files |
Ctrl + L | Edit path bar directly |
Alt + Left / Mouse Back | Navigate back in history |
Alt + Right / Mouse Forward | Navigate forward in history |
Alt + Up / Backspace | Navigate to parent directory |
F2 | Rename selected item |
Delete | Move selected items to Trash |
Ctrl + A | Select all items |
Ctrl + C / Ctrl + X / Ctrl + V | Copy / Cut / Paste |
Arrow Keys | Move selection across files and folders |
Enter / Return | Open selected item |
Escape | Dismiss modal / Close context menu / Defocus search |
Shift + Delete | Delete permanently (asks first) |
Space | Quick Look preview |
F2 (several selected) | Rename several items at once |
Ctrl + T / Ctrl + W | New tab / Close tab |
Ctrl + Tab / Ctrl + Shift + Tab | Next / previous tab |
F3 | Toggle split view |
F5 / Ctrl + R | Reload the folder |
F9 | Expand / collapse the sidebar |
Ctrl + F | Search |
Ctrl + N | New window |
Ctrl + Shift + N | New folder |
Ctrl + D | Add the folder to the sidebar |
Ctrl + S / Ctrl + Shift + I | Select by pattern / Invert selection |
Ctrl + Shift + C | Copy path |
Alt + Enter | Properties |
Ctrl + + / Ctrl + - / Ctrl + 0 / Ctrl + Scroll | Icon size |
Ctrl + 1 / Ctrl + 2 | Grid / List view |
Alt + Home | Home folder |
Architecture
loaf/
├── src/
│ ├── main.rs Entry point: command line, single instance, QML engine
│ ├── pane.rs LoafEngine: one file view as a threaded QAbstractListModel
│ ├── core.rs LoafCore: file operations, undo/redo, drives, places, settings
│ ├── native.rs Rust side of the C++ helpers (cpp/)
│ ├── fsops.rs Copy/move/delete with progress, cancel and filesystem flush
│ ├── trash.rs freedesktop.org trash (home and per-drive)
│ ├── archive.rs Archive create/extract/list through 7-Zip, tar, cpio
│ ├── listing.rs Directory scanning, natural sort, incremental diffs
│ ├── watcher.rs inotify folder and device watchers
│ ├── search.rs Background recursive search
│ ├── apps.rs / xdg.rs Desktop entries, MIME defaults, user dirs, bookmarks, recent
│ ├── icons.rs / drives.rs Icon themes; block devices through UDisks
│ └── info.rs / theme.rs Quick Look and Properties data; dark mode and wallpaper palette
├── cpp/ Async thumbnail provider, clipboard, MIME, D-Bus services
├── qml/
│ ├── main.qml Main window: top bar, tabs, split view, menus and dialogs
│ ├── FilePane.qml One file view (grid / list, selection, inline rename)
│ ├── Sidebar.qml Places, bookmarks, Recent, Starred and Trash
│ ├── QuickLook.qml Space-bar preview
│ ├── PropertiesDialog.qml / BatchRenameDialog.qml / ConflictDialog.qml
│ ├── OperationsPanel.qml / Toast.qml Progress pill and messages
│ ├── PCView.qml This PC tab: storage devices and frequent folders
│ ├── SettingsView.qml Theme preferences, icons, behavior, and experimental toggles
│ ├── Theme.qml Material 3 design token engine & palette derivation
│ ├── LoafIcon.qml Vector icon resolver for Phosphor typography
│ └── components/ Reusable Material 3 component library
│ ├── LoafPopup.qml Elevated popup container with smooth transitions
│ ├── LoafMenu.qml Cascading menus and keyboard navigation
│ ├── LoafMenuItem.qml Individual menu rows with sequential stagger animation
│ ├── LoafButton.qml Tonal, filled, outlined, and text button variants
│ ├── LoafSwitch.qml Spring-animated Material 3 pill toggle switch
│ ├── LoafSegmented.qml Sliding segmented controls for view/sorting modes
│ ├── LoafDialog.qml Centered modal dialog surfaces
│ ├── LoafTextPrompt.qml Input modals (New Folder, New File, Rename, Password)
│ ├── LoafCard.qml Interactive and surface card containers
│ ├── SectionHeader.qml Unified dashboard and section headers
│ ├── UsageBar.qml Smooth progress/storage capacity bar
│ └── DriveCard.qml Mountable, partitioned, and external drive cards
├── packaging/ Packaging recipes, .desktop entries, icons, and dist artifacts
├── assets/
│ ├── fonts/ Phosphor font weights (Regular, Bold, Fill, Duotone, Light, Thin)
│ └── resources.qrc Qt resource manifest
├── Cargo.toml Rust package manifest
└── flake.nix Nix flake declaring devShell and default package
Contributing
We welcome contributions of all kinds! Please see CONTRIBUTING.md for guidelines on branch targets (main), setting up your development environment with or without Nix, architecture overview, and testing instructions.
License
This project is licensed under the MIT License. See LICENSE for the full license text and THIRD-PARTY-LICENSES.md for third-party notices and LGPL compliance details.