LinuxCommandLibrary

fuzzel

Launch applications using a fuzzy finder

TLDR

Run applications

$ fuzzel
copy

Run fuzzel in dmenu mode
$ fuzzel [[-d|--dmenu]]
copy

Display a menu of the output of the ls command
$ [ls] | fuzzel [[-d|--dmenu]]
copy

Display a menu with custom items separated by a new line (\n)
$ echo -e "[red]\n[green]\n[blue]" | fuzzel [[-d|--dmenu]]
copy

Let the user choose between multiple items and save the selected one to a file
$ echo -e "[red]\n[green]\n[blue]" | fuzzel [[-d|--dmenu]] > [color.txt]
copy

Reset apps usage count (default cache directory: $XDG_CACHE_HOME/fuzzel)
$ rm [[-v|--verbose]] $HOME/.cache/fuzzel
copy

Launch fuzzel on a specific monitor, see wlr-randr or swaymsg --type get_outputs
$ fuzzel [[-o|--output]] "[DP-1]"
copy

Use fuzzel to do an online search
$ fuzzel [[-d|--dmenu]] [[-l|--lines]] 0 --placeholder "[Type your search]" | sed 's/^/\"/g;s/$/\"/g' | xargs firefox --search
copy

SYNOPSIS

command_that_generates_list | fuzzel [OPTIONS]

PARAMETERS

--font <font>
    Specifies the font and size to be used for displaying text in the menu, e.g., 'sans-serif 10'.

--width <width>
    Sets the width of the fuzzel window, either in pixels or as a percentage of the screen width.

--lines <lines>
    Determines the maximum number of visible lines displayed in the menu before scrolling is required.

--prompt <prompt>
    Sets the text string displayed as a prompt at the beginning of the input field.

--background <color>
    Defines the background color of the fuzzel window. Colors can be specified in hexadecimal (e.g., #RRGGBB).

--text-color <color>
    Sets the default color for the text displayed in the menu entries.

--selection-color <color>
    Specifies the background color of the currently highlighted or selected entry.

--selection-text-color <color>
    Sets the text color for the currently highlighted or selected entry.

--border-color <color>
    Defines the color of the border surrounding the fuzzel window.

--border-width <width>
    Sets the width of the window border in pixels.

--dmenu
    Enables dmenu compatibility mode, adjusting behavior for scripts expecting dmenu-like interaction.

DESCRIPTION

fuzzel is a lightweight and highly efficient application launcher specifically designed for Wayland compositors. It functions similarly to traditional X11 utilities like dmenu, by reading lines from standard input, presenting them in a searchable list, and outputting the user's selected line to standard output.

It is renowned for its speed, minimal resource usage, and seamless integration with Wayland environments. fuzzel focuses on core functionality, offering fuzzy matching for quick filtering of entries and a simple, command-line driven configuration approach. This design philosophy makes it an ideal choice for users seeking a straightforward, responsive, and native Wayland application menu without extensive feature bloat.

CAVEATS

fuzzel is primarily designed for Wayland compositors and might not function optimally or at all in X11 environments without a Wayland compatibility layer. Its configuration is heavily reliant on command-line arguments, offering less flexibility through dedicated configuration files compared to some other launchers.

INPUT AND OUTPUT

fuzzel typically receives its list of selectable entries via standard input (stdin). For example, a list of applications can be piped to it using commands like `ls /usr/bin/ | fuzzel`. Upon selection, the chosen entry is printed to standard output (stdout), allowing for seamless integration into shell scripts or other command chains.

HISTORY

fuzzel emerged to address the need for a fast, minimal, and native application launcher for the burgeoning Wayland ecosystem. While dmenu served as an inspiration for its core functionality, fuzzel was developed from the ground up to integrate seamlessly with Wayland compositors, aiming for low latency and a dependency footprint suitable for modern Linux desktop environments. Its development focuses on performance and Wayland-specific features, making it a popular choice for users of sway and other wlroots-based compositors.

SEE ALSO

dmenu(1), rofi(1), wofi(1)

Copied to clipboard