getting started

Your first workflow

Start with the smallest thing wflow can do: a chord that fires a notification. Five minutes, zero risk, proves the daemon is alive.

1. Save the file

Drop this in ~/.config/wflow/workflows/hello.kdl:

workflow "Hello wflow" {
    trigger {
        chord "super+alt+h"
    }

    notify "wflow is alive"
}

The chord can be barewords too — chord super+alt+h means the same thing. Either round-trips.

2. Make sure the daemon is running

If you accepted the auto-enable prompt on first GUI launch, the daemon is already running and watching this directory. Save the file and the new chord binds in real time on Hyprland and Sway, or after a restart on Plasma 6 / GNOME 46+ (the GlobalShortcuts portal binds once per session by spec).

If you didn't, enable it now:

systemctl --user enable --now wflow-daemon

# To pick up trigger changes on portal-mode desktops (Plasma/GNOME):
systemctl --user restart wflow-daemon

Or run it manually in a terminal so you can watch the logs:

wflow daemon

3. Press the chord

Hit Super+Alt+H. You should see a system notification. If you do — wflow is working, and you've just bound a global hotkey to a custom action.

If it didn't fire

  • Check the daemon log. journalctl --user -u wflow-daemon -f (systemd) or whatever terminal you ran wflow daemon in (manual). Parse errors and registration failures land there with line numbers.
  • Check the chord isn't taken. Some compositors reserve super+alt+* for window management. Try super+alt+ctrl+h or pick a different chord. The daemon log shows whether the backend accepted the registration.
  • Check wdotool. The notify step doesn't actually need wdotool, but the next step you add will. wflow doctor tells you what's on PATH and which compositor backend the daemon will pick.

What to do next

Add a real action. Try shell "echo hello > /tmp/wflow.txt" as a second step under the notify, save (the daemon re-binds automatically), fire the chord, then cat /tmp/wflow.txt. That's the whole proposition: bind a key combo to a sequence of arbitrary actions.

From here: read the KDL basics, browse the action kinds, or poach from the library until you have something worth shipping.