|0.0.5||Feb 28, 2023|
|0.0.3||Feb 28, 2023|
#374 in Command line utilities
raffi - wofi launcher on yaml config file
raffi is a launcher for wofi, it uses a yaml config file to define the commands to be executed.
Go to the release page and grab the archive or package targeting your platform.
brew tap chmouel/raffi https://github.com/chmouel/raffi brew install raffi
cargo install raffi
With your favourite aurhelper for example yay :
yay -S raffi-bin
You can launch it directly and it will run the binary and args as defined in the configuration.
With the option
-p/--print-only it will only print the command to be executed.
You can specify a custom config file with the
Here is an example on how to use this with Sway:
// set a variable that can be easily used later in the config file // those variables are optionals set $menu raffi -p // Mod4 is the Super key for me but use whatever you want. set $super Mod4 // will bind the super+space key to launch the launcher bindsym $super+Space exec $menu|xargs swaymsg exec --
The configuration file is located at
$HOME/.config/raffi/raffi.yaml and it has the following structure:
firefox: binary: firefox args: [--marionette] icon: firefox description: Firefox browser with marionette enabled
binary: The binary to be executed
description: The description to be displayed in the launcher
args: The arguments to be passed to the binary as array i.e:
[foo, bar] (optional)
icon: The icon to be displayed in the launcher if not specified it will try to use binary name (optional)
icons are searched in /usr/share/icons, /usr/share/pixmaps, $HOME/.local/share/icons or in $XDG_DATA_HOME if set and matched to the icon name. You can as well specify the full path in there.
there is some mininal support for conditions, to let you run a command only if a condition is met. They are all optional and cannot be used in combination.
ifexist: show entry if a file exist in PATH or the full path can be specified ifenvset: show entry if the environment variable is set ifenvnotset: show entry if the environment variable is not set ifenveq: show entry if the environment variable is equal to the value, for example:
ifenvset: [FOO, bar]
will only show the entry if an environment variable FOO is set and its value is bar.
See the file located in examples/raffi.yaml for a comprehensive example.
- Chmouel Boudjnah https://github.com/chmouel
- Fediverse - <@firstname.lastname@example.org>
- Twitter - <@chmouel>
- Blog - <https://blog.chmouel.com>