fuzzel.ini(5)

NAME
fuzzel.ini - configuration file for fuzzel(1)

DESCRIPTION

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.

SECTION: main

include
    Absolute path to configuration file to import.

    The import file has its own section scope. I.e. the including configuration is still in the default section after the include, regardless of which section the included file ends in.

        •   The path must be an absolute path, or start with ~/.
        •   Multiple include directives are allowed, but only one path per directive.
        •   Nested imports are allowed.

    Default: not set.

output
    Output (monitor) to display on. You can list the available outputs with wlr-randr or with Sway using swaymsg -t get_outputs.

    Example: DP-1

    Default: Not set-- let the compositor choose output.

font
    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.

    Examples:
        •   Dina:weight=bold:slant=italic
        •   Courier New:size=12
        •   Fantasque Sans Mono:fontfeatures=ss01

    Default: monospace.

use-bold
    Boolean. When set, fuzzel may use bold fonts. For example, for the currently selected item. Default: no

dpi-aware
    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.

    Default: auto.

placeholder
    Text to display as placeholder in the input box. Default: empty.

prompt
    String to use as input prompt. Note that trailing spaces are trimmed, unless the string is quoted. Default: "> ".

icon-theme
    Icon theme. Note that the name is case sensitive. Default: hicolor.

icons-enabled
    Boolean. When enabled, application icons (from the selected icon-theme) will be rendered. Default: yes.

hide-before-typing
    Boolean. When enabled, application list will be hidden until the first letter is typed. When the prompt is cleared again, the list will appear. Default: no.

fields
    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:

    •   filename
    •   name
    •   generic
    •   exec
    •   categories
    •   keywords
    •   comment

    "filename" is the ".desktop" file name.

    Default: filename,name,generic.

password-character
    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: *.

match-mode
    One of exact, fzf and fuzzy.

    exact: what you type is matched exactly against each field in the fields list.

    fzf: fzf-style matching, where substrings from what you have typed are matched against each field in the fields list.

    fuzzy: levenshtein-based fuzzy matching of what you have typed against each field in the fields list.

    Default: fzf

sort-result
    Boolean. Whether to sort the result or not. Disabling sorting means no comparisons will be made between match results. I.e. launch count, match length, etc will be ignored. This effectively disables the cache (though, the cache is still updated on exit).

    This can improve search latency when searching very large data sets.

    Default: yes

match-counter
    Boolean. When enabled, the match count and total count is displayed on the right-hand side of the input prompt. Disabling the counter also improves performance when loading a very large number of dmenu entries from STDIN.

    Default: no.

filter-desktop
    Boolean. Filter desktop files based on the value of XDG_CURRENT_DESKTOP.

show-actions
    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
    terminal command to use when launching 'terminal' programs, e.g. "xterm -e". Default: $TERMINAL -e.

list-executables-in-path
    Boolean. When enabled, the list will include executables from the PATH environment variable. Default: no.

launch-prefix
    Prefix to add before argv of executed program. If set, fuzzel will pass the Desktop File ID of the chosen application (see the Desktop Entry specification) in the FUZZEL_DESKTOP_FILE_ID environment variables. Default: not set.

anchor
    Set window anchor, i.e. where on screen the window will be displayed. You can choose one from:

    •   top-left
    •   top
    •   top-right
    •   left
    •   center
    •   right
    •   bottom-left
    •   bottom
    •   bottom-right

    Default: center

x-margin
    Horizontal margin away from the anchor point in pixels. Default: 0.

    Note: this option has no effect when anchor=center, top or bottom.

y-margin
    Vertical margin away from the anchor point in pixels. Default: 0.

    Note: this option has no effect when anchor=center, left or right.

lines
    Number of matches to show. Default: 15.

width
    Window width, in characters. Border and margins are not included in this. Default: 30.

tabs
    Number of spaces a tab is expanded to. Default: 8.

horizontal-pad
    Horizontal padding, in pixels, between border and content. Default: 40.

vertical-pad
    Vertical padding, in pixels, between border and content. Default: 8.

inner-pad
    Vertical padding between prompt and match list, in pixels. Default: 0.

image-size-ratio
    The ratio of the large image displayed when there are only a "few" matches, compared to the full window size. Set to 1 to disable the the large images. Default: 0.5.

line-height
    Override line height from font metrics. Default: use font metrics.

letter-spacing
    Additional letter spacing. Negative values are allowed. Default: 0.

layer
    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.

    Default: overlay

keyboard-focus
    Keyboard focusing mode, valid modes are exclusive and on-demand.

    exclusive locks keyboard focus to fuzzel, receiving all keyboard input until closed.

    on-demand makes fuzzel focus like a regular window, allowing other windows to take keyboard focus by e.g. clicking on them. By default switching keyboard focus will immediately close fuzzel, using exit-on-keyboard-focus-loss=no allows interacting with other windows while fuzzel is open.

    Default: exclusive

exit-on-keyboard-focus-loss
    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.

    Default: yes

render-workers
    Number of threads to use for rendering. Set to 0 to disable multithreading. Default: the number of available logical CPUs (including SMT). Note that this is not always the best value. In some cases, the number of physical cores is better.

match-workers
    Number of threads to use for matching. Set to 0 to disable multithreading. Default: the number of available logical CPUs (including SMT). Note that this is not always the best value. In some cases, the number of physical cores is better.

delayed-filter-ms
    Time, in milliseconds, to delay refiltering when there are more matches than delayed-filter-limit. Default: 300.

delayed-filter-limit
    When there are more matches than this, switch from immediate refiltering to delayed refiltering (see delayed-filter-ms). Default: 20000.

cache
    Specify the default cache location. If unset, $XDG_CACHE_HOME/fuzzel will be used. Set to /dev/null to disable caching. Default: not set.

SECTION: colors

All color values are in RGBA.

background
    Background color. Default: fdf6e3ff.

text
    Text (foreground) color of unselected entries. Default: 657b83ff.

prompt
    Text (foreground) color of prompt character(s). Default: 586e75ff.

placeholder
    Text (foreground) color of the placeholder string. Default: 93a1a1ff.

input
    Text (foreground) color of input string. Default: 657b83ff.

match
    Text (foreground) color of the matched substring. Default: cb4b16ff.

selection
    Background color of the selected entry. Default: eee8d5ff.

selection-text
    Text (foreground) color of the selected entry. Default: 586e75ff.

selection-match
    Text (foreground) color of the matched substring of the selected entry. Default: cb4b16ff.

counter=HEX
    The color of the match count stats printed at the right-hand side of the input prompt. See COLORS. Default: 93a1a1ff.

border
    Border color. Default: 002b36ff.

SECTION: border

width
    Width of the border, in pixels. Default: 1.

radius
    Amount of corner "roundness". Default: 10.

SECTION: dmenu

mode
    One of text or index. Determines what fuzzel prints on stdout when an entry is selected: text prints the entry itself, index prints the index of the selected entry. Index values start at zero for the first entry. Default: text.

exit-immediately-if-empty
    Boolean. If enabled, fuzzel will not run at all (i.e. it will not open a window, and will not print anything on stdout) if there's nothing on stdin. Default: no.

SECTION: key-bindings

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-forward, you must unmap the default binding. This can be done by setting action=none; e.g. delete-line-forward=none.

cancel
    Quit fuzzel without executing anything. Default: Control+g Control+c Control+bracketleft Escape.

execute
    Execute the currently selected entry. Or, in dmenu mode, print the selected entry on stdout. Default: Return KP_Enter Control+y.

execute-or-next
    If there is a single match, execute it. Or, in dmenu mode, print the selected entry on stdout. If there are more than one match, select the next entry. Wraps around when the last entry has been reached. Default: Tab.

execute-input
    Execute the raw input as is, regardless of whether it matches anything in the list or not. In dmenu mode, prints the selected entry on stdout instead. Default: Shift+Return Shift+KP_Enter.

cursor-left
    Moves the cursor one character to the left. Default: Left Control+b.

cursor-left-word
    Moves the cursor one word to the left. Default: Control+Left Mod1+b.

cursor-right
    Moves the cursor one character to the right. Default: Right Control+f.

cursor-right-word
    Moves the cursor one word to the right. Default: Control+Right Mod1+f.

cursor-home
    Moves the cursor to the beginning of the input. Default: Home Control+a.

cursor-end
    Moves the cursor to the end of the input. Default: End Control+e.

delete-input
    There is no standalone binding to clear the input. Use Control+a to go into the beginning of the input, followed the delete-line-forward binding. By default, Control+k.

delete-line-backward
    Deletes everything before the cursor. Default: Control+u.

delete-line-forward
    Deletes everything after the cursor. Default: Control+k.

delete-prev
    Deletes the character before the cursor. Default: BackSpace Control+h.

delete-prev-word
    Deletes the word before the cursor. Default: Mod1+BackSpace Control+BackSpace Control+w.

delete-next
    Deletes the character after the cursor. Default: Delete.

delete-next-word
    Deletes the word after the cursor. Default: Mod1+d Control+Delete.

insert-selected
    Copies the selected entry to the prompt, replacing the current prompt. In application mode, the Exec line is inserted, and in dmenu mode the entry itself is used. Default: Control+Tab.

expunge
    Removes the currently selected entry from the cache (of most commonly launched applications). Default: Shift+Delete.

clipboard-paste
    Pastes from the clipbard. Default: Control+v XF86Paste.

primary-paste
    Pastes from the primary selection. This action is also bound to the middle mouse button (this is currently not configurable). Default: Shift+Insert Shift+KP_Insert.

prev
    Select the previous entry. Does not wrap around when the first entry has been reached. Default: Up Control+p.

prev-with-wrap
    Select the previous entry. Wraps around when the first entry has been reached. Default: ISO_Left_Tap. (Shift+Tab)

prev-page
    Switch to the previous page. Default: PageUp KP_PageUp.

next
    Select the next entry. Does not wrap around when the last entry has been reached. Default: Down Control+n.

next-with-wrap
    Select the next entry. Wraps around when the last entry has been reached. Default: unbound.

next-page
    Switch to the next page. Default: Page_Down KP_Page_Down.

first
    Select the first entry, on the first page. Default: Control+Home.

last
    Select the last entry, on the last page. Default: Control+End.

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.

    Default:
        •   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

SEE ALSO

•   fuzzel(1)
•   https://specifications.freedesktop.org/desktop-entry-spec/desktop-entry-spec-latest.html
•   https://codeberg.org/dnkl/fuzzel