rofi-file-browser-extended
Use rofi to quickly open files.
See also: man rofi-file-browser-extended
Index
- Synopsis
- Description
- Features
- Usage
- Configuration
- Key bindings
- Command line options
- Troubleshooting
- Installation
Synopsis
rofi -show file-browser-extended [ -file-browser-dir <dir> ] [ -file-browser-cmd <cmd> ]
rofi -show file-browser-extended [ -file-browser-depth <depth> ] [ -file-browser-follow-symlinks ]
rofi -show file-browser-extended [ -file-browser-oc-cmd <cmd> ] [ -file-browser-oc-search-path ]
fd | rofi -show file-browser-extended -file-browser-stdin
Description
rofi-file-browser-extended is a configurable file browser plugin for rofi. Its main use case is to quickly open files without having to open a window to navigate to the file.
Features
- Resume from last opened directory
- Enter any absolute path to directly switch to it
- Open files with custom commands (
open custom
) - Open multiple files without closing rofi (
open multi
) - Show / hide hidden files
- List files recursively (up to a configurable depth)
- Exclude files through glob patterns
- Read options from (a) config file(s)
- Output the absolute file path to stdout instead of opening a file (
stdout mode
) - Read and show (absolute or relative) file paths from stdin (
stdin mode
)
Usage
Resuming from the last opened directory
Use -file-browser-resume
to enable this behaviour.
The plugin will write the current directory to the "resume file" before exiting, and read it on startup.
The default resume file location is $XDG_USER_CONFIG_DIR/rofi/file-browser-resume
(usually $HOME/config/rofi/file-browser-resume
).
A different resume file can be chosen via -file-browser-resume-file
.
Listing files recursively
-file-browser-depth
can be used to list files recursively up to a certain depth.
A depth of 0 means files are listed without a depth limit.
Symlinks are not followed by default.
-file-browser-follow-symlinks
can be used to follow symlinks.
When symlinks are followed, every file is still only reported once.
Opening files with custom commands
Press the open custom
key (see Key bindings) to enter open custom
mode on the selected file.
The plugin will then display a list of commands to open the selected file with.
- All executables in
$PATH
can be added to this list with-file-browser-oc-search-path
. - User-defined commands can be added with
-file-browser-oc-cmd
(multiple by passing the option multiple times). - If no commands are specified, the file to be opened will be shown instead of a list of commands.
User-defined commands can optionally specify an icon and a display name (with pango markup).
Format:
<command>;icon:<icon-name>;name:<name-to-displayed>
icon
and name
are optional.
The order of icon
and name
does not matter as long as the command comes first.
Example:
-file-browser-oc-cmd "gimp"
-file-browser-oc-cmd "pcmanfm-qt;name:pcmanfm;icon:system-file-manager"
-file-browser-oc-cmd "deadbeef --queue;icon:deadbeef;name:deadbeef <i>(queue)</i>"
Reading paths from stdin
-file-browser-stdin
can be used to read displayed paths from stdin.
Paths must either be relative to the starting directory (-file-browser-dir
) or absolute.
It is not checked if the paths actually exist.
The paths are not sorted or matched to any exclude patters.
After reading the paths, the plugin behaves no different than usual.
You may want to use this option with -file-browser-no-descend
and / or -file-browser-stdout
to make it more dmenu-like.
Example:
fd | rofi -show file-browser-extended -file-browser-stdin
fd -a | rofi -show file-browser-extended -file-browser-stdin
ls somedir | rofi -show file-browser-extended -file-browser-stdin -file-browser-dir somedir
Configuration
The default config file location is $XDG_USER_CONFIG_DIR/rofi/file-browser
(usually $HOME/config/rofi/file-browser
).
The config file consists of newline-separated command line options without the "-file-browser-" prefix.
Example:
cmd "exo-open"
oc-cmd "evince;icon:evince"
oc-cmd "gimp;icon:gimp"
depth 2
open-parent-as-self
Comments start with #
.
Quotes inside string arguments must not be escaped.
Escape sequences are currently not supported.
Command line options will override the config file (or add to the config file arguments if the option can be specified multiple times).
A different config file can be specified with -file-browser-config
(multiple by passing the option multiple times).
All command line options but -file-browser-config
itself can be used in the config file.
Key bindings
Key | Action |
---|---|
kb-accept-alt (default: Shift+Return ) |
open custom : Open the selected file with a custom command. |
kb-custom-1 (default: Alt+1 ) |
open multi : Open the selected file without closing rofi. Can be used in open custom . |
kb-custom-2 (default: Alt+2 ) |
Toggle hidden files. |
Key bindings can be changed via command line options (see Command line options/Key bindings).
Command line options
Behaviour
<cmd>
-file-browser-cmd Set the command to open selected files with. (default:
xdg-open
)
<path>
-file-browser-dir Set the starting directory. (default: current working directory)
-file-browser-resume
Resume from the last opened directory. (default: disabled)
<path>
-file-browser-resume-file Set the resume file. When resuming is enabled, the path of the last opened directory is saved to this file. (default:
$XDG_USER_CONFIG_DIR/rofi/file-browser-resume
)
<depth>
-file-browser-depth List files recursively until a depth is reached. A value of 0 means no depth limit. (default: 1)
-file-browser-follow-symlinks
Follow symlinks when listing files recursively. (default: don't follow symlinks)
When symlinks are followed, every file is still only reported once.
-file-browser-show-hidden
Show hidden files. (default: hidden)
-file-browser-only-dirs
Only show directories. (default: disabled)
-file-browser-only-files
Only show files. (default: disabled)
-file-browser-no-descend
Open directories instead of descending into them. (default: disabled)
-file-browser-open-parent-as-self
Treat the parent directory (
..
) as the current directory when opened. (default: disabled)
-file-browser-exclude
Exclude paths by matching the basename to glob patterns. (default: none)
Supports
*
and?
.
-file-browser-stdin
Read paths from stdin. (default: disabled)
Paths must either be relative to the starting directory (
-file-browser-dir
) or absolute. It is not checked if the files actually exist. The paths are not sorted or matched to any exclude patters.
-file-browser-stdout
Instead of opening files, print absolute paths of selected files to stdout. (default: disabled)
-file-browser-oc-search-path
Search
$PATH
for executables and display them inopen custom
mode (after user-defined commands). (default: disabled)
<cmd>
-file-browser-oc-cmd Specify user-defined commands to be displayed in
open custom
mode. (default: none)
-file-browser-sort-by-type, -file-browser-no-sort-by-type
Enable / disable sort-by-type (directories first, files second, inaccessible directories last). (default: enabled)
-file-browser-sort-by-depth, -file-browser-no-sort-by-depth
Enable / disable sort-by-depth when listing files recursively. Sort-by-type is secondary to sort-by-depth if both are enabled. (default: disabled)
-file-browser-hide-parent
Hide the parent directory (
..
). (default: shown)
<path>
-file-browser-config Load options from the specified config file. (default:
$XDG_USER_CONFIG_DIR/rofi/file-browser
)Can be used multiple times to load options from multiple config files. When this option is specified, the default config file will not be loaded.
Key bindings
Supported key bindings are kb-accept-alt
, kb-custom-[0-19]
and none
(disables the key binding).
You can change the actual key bindings that correspond to kb-accept-alt
and kb-custom-[0-19]
in rofi's options.
Run rofi -show keys
to display rofi's key bindings and what they are bound to.
Run rofi -dump-config
or rofi -dump-xresources
to get a list of available options.
<rofi-key>
-file-browser-open-custom-key Set the key binding for
open custom
. (default:kb-accept-alt
)
<rofi-key>
-file-browser-open-multi-key Set the key binding for
open multi
. (default:kb-custom-1
)
<rofi-key>
-file-browser-toggle-hidden-key Set the key binding for toggling hidden files. (default:
kb-custom-2
)
Appearance
-file-browser-disable-icons
Disable icons. (default: enabled)
-file-browser-disable-thumbnails
Disable thumbnails for image files. (default: enabled)
-file-browser-disable-status
Disable the status line that shows the current path. (default: enabled)
<string>
-file-browser-path-sep Set the path separator for the status line. (default:
" / "
)
<string>
-file-browser-hide-hidden-symbol Set the indicator that hidden files are hidden. (default:
"[-]"
)
<string>
-file-browser-show-hidden-symbol Set the indicator that hidden files are shown. (default:
"[+]"
)
<string>
-file-browser-up-text Set the text for the parent directory. (default:
".."
).
<icon-name>
-file-browser-up-icon Set the icon for the parent directory. (default:
"go-up"
)
<icon-name>
-file-browser-fallback-icon Set the fallback icon used for files without icons (e.g. block devices). (default:
"text-x-generic"
)
<icon-name>
-file-browser-inaccessible-icon Set the icon for inaccessible directories. (default:
"error"
)
Example
rofi -modi file-browser-extended -show file-browser-extended \
-file-browser-cmd "exo-open" \
-file-browser-dir "/" \
-file-browser-depth 2 \
-file-browser-open-multi-key "kb-accept-alt" \
-file-browser-open-custom-key "kb-custom-11" \
-file-browser-hide-hidden-symbol "" \
-file-browser-path-sep "/" \
-file-browser-up-text "up" \
-file-browser-up-icon "go-previous" \
-file-browser-oc-search-path \
-file-browser-oc-cmd "gimp;icon:gimp" \
-file-browser-exclude workspace \
-file-browser-exclude '*.pdf'
Troubleshooting
If you encounter a problem, try running rofi from the command line. The plugin prints error messages if things go wrong. If that doesn't help, feel free to create a new issue.
Installation
Arch User Repository
This plugin can be found in the AUR under rofi-file-browser-extended-git.
NixOS
environment.systemPackages = with pkgs; [
(rofi.override {
plugins = [ rofi-file-browser ];
})
];
Dependencies
Dependency | Version |
---|---|
rofi | 1.6.1+ |
Compilation
Use the following steps to compile the plugin with CMake:
cmake .
make
make install # optional: install the plugin
Manpage
The manpage can be built from doc/rofi-file-browser-extended.1.ronn
using ronn.
This only matters if you plan to contribute, as the plugin comes with the already-compiled manpage.