table of contents
- Tumbleweed 1.13.1-1.1
- Leap-16.0
| fuzzel(1) | General Commands Manual | fuzzel(1) |
NAME¶
fuzzel - Wayland app launcher and picker
SYNOPSIS¶
fuzzel [OPTIONS]...
DESCRIPTION¶
As a launcher, fuzzel lists all available XDG applications in a searchable window.
With the --dmenu flag, fuzzel works like a general-purpose picker like dmenu, rofi or fzf. Options to choose from are provided on the STDIN and the selected option is printed to STDOUT.
The search box supports Emacs-like key bindings.
Many things can be configured with fuzzel.ini(5) or command line options:
--config=PATH
--check-config
-n,--namespace=NAMESPACE
Default: launcher
--cache=PATH
You can also use this option to enable caching of dmenu entries. It is recommended that you use a separate cache file for each "type" of dmenu invocation; i.e. one for the browser history, another for emojis etc.
Set to /dev/null to disable caching.
Default: XDG_CACHE_HOME/fuzzel
-o,--output=OUTPUT
Example: DP-1
Default: Let the compositor choose output.
-f,--font=FONT[,FALLBACK1,FALLBACK2,...]
--use-bold
-D,--dpi-aware=no|yes|auto
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
--gamma-correct
Compared to the default (disabled), bright glyphs on a dark background will appear thicker, and dark glyphs on a light background will appear thinner.
FreeType can limit the effect of the latter, with a technique called stem darkening. It is only available for CFF fonts (OpenType, .otf) and disabled by default (in FreeType). You can enable it by setting the environment variable FREETYPE_PROPERTIES="cff:no-stem-darkening=0" before starting fuzzel.
Also be aware that many fonts have been developed on systems that do not do gamma-correct blending, and may therefore look thicker than intended when rendered with gamma-correct blending, since the font designer set the font weight based on incorrect rendering.
In order to represent colors faithfully, higher precision image buffers are required. For this reason, fuzzel uses 16-bit image buffers (instead of 8-bit) when gamma-correct blending is enabled.
It is not possible to enable gamma-correct blending in cairo enabled builds of fuzzel, since cairo does not support 16-bit image buffers.
-p,--prompt=PROMPT
--prompt-only=PROMPT
- does not read anything from STDIN
- sets --lines to 0
In non-dmenu mode it behaves exactly like --prompt.
--hide-prompt
--placeholder=TEXT
--search=TEXT
-i
--icon-theme=NAME
Example: Adwaita.
Default: default.
-I,--no-icons
--hide-before-typing
-F,--fields=FIELDS
- filename: the .desktop file's filename
- name: the application's name (title)
- generic: the application's generic name
- exec: the applications's executable, as specified in the desktop file. Note: may include command line options as well.
- keywords: the application's keywords
- categories: the application's categories
- comment: the application's comment
Default: filename,name,generic
--password=[CHARACTER]
-T,--terminal=TERMINAL ARGS
The command may contain the placeholder {cmd} which will be replaced with the actual command to be run. When {cmd} is present, the command is only substituted in those locations and is not appended at the end.
Examples:
- foot -a '{cmd}' -T '{cmd}' {cmd} sets app-id and title to the command name, then executes it
- xterm -e {cmd} executes the command in xterm
- xterm -e (no {cmd}) uses old behavior: appends command after terminal args
Default: not set.
-a,--anchor=ANCHOR
- top-left
- top
- top-right
- left
- center
- right
- bottom-left
- bottom
- bottom-right
Default: center
--x-margin=MARGIN
Note: this option has no effect when anchor=center, top or bottom.
--y-margin=MARGIN
Note: this option has no effect when anchor=center, left or right.
--select=STRING
--auto-select
--select-index=INDEX
-l,--lines=COUNT
--minimal-lines
-w,--width
--tabs=COUNT
-x,--horizontal-pad=PAD
-y,--vertical-pad=PAD
-P,--inner-pad=PAD
-b,--background=HEX
-t,--text-color=HEX
--prompt-color=HEX
--placeholder-color=HEX
--input-color=HEX
-m,--match-color=HEX
-s,--selection-color=HEX
-S,--selection-text-color=HEX
-M,--selection-match-color=HEX
--selection-radius=INT
--counter-color=HEX
-B,--border-width=INT
-r,--border-radius=INT
-C,--border-color=HEX
--show-actions
--match-mode=exact|fzf|fuzzy
--no-sort
--counter
--filter-desktop=[no]
--fuzzy-min-length=VALUE
--fuzzy-max-length-discrepancy=VALUE
--fuzzy-max-distance=VALUE
--line-height=HEIGHT
--letter-spacing=AMOUNT
--layer=top|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=exclusive|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 --no-exit-on-keyboard-focus-loss allows interacting with other windows while fuzzel is open.
Default: exclusive
--no-exit-on-keyboard-focus-loss
--launch-prefix=COMMAND
--list-executables-in-path
--render-workers=COUNT
--match-workers=COUNT
--delayed-filter-ms=TIME_MS
--delayed-filter-limit=N
--scaling-filter=FILTER
none, nearest and bilinear are the fastest options, but also have the worst looking results.
cubic, lanczos2, lanczos3 and lanczos3-stretched are the slowest options, with the best looking results.
box, and to some degree, linear, are in the middle, performance wise, while in most cases still being just as, or close to, as good as cubic and the lanczos filters.
Default: box
-d,--dmenu
Alternatively, you can symlink the fuzzel binary to dmenu. Fuzzel will then start in dmenu mode, without the --dmenu argument.
Fuzzel also supports PNG and SVG icons, using Rofi's extended dmenu protocol. To set an icon for an entry, append \0icon\x1f<icon-name>. Example:
Fallback icons using comma-separated values are also supported. When the primary icon is not found, subsequent icons in the list will be tried until one is successfully loaded. Example:
--dmenu0
--index
--with-nth=N|FMT
The argument can also be a format string (i.e free-format text), where {N} expands to the N:th column. Ranges on the form {N..M} and {N..} (open-ended) are also supported.
Example:
printf "1\tFirst\n2\tSecond" | fuzzel -d --with-nth=2
This will display the entries First and Second. When one of them is selected, the full input line (tabs included) are printed on stdout.
Setting it to 0 is the same as not specifying --with-nth at all.
--accept-nth=N|FMT
The argument can also be a format string (i.e free-format text), where {N} expands to the N:th column. Ranges on the form {N..M} and {N..} (open-ended) are also supported.
Example:
printf "1\tFirst\n2\tSecond" | fuzzel -d --accept-nth=2
This will display the entries 1 First and 2 Second. Depending on which one is selected, First or Second will be printed to stdout.
Setting it to 0 is the same as not specifying --accept-nth at all.
--nth-delimiter=CHARACTER
Default: \t (tab)
-R,--no-run-if-empty
--log-level={info,warning,error,none}
--log-colorize=[{never,always,auto}]
--log-no-syslog
--print-timing-info
--no-mouse
-v,--version
SEARCH PATHS¶
Fuzzel searches for XDG .desktop files according to the XDG Base Directory Specification (see link at bottom), looking in the applications subdirectory of the paths given by XDG_DATA_DIRS and XDG_DATA_HOME. By default, these are:
- ~/.local/share/applications
- /usr/local/share/applitions
- /usr/share/application
See the specification for details.
CONFIGURATION¶
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.
For more information, see fuzzel.ini(5).
LOCALIZATION¶
Fuzzel uses the localized strings from the .desktop files by default. To disable this, run fuzzel with LC_MESSAGES=C.
FONT FORMAT¶
The font is specified in FontConfig syntax. That is, a colon-separated list of font name and font options.
Examples:
- Dina:weight=bold:slant=italic
- Arial:size=12
COLORS¶
All colors must be specified as a RGBA quadruple, in hex format, without a leading '0x'.
EXAMPLES:
- white: ffffffff (no transparency)
- black: 000000ff (no transparency)
- black: 00000010 (semi-transparent)
- red: ff0000ff (no transparency)
The default color scheme is Solarized.
FILES¶
$XDG_CACHE_HOME/fuzzel
$XDG_RUNTIME_DIR/fuzzel-$WAYLAND_DISPLAY.lock
SEE ALSO¶
| 2025-08-27 |