wofi / dmenu / rofi replacement written in rust - packaged for debian
Find a file
2025-06-08 14:45:58 +02:00
.github/workflows Potential fix for code scanning alert no. 1: Workflow does not contain permissions 2025-05-25 16:04:09 +02:00
examples update readme 2025-06-08 14:45:58 +02:00
images add demo gif 2025-05-01 22:40:50 +02:00
styles update readme 2025-06-08 14:45:58 +02:00
worf improve theming 2025-06-08 14:45:58 +02:00
.gitignore add basic support for custom keys 2025-05-10 23:39:32 +02:00
Cargo.lock support web search, fixes #55 2025-06-08 14:45:58 +02:00
Cargo.toml add hyprswitch 2025-06-01 10:51:25 +02:00
COPYING.md initial commit 2025-04-06 22:34:04 +02:00
README.md update readme 2025-06-08 14:45:58 +02:00

🚀 Worf - Wayland Optimized Run Facilitator

🎯 Application launcher for Wayland, written in Rust with GTK4

Rust GTK4 Wayland


Features

Worf is yet another style launcher, heavily inspired by wofi, rofi, and walker. Built from the ground up with Rust and GTK4, it offers exceptional performance and modern styling capabilities.

🎪 Multiple Modes Support

  • 🧮 Math - Including binary/hex conversion and bitwise operations (&, |, ^, <<, >>)
  • 🚀 DRun - Desktop application launcher
  • 📁 File - File browser and launcher
  • 🖥️E SSH - Quick SSH connection launcher
  • Run - Command execution
  • 😊 Emoji - Emoji picker
  • 🔍 Web Search - Quick web searches
  • 🤖 Auto - Intelligent mode detection

🧠 Smart Auto Mode

Auto mode intelligently detects what you're trying to do! Use these prefixes for quick access:

Prefix Mode Description
ssh SSH Connect to servers (optional prefix)
? Web Search Search the web
/, $, ~ Files Browse filesystem

Demo


🎨 Styling & Theming

Styling is wofi-compatible with enhanced GTK4 features! Customize every aspect of your launcher.

🏷️ Available Selectors

Selector Description
window Main application window
outer-box Container for all elements
input Search input field
scroll Scrollable results container
inner-box Menu entries container
entry Individual result entry
text Entry text content
img Entry icons
row Entry row (for hover effects)
custom-key-label-text Custom key labels
custom-key-label-box Custom key label container
custom-key-hint-text Custom key hints
custom-key-hint-box Custom key hint container

⚙️ Setup

🌊 Hyprland Integration

Enable beautiful blur effects for Worf:

layerrule = blur, worf

📚 Library Usage

🔧 Developer-Friendly: Worf's launcher and UI components are available as a separate crate for building custom launchers.

⚠️ Note: The library API is currently in development and not yet available on crates.io.


🎯 Examples & Use Cases

The possibilities are endless! Here are some powerful examples of what you can build with Worf:

worf-hyprland-exit

Full-screen exit menu for Hyprland

Hyprland Exit

  • Full screen exit menu
  • Shell script using dmenu mode
  • Desktop hiding with background display
  • Uses launcher theme styling

worf-hyprswitch

Elegant window switcher

Hyprland Switch

  • Advanced window selector
  • Written in Rust using Worf API
  • Featuring AmberNight theme with centered content

🔐 worf-warden

Beautiful Bitwarden frontend

Worf Warden

  • Bitwarden integration via rbw
  • Additional dependencies required (see readme)
  • Showcasing GlacierPrism theme with blurred background

worf-rtw

Time tracking made simple

Worf RTW

  • Time tracking with rtw
  • Using AmberNight theme with custom positioning

🔄 Wofi Migration Guide

What's Compatible

  • Themes: Mostly compatible with existing wofi themes
  • Selectors: Same entity IDs for easy migration
  • Core Functionality: Similar behavior and features

⚠️ Breaking Changes

Area Change
Runtime Behavior differences
Themes GTK4 vs GTK3 differences
Config TOML format (quoted strings)
Colors Color files not supported
Options line_wrapline-wrap`
API Rust library only
Booleans Explicit true/false required

🗑️ Removed Features

Command Line Arguments

  • mode → Use show instead
  • dmenu → Use show instead
  • D → Arguments = config now
  • dark → Auto-detected from theme
  • filter-rate → No longer needed, Worf is fast enough

Configuration Options

  • stylesheet → Use style instead
  • color/colors → Use GTK4 CSS instead

🤝 Contributing

Found a compatibility issue? We welcome feedback and contributions! While 100% wofi compatibility isn't guaranteed, we're happy to help you transition to Worf.


📄 License

GPL V3, see Copying


Made with ❤️ and 🦀

Star this repo if you find it useful!