LinuxCommandLibrary

wofi

Launch applications with a searchable interface

TLDR

Show the list of apps

$ wofi [[-S|--show]] drun
copy

Show the list of all commands
$ wofi [[-S|--show]] run
copy

Pipe a list of items to stdin and print the selected item to stdout
$ printf "[Choice1\nChoice2\nChoice3]" | wofi [[-d|--dmenu]]
copy

SYNOPSIS

wofi [options]
wofi [options] --dmenu [options]
wofi [options] --show mode [options]

PARAMETERS

--dmenu
    Run in dmenu compatibility mode, reading input from stdin and writing selected output to stdout.

--show
    Display entries from a specific mode, like run (applications in PATH), drun (desktop entries), or bemenu (stdin/stdout).

-c , --config
    Specify a custom configuration file for wofi.

-s , --style
    Load a CSS style file to customize wofi's appearance.

-i, --insensitive
    Perform case-insensitive matching when searching for entries.

-p , --prompt
    Set the text displayed as the prompt in the input field.

-H , --height
    Set the window height in percentage or pixels.

-W , --width
    Set the window width in percentage or pixels.

-x , --x
    Set the X-position of the window.

-y , --y
    Set the Y-position of the window.

-a , --anchor
    Anchor the window to a specific position (e.g., top, bottom, center).

-k , --keybind
    Define custom keybindings for actions within wofi.

-n, --normal-window
    Spawn wofi as a normal window instead of an override-redirect window.

-f, --fork
    Fork wofi into the background after launching, allowing the parent process to exit.

-t , --term
    Specify the terminal emulator command to use when launching applications in run mode.

--allow-markup
    Enable Pango markup for richer text formatting in entry descriptions.

--columns
    Set the number of columns to display entries.

--hide-scroll
    Hide the scrollbar in the entry list.

--cache-file
    Specify a cache file for drun mode to remember recent applications.

--exec-search
    Execute the search string directly if no results are found.

--pass-through
    Pass search string to stdin of command if no results.

--sort-order
    Set the sorting order for entries (e.g., alpha, recent, custom).

--custom-order-file
    Specify a file for custom sorting order in drun mode.

DESCRIPTION

wofi is a highly customizable application launcher and menu utility specifically designed for the Wayland compositor protocol. It serves as a modern alternative to traditional X11 tools like rofi or dmenu, providing a lightweight yet powerful interface for launching applications, executing commands, and selecting items from various lists. wofi boasts extensive styling capabilities through CSS, allowing users to tailor its appearance to match their desktop environment perfectly. It supports multiple modes of operation, including a "dmenu"-like interaction for scripting, a "run" mode for launching applications found in the PATH, and a "bemenu" mode. Its simplicity in configuration, combined with its flexibility, makes it a popular choice for users on Wayland-based systems seeking an efficient and visually integrated launcher.

CAVEATS

Wayland-only: wofi is designed exclusively for Wayland compositors and will not work on X11.
GTK-based: Its appearance and behavior are influenced by GTK themes and settings.
No built-in plugins: Unlike some other launchers, wofi focuses on core functionality and relies on external scripts for advanced integrations (e.g., clipboard history, emoji pickers).

THEMING WITH CSS

wofi's appearance is fully controlled by CSS files. Users can create custom .css files to change colors, fonts, sizes, padding, and more, offering a high degree of visual customization.

CONFIGURATION FILE

wofi uses a simple configuration file (default: ~/.config/wofi/config) to set persistent options and modes, making it easier to manage complex setups without long command-line arguments.

HISTORY

wofi emerged as a solution for users migrating from X11 to Wayland who were accustomed to the functionality of launchers like rofi and dmenu. Developed specifically for the Wayland environment, wofi aims to provide a lightweight, fast, and highly customizable alternative. Its development focus has been on Wayland compatibility, GTK integration, and flexible CSS-based theming, making it a popular choice in the Wayland ecosystem for application launching and interactive scripting.

SEE ALSO

dmenu(1), rofi(1), bemenu(1), fzf(1)

Copied to clipboard