Fuzzel with language plugin support.
Forked from fuzzel .
Fuzzel is a Wayland-native application launcher and fuzzy finder, inspired by rofi and dmenu.
Fuzzel, with pinyin abbr
Fuzzel, with transparency, on top of a browser window showing a diff of a fuzzel commit
- Fuzzy-find applications from a list and launch them
- Icon support
- Remembers frequently launched applications
- Customize which
.desktopfiles are searched - Option to filter apps based on
OnlyShowInandNotShowIn - Startup notification support
- Launch prefix option to customize how apps are launched
- Display a large icon of current selection if there are only a few matches
- Option to display executables in $PATH
- Option to execute the input rather than return an app
- Support for localized strings
- dmenu mode where newline separated entries are read from STDIN
- Support for Rofi's protocol to support icons
- Optional cache with custom path
- Password mode
- Prompt-only mode
- Exact-match option to support multi-stage menus
- Option to return index of what's selected rather than what's selected
- Some dmenu option compatibility. Invoking it as
dmenuenables dmenu mode - Option for null-separated input
- Numerous customizable key bindings, based on Emacs
- Mouse & touchscreen support
- Paste support
- Emoji support
- A number of theming options, which can be set in a separate
includefile - fzf-style matching with ability to filter huge lists
- Optimized for performance
- Zsh and Fish completions
- Support for true fractional scaling
- Wayland native
For details, see man fuzzel and man fuzzel.ini
- pixman
- wayland (client and cursor libraries)
- xkbcommon
- cairo (optional, required by librsvg)
- libpng (optional)
- librsvg (optional, for enhanced SVG icon support)
- fcft 1
Fuzzel uses the builtin nanosvg backend to render SVG icons by default. Since nanosvg is somewhat limited, we also offer a librsvg backend for SVG icons. Note that librsvg also requires cairo.
To build, first, create a build directory, and switch to it:
mkdir -p bld/release && cd bld/releaseSecond, configure the build (if you intend to install it globally, you
might also want --prefix=/usr):
meson --buildtype=release \
-Denable-cairo=disabled|enabled|auto \
-Dpng-backend=none|libpng \
-Dsvg-backend=none|librsvg|nanosvg \
../..-D{png,svg}-backend can be used to force-enable or force-disable a
specific png and/or svg backend. Note that nanosvg is builtin
(i.e. it needs to external dependencies).
-Denable-cairo can be used to force-enable or force-disable cairo support.
When disabled, fuzzel will not support SVGs using the librsvg backend.
Three, build it:
ninjaYou can now run it directly from the build directory:
./fuzzelUse command line arguments to configure the look-and-feel:
./fuzzel --helpOptionally, install it:
ninja installFor more detailed configuration information, see the man pages:
man fuzzel
man fuzzel.iniFuzzel has some automated tests in test/. To run them, Fish shell and wtype are required.
The test runner can be installed within Fish shell with:
fisher install jorgebucaran/fishtape
Once installed, the tests can be run with:
fishtape test/*.fish
Fuzzel is released under the MIT license.
Fuzzel uses nanosvg, released under the Zlib license.
- Liberapay: https://liberapay.com/dnkl
- GitHub Sponsors: https://github.com/sponsors/dnkl

