Skip to content

UI Modes

Raffi supports two distinct user interface modes, each designed for different use cases and preferences.

Raffi can operate in two modes:

Fuzzel mode uses the external Fuzzel launcher and integrates naturally with Wayland environments.

  • Lightweight and fast
  • Seamless Wayland integration
  • Uses system Fuzzel configuration
  • Minimal resource usage

Fuzzel appearance is configured through ~/.config/fuzzel/fuzzel.ini:

dpi-aware=yes
font=RobotoMonoNerdFont-Thin:size=16
terminal=kitty
width=50
layer=overlay
exit-on-keyboard-focus-loss=no
inner-pad=15
fields=filename,name
[colors]
background=282a36ff
text=f8f8f2ff
match=8be9fdff
selection-match=8be9fdff
selection=44475add
selection-text=f8f8f2ff
border=bd93f9ff

Refer to the Fuzzel manual for full configuration details.

Terminal window
raffi -u fuzzel

For a significantly smaller binary (1.1 MB vs 15 MB), you can build without the native UI:

Terminal window
cargo build --release --no-default-features

This removes the iced GUI dependency while maintaining full Fuzzel functionality.

Native mode uses an internal iced-based graphical interface with fuzzy search, keyboard navigation, and theme support.

Terminal window
raffi -u native
set $menu raffi -p
set $super Mod4
bindsym $super+Space exec $menu | xargs swaymsg exec --
FeatureFuzzel ModeNative Mode
Size1.1 MB (no-default-features)15 MB
DependenciesRequires FuzzelSelf-contained
Calculator
Currency Converter
File Browser
Script Filters
Web Search
Text Snippets
Theme SupportSystem Fuzzel configBuilt-in dark/light
Configurationfuzzel.iniraffi.yaml

If no UI type is specified, Raffi automatically chooses:

  1. Fuzzel mode if fuzzel binary is found in PATH
  2. Native mode as fallback (if built with wayland feature)