SimpleFile is a Linux desktop file manager for local files, archives, mounted volumes, and power-user file operations. The app uses Tauri 2 for the desktop runtime and Rust command layer, with a Svelte/Vite frontend for the interface.
This repository is Linux-only. The release workflow builds Linux x64 artifacts, and the Tauri bundle targets are Debian package, RPM package, and AppImage. A Flatpak manifest is also included for local Flatpak builds.
This README is the project overview. The documentation index covers the user guide, Advanced Rename, architecture, and contribution process.
| Advanced rename | Configurable columns | File compare |
|---|---|---|
![]() |
![]() |
![]() |
SimpleFile targets modern Linux desktop environments with GTK/WebKitGTK support.
Current release artifacts:
| Artifact | Purpose |
|---|---|
.deb |
Debian, Ubuntu, Linux Mint, Pop!_OS, and related distributions |
.rpm |
Fedora, openSUSE, RHEL-compatible distributions, and related distributions |
.AppImage |
Portable Linux bundle |
com.simplefile.SimpleFile.yml |
Flatpak manifest for local Flatpak builds |
Linux integration currently includes:
inode/directoryfile association metadata.- A Settings action for
xdg-mimedefault file-manager registration. - Single-instance startup routing for folder/file arguments.
- XDG user-directory discovery for Home, Desktop, Documents, Downloads, Music, Pictures, and Videos.
- Mounted-volume listing for
/,/home,/mnt,/media, and/run/media/$USER. - UDisks2 D-Bus monitoring for drive changes.
- Wayland/X11 compatible Tauri windowing through the Linux WebKitGTK stack.
- Tabs for working in multiple folders.
- Dual-pane mode for side-by-side copy and move workflows.
- Folder tree sidebar.
- Breadcrumb navigation and editable path input.
- Quick Access entries based on Linux/XDG user directories.
- Recent locations and bookmarks.
- List and grid views.
- Sortable, configurable, resizable list columns.
- Hidden-file toggle.
- Disk-space status for the current location.
- Create folders and files.
- Rename selected items.
- Advanced Rename with recursive targeting, filters, templates, regex replacement, file-metadata and EXIF tokens, live preview, persisted settings, and undo. See Advanced Rename.
- Copy, cut, paste, and move files or folders.
- Conflict handling for copy and move operations: keep both, replace, skip, cancel, and apply-to-remaining.
- Move to trash with permanent-delete fallback when trash is unavailable.
- Pack selected items into a folder and unpack folder contents.
- Open with the default app.
- Open With dialog for selecting an executable.
- Open terminal in the current directory.
- Drag and drop into the app, between panes, and across file-list/tree targets.
- Undo and redo for supported file operations.
- Inline Undo actions in success toasts.
- Clipboard history for recent copy/cut selections.
- Color labels stored locally.
- Command palette.
- Keyboard-first workflows for common operations.
- Quick filtering inside the current folder.
- Recursive search with filename matching, optional content search, hidden-file inclusion, extension filters, size filters, date filters, max depth, and max result limits.
- Cancellable backend searches with streamed result events.
- Quick Look previews for supported text, image, PDF, and archive-entry content.
- Properties dialog with path, size, modified time, type, permissions, symlink targets, and file hashes.
- Image dimensions and EXIF metadata.
- MD5, SHA-1, and SHA-256 checksums.
- Side-by-side UTF-8 text comparison.
- Git repository status and per-file status badges when enabled.
- Disk cleanup scans for large files and duplicate groups.
- Browse archive contents.
- Extract archives.
- Create archives from selected files and folders.
- Supported formats include ZIP, TAR, TAR.GZ/TGZ, and RAR where required tooling is available.
- Extraction uses path-traversal safeguards.
- Dark and light themes.
- Startup location options.
- Persisted tabs.
- Configurable view preferences.
- Delete confirmation setting.
- Git integration toggle.
- Update controls backed by the signed GitHub updater channel.
- About dialog with app metadata and project links.
Download the latest Linux artifact from GitHub Releases.
Debian or Ubuntu:
sudo apt install ./simplefile_*_amd64.debFedora or compatible RPM distributions:
sudo dnf install ./simplefile-*.x86_64.rpmAppImage:
chmod +x ./simplefile_*.AppImage
./simplefile_*.AppImageFlatpak local build:
flatpak-builder --force-clean build-dir com.simplefile.SimpleFile.ymlOn Debian/Ubuntu:
sudo apt update
sudo apt install -y \
build-essential \
curl \
pkg-config \
libwebkit2gtk-4.1-dev \
libgtk-3-dev \
libayatana-appindicator3-dev \
librsvg2-dev \
libsoup-3.0-dev \
libjavascriptcoregtk-4.1-dev \
patchelf \
rpmUse equivalent WebKitGTK, GTK, Ayatana AppIndicator, librsvg, libsoup, Rust, and RPM tooling packages on other Linux distributions.
Install stable Rust:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
rustup default stableThe frontend requires Node 24 or newer.
node --version
npm --versionInstall frontend dependencies:
npm ci --prefix frontendnpm run devThe root dev script runs the Tauri CLI from the frontend npm toolchain.
Fast application checks:
npm run checkRust checks:
npm run check:rustFull release gate:
npm run check:releaseWhat the checks cover:
- Svelte type checking and Vite production build.
- JavaScript syntax checks for repository scripts.
- Frontend/backend Tauri invoke consistency.
- Advanced Rename engine tests.
- Updater configuration and accessibility markup checks.
- GitHub workflow wiring checks.
- Rust formatting, tests, and Clippy when running
check:rustorcheck:release. - Rust dependency audit when running
check:release.
Local Linux installer build without updater artifacts:
npm run build:tauri:localSigned updater-enabled build:
export TAURI_SIGNING_PRIVATE_KEY="$(cat .secrets/simplefile-updater.key)"
npm --prefix frontend exec -- tauri build --ciBuild output is written under:
src-tauri/target/release/bundle/
SimpleFile uses the Tauri updater plugin with GitHub Releases as the static update endpoint:
https://github.com/conniecombs/SimpleFile-Linux/releases/latest/download/latest.json
Release behavior:
- Manual release versions are optional. If blank, the workflow uses the version
in
src-tauri/tauri.conf.json. - Explicit manual versions may be
0.1.0orv0.1.0. - The requested version must match both
src-tauri/Cargo.tomlandsrc-tauri/tauri.conf.json. - Draft releases can build installer-only artifacts without updater signing secrets.
- Published updater releases require
TAURI_SIGNING_PRIVATE_KEY.
Required GitHub secret for published updater releases:
| Secret | Purpose |
|---|---|
TAURI_SIGNING_PRIVATE_KEY |
Signs updater artifacts |
TAURI_SIGNING_PRIVATE_KEY_PASSWORD |
Optional passphrase, only if the key was generated with one |
The updater private key must never be committed. See
docs/UPDATER_RELEASE.md for key generation,
GitHub secret setup, and release verification.
SimpleFile-Linux/
|-- frontend/
| |-- index.html
| |-- package.json
| |-- src/
| |-- main.ts
| |-- App.svelte
| |-- css/
| |-- lib/
| |-- api.ts
| |-- types.ts
| |-- app/
| |-- components/
| |-- localCommand*.ts
| |-- transfer*.ts
|-- src-tauri/
| |-- Cargo.toml
| |-- Cargo.lock
| |-- tauri.conf.json
| |-- tauri.local.conf.json
| |-- src/
| |-- lib.rs
| |-- fs_ops.rs
| |-- archive.rs
| |-- search.rs
| |-- preview.rs
| |-- progress.rs
| |-- cleanup.rs
| |-- git.rs
| |-- terminal.rs
| |-- updater.rs
|-- scripts/
|-- docs/
|-- .github/workflows/
|-- com.simplefile.SimpleFile.yml
|-- LICENSE
Common shortcuts. The full list is in keyboard-shortcuts.md.
| Shortcut | Action |
|---|---|
Enter |
Open selected item |
Space |
Quick Look |
Backspace |
Go up one folder |
Ctrl+A |
Select all |
Ctrl+C / Ctrl+X / Ctrl+V |
Copy / cut / paste |
Ctrl+Z / Ctrl+Y |
Undo / redo |
Ctrl+F |
Focus search |
Ctrl+Shift+P |
Command palette |
F2 |
Rename |
Delete |
Delete selected items |
Escape |
Close overlays or clear transient UI |
See the documentation index.
| Guide | Contents |
|---|---|
| User guide | Browsing, transfers, search, archives, settings |
| Advanced Rename | Operations, tokens, preview, undo |
| Keyboard shortcuts | Complete shortcut reference |
| Architecture | Frontend, backend, and IPC |
| Contributing | Setup, style, and pull requests |
| Roadmap | Current status and planned work |
| Changelog | Release history |
| Updater | Signed GitHub updater setup |
| Security | Vulnerability reporting |
| Support | Where to get help |
SimpleFile is licensed under the Apache License, Version 2.0. See
LICENSE.


