Flux is a GTK4/Libadwaita file manager for Linux, written in Rust. It opens instantly, looks at home on GNOME and Wayland, and can be driven from the keyboard.
The icons shown in the screenshot are from WhiteSur Icon Theme (GPL-3.0).
Cold start on a Ryzen 5 5600X, mean of 10 runs:
| File manager | Startup |
|---|---|
| Flux | 105 ms |
| PCManFM | 134 ms |
| SpaceFM | 169 ms |
| Thunar | 290 ms |
| Nautilus | 743 ms |
- Archives behave like folders. Open zip, 7z, rar, tar, iso and deb files like any directory, without extracting.
- Built-in search. Type to filter the folder, press
Ctrl+Ffor a search panel, or start with:to search inside files. No index, no background service. - Servers and drives. SMB, SFTP, FTP, WebDAV, NFS, MTP and Google Drive, plus encrypted LUKS volumes.
- Integrated terminal. Press
F4,cdsomewhere, and the file view follows. - Tags. Label files and find them with
#tagorCtrl+Shift+T. Tags use the standarduser.xdg.tagsattribute, so they stay with the file. - Preview panel. Images, video, audio, PDFs, code, Markdown, CSV, Office documents and fonts.
- Custom icons and covers. Set icons per file type, file or folder, including in bulk from the command line.
- Show/hide from a keybind.
flux-fm --toggle,--showand--hidecontrol the running window, so one compositor shortcut is enough.--toggleand--showstart Flux if it isn't running.
Press F1 inside Flux for the full list of shortcuts.
Flux switches to list mode automatically for folders with more items than the Auto List Mode Threshold (default 300), which keeps it responsive with several thousand items. Change it in Settings → Behavior, or set it to 0 to always use the mode chosen in the header.
Flux needs GTK 4 and libadwaita 1.5 or newer, so Debian 12 and Ubuntu 22.04 are too old.
For a quick test without installing anything:
Download the latest from the Releases page. The AppImage bundles GTK 4 and libadwaita, so it runs on any modern x86_64 Linux.
chmod +x Flux-x86_64.AppImage
./Flux-x86_64.AppImageflatpak remote-add --if-not-exists flatpark https://dl.flatpark.org/flatpark.flatpakrepo
flatpak install flatpark io.github.killown.fluxyay -S flux-filemanager-gitInstall the dependencies first.
Debian / Ubuntu:
sudo apt install build-essential cargo fish pkg-config git gettext desktop-file-utils libadwaita-1-dev libgtk-4-dev libpango1.0-dev libgraphene-1.0-dev \
libcairo2-dev libgdk-pixbuf-2.0-dev libpoppler-glib-dev ffmpeg imagemagick icoutils p7zip-fullFedora:
sudo dnf install gcc make cargo fish pkgconf-pkg-config git gettext desktop-file-utils libadwaita-devel gtk4-devel pango-devel graphene-devel cairo-devel \
gdk-pixbuf2-devel poppler-glib-devel ffmpeg ImageMagick icoutils p7zipArch:
sudo pacman -S base-devel rust fish git gettext desktop-file-utils libadwaita gtk4 glib2 pango graphene cairo gdk-pixbuf2 poppler-glib \
ffmpeg imagemagick icoutils ttf-nerd-fonts-symbols p7zipIf your distro's Rust is too old to build Flux, install a current toolchain with rustup instead.
Then build and install:
git clone https://github.com/killown/flux.git
cd flux
cargo build --release
make installmake install installs for the current user into ~/.local (make sure ~/.local/bin is in your PATH), copies the default menus and helper scripts, and downloads community themes (needs git and a connection; skipped offline).
Optional extras:
- Network browsing:
gvfsplus a backend such asgvfs-smborgvfs-sftp. - LUKS:
cryptsetupandudisks2. - Menu editor icons: the Nerd Font symbols font in
~/.local/share/fonts, thenfc-cache -f(Arch gets it from the package above). - Default right-click menu: some entries call tools such as
alacritty,wl-clipboard,yt-dlpor Python with PyGObject. Editmenu.rsto match what you have installed.
If you see occasional slow startups, try a lighter icon theme such as Adwaita or refresh your theme's icon cache with sudo gtk-update-icon-cache -f /usr/share/icons/<theme>.
- Settings live in
~/.config/flux/config.toml, and most are available in Preferences (F10). - Style the interface with CSS in
~/.config/flux/style.css: every selector Flux uses is listed with a comment, empty, fill in what you want to change. It reloads when you save. For a full replacement look, drop a theme in~/.local/share/flux/themes/<name>/theme.css. See Theme customization. - Themes go in
~/.local/share/flux/themes. Community themes are in flux-themes. - Right-click menus are defined in
~/.config/flux/menu.rs, or edit them with the built-in editor (F9).Ctrl+Right-Clickopens a second, file-type-specific menu. - Set or reset icons in bulk, one
TARGET<TAB>IMAGEpair per line:
printf '%s\t%s\n' ~/Videos ~/icons/video.svg ~/Music ~/icons/music.svg | flux-fm --set-icons-stdinRust, Relm4 and GTK4, Tokio and Rayon, Nucleo for fuzzy matching, the ignore crate for directory walking, and SQLite for tags. 600+ tests (sh tests.sh), and the parsers are fuzzed with libFuzzer.
Pull requests are welcome. For big changes, open an issue first, and please run the tests before sending.