fuzzel
Launch applications using a fuzzy finder
TLDR
Run applications
Run fuzzel in dmenu mode
Display a menu of the output of the ls command
Display a menu with custom items separated by a new line (\n)
Let the user choose between multiple items and save the selected one to a file
Reset apps usage count (default cache directory: $XDG_CACHE_HOME/fuzzel)
Launch fuzzel on a specific monitor, see wlr-randr or swaymsg --type get_outputs
Use fuzzel to do an online search
SYNOPSIS
fuzzel [OPTION…]
PARAMETERS
--help
Show help message and exit
--version
Print version information
--dmenu
Enable dmenu compatibility mode (read from stdin, write to stdout)
--prompt=STRING
Set prompt text (default: >)
--lines=LINES
Maximum number of lines to display (default: 15)
--width=WIDTH
Window width as fraction (0.0-1.0) or pixels (default: 50)
--height=HEIGHT
Window height fraction (0.0-1.0, default: 0.20)
--font=FONT
X11 font string (e.g., 'Fira Code:12')
--icon-theme=THEME
Icon theme name (default: from XDG)
--icon-size=SIZE
Icon size in pixels (default: 32)
--no-fuzzy
Disable fuzzy matching (use prefix only)
--fuzzy-threshold=THRESHOLD
Minimum fuzzy match score (0.0-1.0, default: 0.0)
--bg-color=COLOR
Background color (e.g., #rrggbbaa)
--fg-color=COLOR
Foreground/text color
--selection-bg-color=COLOR
Selected item background color
--selection-fg-color=COLOR
Selected item text color
--border-color=COLOR
Window border color
--border-width=WIDTH
Border width in pixels (default: 2)
--padding-horizontal=PX
Horizontal padding (default: 10)
--padding-vertical=PX
Vertical padding (default: 10)
--line-height=HEIGHT
Line height multiplier (default: 1.0)
--show-actions
Show application actions
--terminal=COMMAND
Terminal to use for non-GUI apps
--no-hidden
Hide desktop entries with NoDisplay=true
--log-level=LEVEL
Logging verbosity (error|warn|info|debug)
DESCRIPTION
Fuzzel is a lightweight, fast fuzzy finder and application launcher designed specifically for Wayland compositors like Sway, Hyprland, and River.
It provides an efficient way to search and execute applications, commands, or scripts using fuzzy string matching, which ranks results based on relevance rather than strict prefixes. Users type to filter a list of desktop entries from $XDG_DATA_DIRS/applications, with support for icons via icon themes.
Key strengths include seamless Wayland integration (no XWayland needed), customizable styling through a simple INI config file, and compatibility with dmenu protocols for scripting. It displays as a centered, resizable window with smooth keyboard navigation: arrow keys or j/k for selection, Enter to run, Escape or Ctrl+G to exit.
Fuzzel supports multiple modes: default launcher, dmenu (stdin input/output), query mode for custom lists, and stdin-lines for multi-line input. Performance is optimized for large entry lists, making it ideal for minimalistic Wayland setups. Unlike rofi or wofi, fuzzel's matching algorithm is particularly snappy and tunable via options like --no-fuzzy or match thresholds.
Configuration allows fine-tuning fonts, colors, padding, line spacing, and behaviors like hiding hidden apps (--no-hidden). It's script-friendly, outputting selected entry details in dmenu mode for easy parsing.
CAVEATS
Wayland-only; requires layer-shell protocol support in compositor. No mouse support by default. Config changes require restart.
CONFIGURATION
Uses ~/.config/fuzzel/fuzzel.ini for persistent settings like colors, fonts, and keybinds. Supports [main] section and overrides.
KEYBINDINGS
Customizable via config: default up/down/tab/shift+tab for nav, ctrl+r to reload entries, ctrl+shift+space for history.
INPUT MODES
--dmenu: pipe-driven scripts.
stdin: custom lists.
Launch with fuzzel --dmenu for compatibility.
HISTORY
Developed by Simon Ser (emersion) starting 2020 for Sway/Wayland ecosystem. Initial release 1.0 in 2021; now at 1.10+ with ongoing features like better theming and Hyprland support.


