fm1d
fm1d is a lightweight D-Bus service that implements the org.freedesktop.FileManager1 interface and forwards file manager requests to a configurable file manager.
It is designed to act as a minimal file manager handler for desktop environments and applications that rely on the standard FileManager1 D-Bus API, this is useful for environments where File Manager is not running as background (like WMs).
Features
- Implements
org.freedesktop.FileManager1 - Handles:
ShowItemsShowFoldersShowItemProperties
- Spawns a file manager for requested paths
- Prevents infinite D-Bus recursion loops
- Supports custom file manager and arguments
- Uses the system default file manager if none is specified
Usage
Run the program directly:
fm1d [options]
Options
--fm=<command>Override the file manager executable (e.g.thunar,nautilus,pcmanfm).--args="<args>"Additional arguments passed to the file manager before the path.--basepathIf the requested URI is a file, open its parent directory instead.
Examples
fm1d --fm=nautilus --args="--select"
fm1d --fm=pcmanfm-qt --basepath
You can see more functional examples in fm1d wiki.
Build
Dependencies
libdbus- GNU
Make(Build)
git clone https://codeberg.org/itszariep/fm1d
cd
make
- install (optional)
sudo make install #or doas
How It Works
- Registers itself as
org.freedesktop.FileManager1on the session D-Bus - Listens for file manager method calls
- Decodes
file://URIs - Launches the configured file manager with the requested path
- Ignores requests originating from file managers it spawned

