fuzzel uses the standard unix configuration format, with section based key/value pairs. The default section is usually unnamed, i.e. not prefixed with a [section]. However it can also be explicitly named [main], say if it needs to be reopened after any of the other sections.
fuzzel will search for a configuration file in the following locations, in this order:
- XDG_CONFIG_HOME/fuzzel/fuzzel.ini (defaulting to ~/.config/fuzzel/fuzzel.ini if unset)
- XDG_CONFIG_DIRS/fuzzel/fuzzel.ini (defaulting to /etc/xdg/fuzzel/fuzzel.ini if unset)
An example configuration file containing all options with their default value commented out will usually be installed to /etc/xdg/fuzzel/fuzzel.ini.
Output (monitor) to display on. If unset, the compositor will choose the monitor. Default: not set.
Comma separated list of fonts to use, in fontconfig format. That is, a font name followed by a list of colon-separated options. Most noteworthy is :size=n, which is used to set the font size. Note that the font size is also affected by the dpi-aware option.
- Courier New:size=12
- Fantasque Sans Mono:fontfeatures=ss01
auto, yes, or no.
When set to yes, fonts are sized using the monitor's DPI, making a font of a given size have the same physical size, regardless of monitor.
In this mode, the monitor's scaling factor is ignored; doubling the scaling factor will not double the font size.
When set to no, the monitor's DPI is ignored. The font is instead sized using the monitor's scaling factor; doubling the scaling factor does double the font size.
Finally, if set to auto, fonts will be sized using the monitor's DPI if all monitors have a scaling factor of 1. If at least one monitor as a scaling factor larger than 1 (regardless of whether the fuzzel window is mapped on that monitor or not), fonts will be scaled using the scaling factor.
Note that this option typically does not work with bitmap fonts, which only contains a pre-defined set of sizes, and cannot be dynamically scaled. Whichever size (of the available ones) that best matches the DPI or scaling factor, will be used.
Also note that if the font size has been specified in pixels (:pixelsize=N, instead of :size=N), DPI scaling (dpi-aware=yes) will have no effect (the specified pixel size will be used as is). But, if the monitor's scaling factor is used to size the font (dpi-aware=no), the font's pixel size will be multiplied with the scaling factor.
String to use as input prompt. Default: > .
Icon theme. Note that the name is case sensitive. Default: hicolor.
Boolean. When enabled, application icons (from the selected icon-theme) will be rendered. Default: yes.
Comma separated list of XDG Desktop entry fields to match against.
Even though fuzzel only displays the application names, matching can (and by default is) be done against other fields as well. Supported fields are:
Default character to use with the command line option --password. Note that this can be overridden on the command line, by explicitly specifying the character with --password=X. Default: *.
Boolean. Enables or disables fuzzy matching. Default: yes.
Boolean. Some desktop files define "actions", in addition to the application itself. Examples are "new window", "preferences", etc. When this option is enabled, those actions will be listed by fuzzel. Default: no.
terminal command to use when launching 'terminal' programs, e.g. "xterm -e". Default: $TERMINAL -e.
Prefix to add before argv of executed program. Default: not set.
Number of matches to show. Default: 15.
Window width, in characters. Border and margins are not included in this. Default: 30.
Horizontal padding, in pixels, between border and content. Default: 40.
Vertical padding, in pixels, between border and content. Default: 8.
Vertical padding between prompt and match list, in pixels. Default: 0.
The ratio of the large image displayed when there are only a "few" matches, compared to the full window size. Default: 0.5.
Override line height from font metrics. Default: use font metrics.
Additional letter spacing. Negative values are allowed. Default: 0.
Which layer to render the fuzzel window on. Valid values are top and overlay.
top renders above normal windows, but typically below fullscreen windows and lock screens.
overlay renders on top of both normal windows and fullscreen windows. Note that the order is undefined if several windows use the same layer. Since e.g. lock screens typically use overlay, that means fuzzel may or may not appear on top of a lock screen.
Boolean. If true, exit when the fuzzel window loses keyboard focus.
Setting this to false can be useful on compositors where enabling "focus-follows-mouse" causes fuzzel to exit as soon as the mouse is moved over another window. Sway (<= 1.7) exhibits this behavior, for example.
All color values are in RGBA.
Background color. Default: fdf6e3dd.
Text (foreground) color of unselected entries. Default: 657b83ff.
Text (foreground) color of the matched substring. Default: cb4b16ff.
Background color of the selected entry. Default: eee8d5dd.
Text (foreground) color of the selected entry. Default: 657b83ff.
Text (foreground) color of the matched substring of the selected entry. Default: cb4b16ff.
Border color. Default: 002b36ff.
Width of the border, in pixels. Default: 1.
Amount of corner "roundness". Default: 10.
This section lets you override the default key bindings.
The general format is action=combo1...comboN. That is, each action may have one or more key combinations, space separated. Each combination is in the form mod1+mod2+key. The names of the modifiers and the key must be valid XKB key names.
Note that if Shift is one of the modifiers, the key must not be in upper case. For example, Control+Shift+V will never trigger, but Control+Shift+v will.
Note that Alt is usually called Mod1.
xkbcli interactive-wayland can be useful for finding keysym names.
A key combination can only be mapped to one action. Lets say you want to bind Control+k to next. Since this is the default shortcut for delete-line, you must unmap the default binding. This can be done by setting action=none; e.g. delete-line=none.
Quite fuzzel without executing anythingDefault: Control+g Control+c Escape.
Execute the currently selected entry. Or, in dmenu mode, print the selected entry on stdout. Default: Return KP_Enter Control+y.
If there is a single match, execute it. If there are more than one match, select the next entry. Wraps around when the last entry has been reached. Default: Tab.
Moves the cursor one character to the left. Default: Left Control+b.
Moves the cursor one word to the left. Default: Control+Left Mod1+b.
Moves the cursor one character to the right. Default: Right Control+f.
Moves the cursor one word to the right. Default: Control+Right Mod1+f.
Moves the cursor to the beginning of the input. Default: Home Control+a.
Moves the cursor to the end of the input. Default: End Control+e.
Deletes the character before the cursor. Default: BackSpace.
Deletes the word before the cursor. Default: Mod1+BackSpace Control+BackSpace.
Deletes the character after the cursor. Default: Delete.
Deletes the word after the cursor. Default: Mod1+d Control+Delete.
Deletes everything after the cursor. Default: Control+k.
Select the previous entry. Does not wrap around when the first entry has been reached. Default: Up Control+p.
Select the previous entry. Wraps around when the first entry has been reached. Default: ISO_Left_Tab.
Switch to the previous page. Default: PageUp KP_PageUp.
Select the next entry. Does not wrap around when the last entry has been reached. Default: Down Control+n.
Select the previous entry. Wraps around when the first entry has been reached. Default: not bound.
Switch to the next page. Default: Page_Down KP_Page_Down.
- custom-1, custom-2, ..., custom-19
Execute the currently selected entry, then exit with a non-zero exit code. custom-1 exits with exit code 10, custom-2 with 11, custom-3 with 12, and so on.
- custom-1: Mod1+1
- custom-2: Mod1+2
- custom-3: Mod1+3
- custom-4: Mod1+4
- custom-5: Mod1+5
- custom-6: Mod1+6
- custom-7: Mod1+7
- custom-8: Mod1+8
- custom-9: Mod1+9
- custom-10: Mod1+10
- custom-11: Mod1+11
- custom-12: Mod1+12
- custom-13: Mod1+13
- custom-14: Mod1+14
- custom-15: Mod1+15
- custom-16: Mod1+16
- custom-17: Mod1+17
- custom-18: Mod1+18
- custom-19: Mod1+19