File chooser

Using elio as your XDG FileChooser portal for desktop applications.

XDG DESKTOP PORTAL

Set up elio as your file chooser

Available on Linux and FreeBSD.

Supported requests

  • Choosing one or more files.
  • Choosing one or more folders.
  • Saving a file through Save As mode.

Per-desktop setup

Run elio portal enable in each desktop session where you want elio to handle file chooser requests.

Update Shell integration

If you installed Shell integration before 1.13.0 update it by running elio shell install again and restarting your shell so it passes elio portal commands through.

MANAGEMENT

Check or disable the portal

Check status

elio portal status

Shows portal metadata and the active FileChooser routing.

Disable the portal

elio portal disable

Restores FileChooser routing for every desktop configuration managed by elio.

TERMINAL

Setting the terminal manually

To change the terminal used, set it in config.toml.

[portal]
terminal = "kitty"

Run elio portal enable afterward to restart xdg-desktop-portal and apply the change.

elio portal enable only saves a detected terminal when you have not set one, so it will not override a terminal you set.

View configuration →

WINDOW RULES

Tiling window manager configuration

Many tiling window managers support per-window rules. Depending on the window manager, rules can match the chooser’s app ID/class io.github.elio_fm.elio.filechooser or title elio File Chooser.

Hyprland example

This example matches both identifiers and makes the chooser floating and centered.

-- Matches the app ID/class.
hl.window_rule({
  name = "elio-file-chooser-class",
  match = { class = "^io\\.github\\.elio_fm\\.elio\\.filechooser$" },
  float = true,
  center = true,
})

-- Matches the window title.
hl.window_rule({
  name = "elio-file-chooser-title",
  match = { title = "^elio File Chooser$" },
  float = true,
  center = true,
})