This release deeply changes IIO-Niri, adding a way to communicate with a running instance using its own IPC. It introduces a breaking change to >1.3.0 interface.
Breaking Changes
- The old command line interface is now behind the
listensub-command. You now need to runiio-niri listen <args>for the same behavior pre-1.3.0
IPC
It is now possible to modify the state of a running instance of IIO-Niri using its own IPC.
You can send an action to the IPC using iio-niri msg <action> [arguments].
Each action is documented with its own --help argument.
When a request is received and processed, IIO-Niri returns a response as a JSON formatted string, in the form:
{
"status": <either "ok" or "error">,
"response": <a string if the status is "error" or the value returned by the action, usually the old value after a state change>
}To know what is the response field when a request succeeds (i.e. status = "ok"), please refer to the iio-niri msg --help and its sub-commands.
Changes
- feat!(cli): add a
listensub-command that has the same behavior as pre-1.3.0's CLI - feat(cli): add an
msgsub-command to communicate with IIO-Niri's socket - feat(cli): add a
completionssub-command to generate shell completions (fixes #8) - perf: Now runs IIO-Niri on 4 threads, a main thread creating and joining the others, a thread to manage stopping signals, a thread to handle IPC requests and a thread to handle the Accelerometer's orientation
- feat(state): add a way to lock the monitor rotation (fixes #6)
Full Changelog: v1.3.0...v2.0.0