Skip to content
melandurPublic
forked from thisisgm/flea

About

A fast, keyboard-first file manager for Omarchy: Quickshell front end, Rust backend.

Resources

Stars

0 stars

Watchers

0 watching

Forks

 
 

Latest commit

 

History

1,002 Commits

Folders and files

Repository files navigation

Flea

Flea

The fastest GUI file manager on Linux.
Keyboard-first. Built for Omarchy.

Built for Omarchy

Install · Views · Performance · Keyboard · Releases

Flea 0.3.0 cycling through ten Omarchy themes, with the iPhone on the Devices rail and a photo in the preview column

Flea combines a Rust backend with a Quickshell interface that follows your Omarchy theme. Large directories stay responsive: the window loads rows and requests thumbnails as you need them.

  • Three views. List, columns and grid, with tabs and natural filename sorting.
  • Quick Look. Press Space for images, PDFs, text, media and archive contents, and CSV, TSV, Excel and OpenDocument spreadsheets as a table.
  • File operations. Copy, move, rename, trash, compress and extract, with an undo journal.
  • Network and sharing. SMB, SFTP, FTPS, WebDAV, NFS, Dropbox and Taildrop.
  • Devices. USB drives, phones and cameras over MTP, PTP and AFC, mounted from the rail.
  • Desktop integration. Default file manager, “Show in folder” and Open/Save dialogs.
  • Your settings. Omarchy text sizes and configurable menus.
  • Marks and palettes. Per-filetype marks and colours, and 95 bundled palettes beside your theme.

An iPhone lists once it has been unlocked and trusted on this machine: AFC needs the pairing record that leaves behind, not an unlocked screen every time. Pairing also puts the phone on its tethering USB configuration, so iOS shows Personal Hotspot as active while it is plugged in, and Flea never uses it. If this machine should never route through the phone, tell NetworkManager so with a conf.d drop-in carrying unmanaged-devices=driver:ipheth; that is your call, not the package's.

Install

omarchy pkg add flea

Make Flea your default file manager, file chooser and the app opened by Super+Shift+F:

flea --default
systemctl --user restart xdg-desktop-portal

Update through Omarchy:

omarchy update
File chooser only, development package and removal

Use Flea for portal Open/Save dialogs without changing your default file manager:

flea --picker
systemctl --user restart xdg-desktop-portal

For the rolling development build:

omarchy pkg aur add flea-git

Before removing Flea, undo its desktop integration:

flea --default off
omarchy pkg drop flea

If you previously pinned another directory handler, restore that handler explicitly. Installation details cover dependencies, desktop integration and removal.

Views

List for file details. Grid for photos and clips. Columns for browsing folders with a preview beside them.

Grid view with image and video thumbnails Columns view with the preview column, file details and the iPhone on the Devices rail

Connect to a server with the + beside NETWORK in the sidebar: pick SMB, SFTP, FTPS, WebDAV or NFS, fill in the host, the share or path and your username and password, and the dialog shows the exact URI it will hand to gio mount before it does. The place is saved to the same ~/.config/gtk-3.0/bookmarks Nautilus reads, so both file managers list it. The first connection to an SSH server shows you its fingerprint and waits: the button becomes Connect anyway, and a key that has changed since you last connected says that first, because a rebuilt server and an impostor look identical from here. A password is used for that one connection and nothing is stored, unless you switch on Settings → Places → Remember passwords, which hands it to the login keyring — the store GNOME and Nautilus already use — and the next connection then needs no password at all.

Right-click the column header, or open Settings → View → Columns, to switch a column on: Mode, Size, Items — how many children a folder holds — Modified and Kind. The count comes from the same walk the Size column reads, so a folder answers both at once.

Turn on File type marks and colours in Settings → Display and a row's mark and ink come from its name rather than from its MIME class, so .json, .toml and .md stop sharing one document mark. The marks are Flea's own lucide set; the colours are yazi's table, which is nvim-web-devicons'. Settings → Theme carries 95 bundled palettes from Strata, with following your Omarchy theme the default and what a fresh install does. See vendor/ for what is imported and under which licence.

Settings → File types says which application an ending opens in, which the desktop's own default cannot: a sniffer reads brain.nii and brain.nii.gz as one NIfTI volume and one gzip stream, so nothing keyed on the file type can send the pair to the same viewer without claiming every other .gz on the box with it. A rule is one ending and one installed application, the longest ending wins, and everything with no rule opens exactly the way it did before. Enter obeys the rule too, including on an ending Flea would otherwise have shown in its own archive view.

→ opens Quick Look on the row under the cursor, from any view, and Space marks that row instead: selection is what the listing's own Space does, and Ctrl+A marks the whole folder. Hold Space and move to paint a run: every row the cursor reaches is marked until the key comes back up, and starting on a row that is already marked clears the run instead. Every kind behaves the same way in the preview: ↑ and ↓ move to the next file with the preview following, Space fills the window and Space again brings the inset surface back, and ← leaves. Once it fills the window the arrows move the content instead: a PDF's pages, a media file's playhead, a text file's or an archive listing's own scroll. Page through a PDF, play media or inspect an archive.

PDF preview with page navigation

The shelf lives in the Omarchy bar: send files there from any menu, drag them out into any app, pin the ones you keep coming back to. Phones are Devices rows over MTP, AFC and PTP.

The shelf card open over Flea, with thumbnails, pins and the last three screenshots An iPhone camera roll browsed over AFC, with HEIC thumbnails and a preview

Performance

Measured on 8 September 2026, using the source tree released as 0.1.6. Cold caches, three runs per app, medians below. Seven GUI apps on the same Omarchy machine.

100,000 files

Flea led this run in settled time, window memory and process-tree CPU. PCManFM mapped its window sooner.

File manager First window Settled Window PSS CPU
Flea 749 ms 1.21 s 88.0 MiB 0.89 s
Strata 632 ms 1.67 s 93.9 MiB 1.39 s
Dolphin 699 ms 5.43 s 211.2 MiB 8.97 s
Nemo 780 ms 22.23 s 459.6 MiB 25.34 s
Thunar 534 ms 22.72 s 346.0 MiB 22.33 s
PCManFM 415 ms 35.76 s 109.9 MiB 24.77 s
Nautilus 798 ms 79.83 s 335.1 MiB 18.61 s

2,000 mixed files

The apps produced different amounts of thumbnail work, so settled time and CPU are not ranked. These are observations, not an equal-work speed comparison.

File manager First window Settled Window PSS CPU Thumbnails
Flea 794 ms 2.49 s 102.9 MiB 1.23 s 36
Dolphin 682 ms 14.28 s 98.8 MiB 68.18 s 552
Nautilus 857 ms 16.95 s 172.4 MiB 12.54 s 541
Nemo 788 ms 3.36 s 53.7 MiB 5.25 s 60
PCManFM 389 ms Timed out 38.9 MiB 90.19 s 604
Strata 610 ms 7.83 s 87.2 MiB 2.31 s 205
Thunar 534 ms 12.88 s 41.1 MiB 7.22 s 221

“First window” records compositor registration. “Settled” means 500 ms without process-tree CPU activity; neither measures input readiness. PSS covers the window process, excluding helpers and GPU memory. Flea's separate backend used a median 5.3 MiB on the large listing and 2.1 MiB on media. CPU includes the process tree; shared libraries affect PSS. PCManFM did not settle in any media run. Results describe this machine and workload.

Method · Run details and TUI results · Scale CSV · Media CSV

Keyboard

Press ? for the full keymap, or , to change settings.

Action Keys
Move / parent / browse in ↓ ↑ / ← / →
Open with the default app Enter
Select the row / a run of rows / the whole folder Space / hold Space and move / Ctrl+A
Quick Look / fill the window / leave it → / Space / ← or Esc
Copy / cut / paste Ctrl+C / Ctrl+X / Ctrl+V
Copy the file's path Ctrl+B
Rename / trash / undo F2 / Delete / Ctrl+Z
Reload this folder F5
New folder / new file Ctrl+N / Ctrl+M
Show or hide hidden files Ctrl+H
Search this folder / this folder and its subfolders Ctrl+F / Ctrl+Shift+F (Tab on the line flips it)
Sort by name (A→Z) / size (biggest first) / modified (latest first); again to reverse Ctrl+J / Ctrl+K / Ctrl+L
Show or hide the sidebar Ctrl+G
Split the window in two, or join it Ctrl+T (the new pane takes the keyboard)
Context menu m, Menu or Shift+F10
Settings / keymap sheet , / ?
Move focus between the sidebar and the list Tab
Open a sidebar place, and go into it Enter / →

That is the whole keyboard: the four arrows, the Ctrl chords and a handful of named keys. Nothing else is bound, and there is one preset rather than four. Everything the old bare letters reached — the views, tabs, sort, filter, the path bar, hidden files, the terminal, text size, select all — is on the context menu, the chrome and the settings panel instead. See the full key table for every binding and the pointer actions.

Build

Requires Omarchy, Quickshell 0.3.1 or newer, and Rust. See installation details for runtime and optional dependencies.

cargo build --release
FLEA_UI="$PWD/ui" ./target/release/flea --gui

Pass a directory to open it, or --select <path> to reveal a file. The terminal interface is not implemented yet.

./tests/run-all.sh

The headless runner builds both profiles and reports suites that need a display, credentials or a package. The test suites cover file operations, previews, persistence and input; the protocol guide documents the backend.

Support

If this saved you an afternoon, you can sponsor me on GitHub or buy me a coffee.

Licence

MIT. Flea also redistributes three third-party works, each under its own licence and each recorded in vendor/: the filetype colour table (nvim-web-devicons, MIT, by way of yazi), the palette catalog (Strata, MIT) and the mark geometry (lucide, ISC).

About

A fast, keyboard-first file manager for Omarchy: Quickshell front end, Rust backend.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages