Fuzzel: A great dmenu and rofi alternative for Wayland

Fuzzel: A great dmenu and rofi alternative for Wayland
Different examples of Fuzzel in action

Fuzzel is a versatile app and utility launcher for Wayland. If you are familiar with dmenu and rofi, fuzzel is largely compatible with them.

Screenshots

What's Fuzzel good for?

Besides launching applications, as a dmenu alternative Fuzzel can be used for many utility tasks. These include:

Fuzzel's features

For app launching

  • Fuzzy-find applications from a list and launch them
  • Icon support
  • Remembers frequently launched applications
  • Customize which .desktop files are searched
  • Option to filter apps based on OnlyShowIn and NotShowIn
  • 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

For dmenu mode

  • 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 dmenu enables dmenu mode
  • Option for null-separated input

For all modes

  • Numerous customizable key bindings, based on Emacs
  • Mouse support
  • Paste support
  • A number of theming options, which can be set in a separate include file
  • 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

Here's my Fuzzel config from ~/.config/fuzzel/fuzzel.ini:

dpi-aware=no
icon-theme=Papirus-Dark
width=25
font=Hack:weight=bold:size=36
line-height=50
fields=name,generic,comment,categories,filename,keywords
terminal=foot -e
prompt="❯   "
show-actions=yes
exit-on-keyboard-focus-loss=no

[colors]
background=282a36fa
selection=3d4474fa
border=fffffffa

[border]
radius=20

[dmenu]
exit-immediately-if-empty=yes

Example swayr config for fuzzel

Here's a swayr config from ~/.config/swayr/config.toml that can be used with swayr switch-window. It demonstrates using an emoji in a prompt and also use's Fuzzel's new support for icons in dmenu mode:

[menu]
executable = 'fuzzel'
args = [
    '--dmenu',
     '--prompt=🪟❯ ',
     '--width=100',
     '--font=Hack Nerd Font Mono:style=Bold:size=18',
     '--line-height=28',
]

[format]
window_format = "{app_name:{:<11.11}} “{title:{:<60.60}...}” {id:{:<3.3}} on {workspace_name:{:<13.13}}\u0000icon\u001f{app_icon}"
indent = '    '

More Fuzzel!

See all Fuzzel posts.