Skip to main content
Version: 2.0

Dux Labs

Dux Files Installation

Dux Files Installation

Dux Files installs a single dfiles binary with the Quickshell UI embedded, a desktop entry, a D-Bus activation file for org.freedesktop.FileManager1, a polkit policy for the administrator retry, and the portal file chooser backend files.

Requirements​

  • Quickshell (qs): quickshell-git or quickshell from the Dux repository
  • Go 1.27+ (build from source only; the binary is pure Go with no cgo)

Optional, picked up from PATH when the daemon starts:

PackageBinaryEnables
bubblewrapbwrapruns every external thumbnailer in a sandbox
ffmpegthumbnailerffmpegthumbnailervideo thumbnails
poppler (poppler-utils on Debian)pdftoppmPDF thumbnails
gvfsnetwork shares, phones and cameras, trash:// on removable media
udisks2the Devices section of the sidebar

Images in png, jpeg, gif, bmp, tiff and webp are decoded in-process. Every other format goes through the freedesktop thumbnailers/*.thumbnailer entries under the XDG data dirs, so packages that ship one (glycin for heif, avif, jxl and ico, gsf for office documents, evince or totem on GNOME) work without configuration. dfiles ipc system.capabilities lists what was found under thumbnailers.

Installation Methods​

Choose the installation method that best fits your system. Dux Files is not on Flathub yet.

Distribution Packages​

Each Dux repository ships two packages: dux-files follows tagged releases, and dux-files-git builds from upstream master. They conflict, so install one.

Fedora & CentOS​

sudo dnf copr enable duxlabs/dux
sudo dnf install dux-files # or dux-files-git for the latest development build

Debian & Ubuntu​

Debian​

Packages are published on OBS for Debian 13 (Trixie), Debian Testing, and Debian Sid.

Select your release:

curl -fsSL https://download.opensuse.org/repositories/home:AvengeMedia:danklinux/Debian_13/Release.key | \
sudo gpg --dearmor -o /etc/apt/keyrings/duxlabs.gpg
echo "deb [signed-by=/etc/apt/keyrings/duxlabs.gpg] https://download.opensuse.org/repositories/home:/AvengeMedia:/danklinux/Debian_13/ /" | \
sudo tee /etc/apt/sources.list.d/duxlabs.list
sudo apt update
sudo apt install dux-files # or dux-files-git for the latest development build

Ubuntu​

Ubuntu 26.04 LTS+ (Resolute Raccoon) is supported via Launchpad PPA.

sudo add-apt-repository ppa:duxlabs/dux
sudo apt update
sudo apt install dux-files # or dux-files-git for the latest development build

openSUSE & Derivatives​

Dux Files is available through the Open Build Service (OBS) for OpenSUSE Tumbleweed, Leap 16/16.1, and Slowroll.

Select your distribution:

sudo zypper addrepo https://download.opensuse.org/repositories/home:AvengeMedia:danklinux/openSUSE_Tumbleweed/home:AvengeMedia:danklinux.repo
sudo zypper refresh
sudo zypper install dux-files # or dux-files-git for the latest development build

Void Linux​

note

Install Dux Files from our R2-backed XBPS repository or build it from source. Void only carries the stable dux-files package.

echo "repository=https://void.danklinux.com/danklinux/current" | sudo tee /etc/xbps.d/dux.conf
sudo xbps-install -Su
sudo xbps-install -S dux-files
note

On the first sync, xbps-install will output our signing key fingerprint and ask you to type y to trust and import it. Verify that the key matches our official signing fingerprint.

Distribution packages install:

  • dfiles to /usr/bin/dfiles (the Quickshell UI is embedded in the binary)
  • Desktop entry, icon, metainfo and shell completions
  • Polkit policy, the FileManager1 D-Bus activation file and the portal file chooser backend files
  • dfiles.service under /usr/lib/systemd/user/, not enabled (Void skips the unit)

From Source​

The Quickshell UI is embedded into the dfiles binary at build time, and part of it lives in the dux-qml-common submodule, so clone with --recurse-submodules (or run git submodule update --init in an existing clone):

git clone --recurse-submodules https://github.com/duxlabs-dev/dux-files
cd dux-files
make
sudo make install

This installs:

  • dfiles binary to /usr/local/bin (UI embedded)
  • Desktop entry, icon and metainfo
  • Polkit policy for the administrator retry
  • FileManager1 D-Bus activation file
  • Portal file chooser backend files, not preferred until you ask (see Open and save dialogs)

Override the prefix with PREFIX=/usr sudo make install. make install-systemd adds the user unit, make uninstall-dbus removes the activation file.

Release Binary​

Each tagged release publishes static linux-amd64 and linux-arm64 binaries with the UI embedded, plus a tarball of shell completions, on the GitHub releases page.

curl -fsSLO https://github.com/duxlabs-dev/dux-files/releases/latest/download/dfiles-linux-amd64.tar.gz
tar -xzf dfiles-linux-amd64.tar.gz
sudo install -Dm755 dfiles-linux-amd64 /usr/local/bin/dfiles

The binary alone gives you the app and the CLI. The desktop entry, D-Bus activation, polkit policy and portal files come from make install in a source checkout.

NixOS and home-manager​

The repository is a flake with a package, a NixOS module and a home-manager module. See NixOS Installation.

Flatpak​

A manifest lives in the repository under distro/flatpak as dev.duxlabs.files. It is not published on Flathub. make flatpak-build builds and installs it locally with org.flatpak.Builder; the manifest pins a git commit, so for a working-tree build follow the notes in distro/flatpak/README.md.

note

A file manager needs the host filesystem, so the Flatpak grants --filesystem=host. Settings, trash and thumbnails land in the same places as a native install. Three things the sandbox cannot do: answer FileManager1 calls while it is not running, serve the portal file chooser (Flatpak exports no portal backend files), and retry operations as administrator. The Settings page explains each when it applies.

Running at Login​

Dux Files does not have to run in the background. Opening a folder starts it, and with the activation file installed a FileManager1 call from another app starts it too. A resident instance opens windows faster and answers the portal file chooser at once, so you can keep one around:

systemctl --user enable --now dfiles

The unit starts dfiles run --session --hidden --keep-running. Started that way, closing the last window hides it instead of quitting. Started any other way, closing the last window quits unless Settings → General → Close behavior says otherwise.

Default File Manager​

To open folders here from other apps:

xdg-mime default dev.duxlabs.files.desktop inode/directory

The installer does not run this. Reveal-in-file-manager requests from browsers and other apps go through org.freedesktop.FileManager1 instead, which Dux Files owns while it runs. See Desktop Integration.

Verification​

# Check version
dfiles version

# Open a window on your home folder
dfiles

Next Steps​