Skip to content

Quick Start

This guide will help you configure and launch your first application with Raffi.

  1. Create the config directory

    Raffi looks for its configuration at ~/.config/raffi/raffi.yaml. Create the directory:

    Terminal window
    mkdir -p ~/.config/raffi
  2. Create a basic configuration file

    Create ~/.config/raffi/raffi.yaml with a simple entry:

    version: 1
    launchers:
    firefox:
    binary: firefox
    icon: firefox
    description: Firefox Web Browser
    terminal:
    binary: kitty
    icon: kitty
    description: Kitty Terminal
    file_manager:
    binary: nautilus
    icon: folder
    description: File Manager
  3. Test your configuration

    Run Raffi in print-only mode to verify the configuration:

    Terminal window
    raffi -p

    This will display your configured entries without executing them.

Raffi supports two interface modes:

Fuzzel mode uses the external Fuzzel launcher for a minimal, Wayland-native experience.

First, ensure Fuzzel is installed:

Terminal window
sudo pacman -S fuzzel
Terminal window
raffi

Or explicitly specify Fuzzel mode:

Terminal window
raffi -u fuzzel

Customize Fuzzel’s look in ~/.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
[colors]
background=282a36ff
text=f8f8f2ff
match=8be9fdff
selection=44475add
border=bd93f9ff

Raffi can execute inline scripts with any interpreter:

launchers:
hello_script:
script: |
echo "Hello from Bash!"
notify-send "Raffi" "Script executed successfully"
description: "Hello Script"
icon: "script"

Integrate Raffi with your Wayland compositor:

Add to ~/.config/sway/config:

set $menu raffi -p
set $super Mod4
bindsym $super+Space exec $menu | xargs swaymsg exec --

Reload Sway config:

Terminal window
swaymsg reload

Now press Super+Space to launch Raffi!

Just start typing a mathematical expression:

2 + 2 * 5
sqrt(144) + log(100)
sin(90) * 50

Press Enter to copy the result to clipboard.

Type $ followed by an amount and currency:

$100 to eur
$50 gbp to usd
$10eur to jpy
Configure currency converter
addons:
currency:
enabled: true
trigger: "$"
default_currency: USD
currencies: ["USD", "EUR", "GBP", "JPY", "CAD"]

Navigate your filesystem by typing:

  • / - Browse root directory
  • ~ - Browse home directory
  • /home/user/Documents - Browse specific path

Keyboard shortcuts:

  • Enter: Open file/directory
  • Alt+Enter: Copy path to clipboard
  • Tab: Autocomplete
  • Ctrl+H: Toggle hidden files

Add web searches to your config:

addons:
web_searches:
- name: "Google"
keyword: "g"
url: "https://google.com/search?q={query}"
icon: "google"
- name: "GitHub"
keyword: "gh"
url: "https://github.com/search?q={query}"
icon: "github"
- name: "Wikipedia"
keyword: "wiki"
url: "https://en.wikipedia.org/wiki/{query}"
icon: "wikipedia"

Then type:

g wayland protocol
gh user/repo
wiki rust programming
Launch applications with custom arguments
launchers:
firefox_private:
binary: firefox
args: [--private-window]
icon: firefox
description: Firefox Private Window
code_workspace:
binary: code
args: [~/projects/myapp]
icon: vscode
description: Open MyApp in VS Code
Conditional entries (show only when available)
launchers:
gnome_tweaks:
binary: gnome-tweaks
description: GNOME Tweaks
icon: gnome-tweak-tool
ifenveq: [DESKTOP_SESSION, GNOME]
wayland_only_app:
binary: my-wayland-app
description: Wayland App
icon: wayland
ifenvset: WAYLAND_DISPLAY
docker_compose:
binary: docker-compose
description: Docker Compose
icon: docker
ifexist: docker-compose
Path expansion and environment variables
launchers:
custom_script:
binary: ${HOME}/bin/my-script
args: ["${XDG_DATA_HOME}/files", "~/Documents"]
icon: ~/icons/custom.png
description: My Custom Script
ifexist: ~/bin/my-script
System actions
launchers:
lock_screen:
binary: swaylock
args: [-f, -c, "000000"]
icon: system-lock-screen
description: Lock Screen
suspend:
binary: systemctl
args: [suspend]
icon: system-suspend
description: Suspend to RAM
poweroff:
binary: systemctl
args: [poweroff]
icon: system-shutdown
description: Power Off
Terminal window
raffi -p