Fuzzel, app launcher and fuzzy finder has feature-packed 1.11 release

Fuzzel, app launcher and fuzzy finder has feature-packed 1.11 release
Fuzzel 1.11 in action

Fuzzel is a Wayland-native app launcher and fuzzy finder for Linux, inspired by Rofi and dmenu.

The five-year-old Fuzzel project recently had a feature-packed 1.11 release. Here's a visual rundown of what's new.

Instant filtering of huge lists

0:00
/0:08

Fuzzel can now filter streaming input and has an option for a counter.

Fuzzel was already blink-and-you'll-miss-it fast for app launching. A number of optimizations were made so that now Fuzzel performs well even if you give it a massive amount of input– more than 100,000 lines are no problem.

This is the kind task often given to the fzf command-line fuzzy-finder– finding a file within a massive folder structure.

One trick that Fuzzel shares fzf is displaying input content to filter even before all the content has arrived. Rofi has this feature, but most Rofi alternatives for Wayland do not.

Even more minimal? Hide input until you type

We launch the same applications over and over. Many applications that appear in the app picker may a distraction– they flash by while you filtering to match exactly what are looking for. To take the minimal aesthetic one step further Fuzzel has added a new option --hide-before-typing. This hides the list of items to filer until you start typing. If you combine this feature with a very low line count– one to three– you can have an especially minimal app launcher. See it in action:

0:00
/0:06

Demo new --hide-before-typing option

Ready to be your password prompter

0:00
/0:03

Fuzzel has all the features needed to be a password prompter by using --prompt-only --password and disabling the cache.

There are a bunch of different utilities out there to use dmenu or Rofi for password prompting. Fuzzel already supported a —password mode to hide what typed. In 1.11, Fuzzel also added a --prompt-only mode as well as a method to disable caching, --cache /dev/null. Here's dead-simple pinentry password-prompter using Fuzzel. You could give this as a config option for other apps that allow such custom pinentry apps.

#!/bin/sh

echo "OK Please go ahead"
while read stdin; do
	case $stdin in
	GETPIN | getpin)
		echo "D $(fuzzel --prompt-only "Passphrase: " --cache /dev/null --password --dmenu)"
		echo "OK"
		;;
	BYE | bye)
		echo "OK closing connection"
		exit 0
		;;
	*)
		echo "OK"
		;;
	esac
done

If you'd like support more features, consider forking pinentry-dmenu to adapt it to Fuzzel.

If you accidentally add something to the cache, there's now Shift+Delete keybinding to remove the current entry.

Some expected features have arrived: mouse support and paste support

Enough said. Mouse support includes selecting entries, exiting with right click and scrolling with the scroll wheel. You can also now paste into search box.

For example, you could type `mpv `, paste in a YouTube URL, press Shift-Enter, and the video player will launch with your URL as an argument.

Pre-filter with --search

The new --search option allows pre-populating the search box. This servers a couple of use-cases. This is a feature that the Wofi launcher has.

If you wanted to build a short to a particular subset of apps, you could now launch Fuzzel like fuzzel --search settings to pre-filter to only settings apps.

More theming options

0:00
/0:05

Example of Fuzzel being used to rename a Sway workspace, using Dracula theme.

A number of additional options were added to update the look of Fuzzel, including:

  • New options --x-margin --y-margin which place the launcher some distance away from the anchor point, in pixels. This allows Fuzzel to float near a window border
  • --prompt-color and colors.prompt, controlling the
    text/foreground color of the prompt
  • --input-color and colors.input, controlling the text/foreground
    color of the input string
  • Match count can now printed at the right-hand side of the input
    prompt. It is disabled by default, and can be enabled with either
    the --counter command line option, or the match-counter setting in fuzzel.ini. If you feeding Fuzzel a large amount of input data, seeing this number change lets you know that data is still arriving.
  • Placeholder text (for the input box), controlled by the new
    --placeholder, --placeholder-color command line options, and the placeholder and colors.placeholder options in fuzzel.ini
  • --counter-color and colors.counter, controlling the color of the match count.
  • The currently selected entry may now be rendered with a bold
    font. It is disabled by default, and can be enabled either via the
    new --use-bold command line option, or by setting use-bold=yes, in fuzzel.ini.
  • There's a new option to not sort results. See sort-result option in fuzzel.ini, and --no-sort command line option.

Some published themes for Fuzzel include Catppuccin and Dracula.

To use a theme, you can add a line like this to the main section of your fuzzel.ini:

include=~/.config/fuzzel/themes/markstos.ini

Then in a file like ~/.config/fuzzel/themes/your-theme.ini, add anything you would add to your fuzzel.ini. Here's my personal "markstos" theme file, used on the screencasts above:

prompt="❯   "
icon-theme=Papirus-Dark

width=25
font=Hack:weight=bold:size=36
line-height=50

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

[border]
radius=20
What’s new in Fuzzel 1.10
Fuzzel is a rofi alternative for Wayland. It’s a versatile picker and launcher utility for desktop Linux. The last time I gave an update on Fuzzel was when 1.8 released which compared it to some altenatives. Let’s look at some recent feature additions since then. New --dmenu0 option Perhaps