Fuzzel 1.13 adds new features for menu building and usability

Fuzzel, a popular Linux app-launcher and menu building tool on Linux has recently released version 1.13.
While Fuzzel may be best known as an app launcher, it's a popular choice for building little menus. See What's Fuzzel Good For? for examples.
In the 1.12 and 1.13 releases, several more options were added help build menus. Here are some highlights and examples:
Menu-building features
--select-index=INDEX
Pre-select the entry with the index value. Example uses:
- For a clipboard manager, to pre-select the second entry instead of the first
- For a window switcher, to select the second-most-current window.
Fuzzel already supports the --index
flag for returning the index of a result instead of the value– another useful option for utilities.
--with-nth / --accept-nth
An alternative to using parallel data structures and --index
is pass in rows tab-separated data and use these flags to display and return different columns. --with-nth
selects one or more columns to display. While --accept-nth
selects one or more columns to return. You could imagine picking from a tab-separated file of emoji data, with symbols, names and descriptions. Maybe you want to display the first two columns and return the second.
A future version may also support a third option to select which columns to match against. For example, maybe you want to match against emoji descriptions, but not display them– emoji pickers on phone keyboards can work like that.
--auto-select
When one option is left, automatically select it. For example, a simple a simple Yes/No menu where typing any character in Yes/No selects it.
➤ echo -e "👍 Yes\n👎 No" | ./build/fuzzel --dmenu --minimal-lines --auto-select --hide-prompt --width=7
--hide-prompt
Minimalists and menu-builders rejoice! Now there's an option to hide the prompt and input line. This is useful for touchscreen or mouse-driven menus. It can also be used for a minimal design aesthetic, as the while the prompt is hidden, typing to filter to still works. Suitable for simple menus.
--minimal-lines
If you are building a little menu that may produce between two to ten lines to select from, it's a chore to calculate how many lines to display. With --minimal-lines
, Fuzzel will display a maximum of lines
set in your config file, but if the actual input has fewer lines, the number of lines of input will be used instead.
--selection-radius
Now you can round the corners of the selection for a more button-like look to the selection.
echo -e '⏻ Power Off\n Restart' | fuzzel --hide-prompt --minimal-lines --dmenu --width 11 --selection-radius=6

Fallback icons in dmenu mode
Fuzzel has had the ability to display icons in dmenu mode for a while. Now there's the option for fallback icons in dmenu mode. If the primary icon is not found, another can be used instead. For example, try a Firefox icon and if not found, return a web browser icon.
Usability Features in Fuzzel
Besides menu-building features, this release of update added a number of details that improve usability:
- Touchscreen support, including making scrolling line-by-line instead of page-by-page.
- For hardcore keyboard users, Fuzzel added the ability to disable mouse support with
enable-mouse=no
in config file or--no-mouse
CLI option - When launching terminal apps, you can now set the title and app_id. This plays better with other window switching and management tools which may use these. See
terminal
entry inman fuzzel.ini
for details. - You can now set a Wayland namespace with
--namespace
. Useful in combination with other utilities that match against this. As example, both Hyprland and Swayfx have eyecandy options to match against namespaces. - And finally, long inputs now scroll side-to-side. Useful if you paste in a long URL and then want to scroll to the right side of it to edit it.
Demo of Fuzzel running with touchscreen support on SXMO on a phone!
In progress
- Gamma-correct blending, has been added. In 1.13 this only works with if the "nanosvg" SVG render is selected at compile time. These builds options are NOT the default in a number of Linux distros because the default renderer has more complete SVG support. Already since 1.13, another SVG rendering option has landed, "resvg" that supports both gamma-correct blending like nanosvg and has great SVG support like
librsvg
. Win-win! - Performance: Some edge cases with for people who had huge PNG icons or many directories to search are now faster.
What's next for Fuzzel?
Be on the lookout: There are a number of draft features that may get merged into a future version of Fuzzel including:
- Faster SVG rendering (already merged!)
- Official Nord (dark) theme
- Native window switching (specifically for Wayland compositors that support the wlr-foreign-toplevel-management protocol). The proposed version is not an "Alt-Tab" replacement in the sense that the windows are not ordered by Last Recently Used. Maybe one day if there's a Wayland protocol that exposed this information it will be supported.
- A hook to run a command to preview a selection for example, as window name was selected in the window picker, it could be pre-focused in the background.
Comments ()