Skip to main content

Overview

Wofi is a launcher and menu application for Wayland that serves as the application launcher and dmenu replacement in Kanagawa. It provides a fast, customizable interface for launching applications and selecting items.

Key Features

Fast Search

Instant fuzzy search across all installed applications

Theme Integration

Automatically styled to match your active color scheme

Multiple Modes

Application launcher, dmenu, and custom modes

Keyboard Navigation

Full keyboard control for efficient navigation

Configuration

Wofi configuration is located at ~/.config/wofi/config:
show=drun
mode=normal
anchor=center
location=center
prompt=Search...
filter_rate=100
allow_markup=true
no_actions=true
insensitive=true
allow_images=false
image_size=24
gtk_dark=true

Configuration Options

  • anchor=center - Window anchor position
  • location=center - Window location on screen
  • prompt=Search... - Search prompt text
  • show=drun - Show desktop applications by default
  • mode=normal - Normal display mode
  • filter_rate=100 - Search filter refresh rate
  • insensitive=true - Case-insensitive search
  • allow_markup=true - Enable Pango markup
  • allow_images=false - Disable application icons
  • image_size=24 - Icon size in pixels
  • gtk_dark=true - Use dark GTK theme

Styling

Wofi uses CSS for styling, located at ~/.config/wofi/style.css:
@import url("/home/nico/.config/wofi/colors/colors.css");

/* Global font */
* {
  font-family: 'CaskaydiaCove NFM', monospace;
  font-size: 18px;
}

/* Window */
window {
  margin: 0px;
  padding: 0px;
  border: none;
  background-color: transparent;
}

/* Outer Box */
#outer-box {
  margin: 5px;
  padding: 10px;
  border: 2px solid @fg;
  border-radius: 15px;
  background-color: @bg1;
}

/* Inner Box */
#inner-box {
  margin: 5px;
  padding: 10px;
  border: @blue;
  background-color: @bg1;
}

Theme Variables

Wofi automatically loads colors from colors/colors.css, which is generated by the theme system:
  • @bg1 - Background color
  • @fg - Foreground/text color
  • @blue - Accent color (borders, highlights)
  • @selected - Selected item background
  • @urgent - Urgent/warning color
Colors are automatically updated when you switch themes using the theme selector.

Usage

Application Launcher

Press SUPER + Space to open the application launcher:
# keybindings.conf
$menu = wofi --show drun
bind = $mainMod, space, exec, $menu
1

Open Launcher

Press SUPER + Space to open Wofi in drun mode
2

Type to Search

Start typing to search for applications
3

Navigate

Use arrow keys or type to navigate results
4

Launch

Press Enter to launch the selected application

Dmenu Mode

Wofi can be used as a dmenu replacement for custom scripts:
# Clipboard manager
cliphist list | wofi --dmenu | cliphist decode | wl-copy
Bound to SUPER + Q for quick clipboard access:
bind = $mainMod, Q, exec, cliphist list | wofi --dmenu | cliphist decode | wl-copy

Custom Modes

Wofi supports various display modes:
Desktop application launcher (default):
wofi --show drun

Keyboard Navigation

Navigation

  • Arrow Up/Down - Navigate items
  • Page Up/Down - Fast scroll
  • Home/End - Jump to start/end

Selection

  • Enter - Select item
  • Esc - Close menu
  • Tab - Auto-complete

Integration Examples

Clipboard Manager

Integration with cliphist for clipboard history:
#!/bin/bash
# Show clipboard history and copy selected item
cliphist list | wofi --dmenu | cliphist decode | wl-copy

Custom Menu

Create custom menus with Wofi:
#!/bin/bash
# Theme selector menu
themes=("kanagawa" "catppuccin" "gruvbox" "everforest")
selected=$(printf '%s\n' "${themes[@]}" | wofi --dmenu --prompt "Select theme:")

if [ -n "$selected" ]; then
  ~/.local/bin/theme-selector "$selected"
fi

Window Switcher

Create a window switcher using Hyprland and Wofi:
#!/bin/bash
# List all windows and switch to selected
hyprctl clients -j | jq -r '.[] | "\(.class) - \(.title)"' | \
  wofi --dmenu --prompt "Switch to:"

Styling Customization

Custom Colors

Override theme colors in style.css:
/* Custom color overrides */
#entry:selected {
  background-color: #7fb4ca;  /* Custom selection color */
  color: #1f1f28;
}

#input {
  border: 2px solid #957fb8;  /* Custom input border */
  border-radius: 10px;
  padding: 8px;
}

Font Customization

* {
  font-family: 'JetBrains Mono', monospace;
  font-size: 16px;
  font-weight: 500;
}

Border Radius

#outer-box {
  border-radius: 20px;  /* More rounded corners */
}

#entry {
  border-radius: 8px;
  margin: 2px;
}

Command Line Options

Wofi supports various command line options:
# Show specific mode
wofi --show drun
wofi --show run
wofi --show dmenu

# Custom prompt
wofi --show drun --prompt "Launch:"

# Custom width and height
wofi --show drun --width 600 --height 400

# Custom style
wofi --show drun --style /path/to/style.css

# Case-sensitive search
wofi --show drun --insensitive=false

Configuration Files

~/.config/wofi/
├── config              # Main configuration
├── style.css          # Custom styling
└── colors/
    ├── colors.css     # Current theme colors (auto-generated)
    └── custom/
        ├── kanagawa.css
        ├── catppuccin.css
        ├── gruvbox.css
        └── everforest.css

Troubleshooting

Update the desktop application cache:
update-desktop-database ~/.local/share/applications
Ensure the colors file exists:
ls ~/.config/wofi/colors/colors.css
If missing, run the theme selector:
~/.local/bin/theme-selector
Verify CSS syntax and file path:
wofi --show drun --style ~/.config/wofi/style.css

Learn More

Wofi Documentation

Official Wofi documentation and man pages

Theme System

Learn how Wofi integrates with themes