rofi-actions
Custom commands following interaction with rofi menus
- Provided by: rofi (Version: 2.0.0-0.2)
- Report a bug
Custom commands following interaction with rofi menus
rofi allows to set custom commands or scripts to be executed when some actions are performed in the menu, such as changing selection, accepting an entry or canceling.
This makes it possible for example to play sound effects or read aloud menu entries on selection.
Following is the list of rofi flags for specifying custom commands or scripts to execute on supported actions:
Rofi command line:
rofi -on-selection-changed "/path/to/select.sh {entry}" \
-on-entry-accepted "/path/to/accept.sh {entry}" \
-on-menu-canceled "/path/to/exit.sh" \
-on-mode-changed "/path/to/change.sh" \
-on-menu-error "/path/to/error.sh {error}" \
-on-screenshot-taken "/path/to/camera.sh {path}" \
-show drun
Rofi config file:
configuration {
on-selection-changed: "/path/to/select.sh {entry}";
on-entry-accepted: "/path/to/accept.sh {entry}";
on-menu-canceled: "/path/to/exit.sh";
on-mode-changed: "/path/to/change.sh";
on-menu-error: "/path/to/error.sh {error}";
on-screenshot-taken: "/path/to/camera.sh {path}";
}
Here’s an example bash script that plays a sound effect using aplay when the current selection is changed:
#!/bin/bash
coproc aplay -q $HOME/Music/selecting_an_item.wav
The use of coproc for playing sounds is suggested, otherwise the rofi process will wait for sounds to end playback before exiting.
Here’s an example bash script that reads aloud currently selected entries using espeak:
#!/bin/bash
killall espeak
echo "selected: $@" | espeak