2 releases
0.0.5 | Feb 28, 2023 |
---|---|
0.0.3 | Feb 28, 2023 |
#374 in Command line utilities
8.5MB
251 lines
raffi - wofi launcher on yaml config file
Description
raffi is a launcher for wofi, it uses a yaml config file to define the commands to be executed.
Installation
Binaries
Go to the release page and grab the archive or package targeting your platform.
Homebrew
brew tap chmouel/raffi https://github.com/chmouel/raffi
brew install raffi
Crates.io
cargo install raffi
Arch
With your favourite aurhelper for example yay :
yay -S raffi-bin
Usage
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 -c/--configfile
option.
Sway
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 --
Configuration
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.
Conditions
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.
Example
See the file located in examples/raffi.yaml for a comprehensive example.
Copyright
Authors
- Chmouel Boudjnah https://github.com/chmouel
- Fediverse - <@chmouel@fosstodon.org>
- Twitter - <@chmouel>
- Blog - <https://blog.chmouel.com>