Add Kiosk project as a subtree of ogClient. Kiosk is
an interactive GUI featuring basic functionality to
monitor and operate ogClient withing the client through a
graphical interface written in PyQt6.
Right after ogClient launches in live mode it performs a
fork() call to launch Kiosk as an external process to
prevent Kiosk backtraces to affect ogClient.
A pair of sockets are created through socket.socketpair()
and each process is assigned one of them to leverage the
inter process communication.
API Kiosk -> ogClient:
- Poweroff: request client poweroff
{"command": "poweroff"}
- Reboot: request client reboot
{"command": "reboot"}
- Restore: restore image into a partition
{"command": "restore", "image": "windows.img", "disk": 1, "partition": 2}
- Boot: request an OS boot
{"command": "boot", "disk": 1, "partition": 2}
API ogClient -> Kiosk:
- Busy: inform about ogClient thread status
{"command": "busy", "status": True}
- Refresh: reload the theme.
{"command": "refresh"}
- close: request Kiosk termination.
{"command": "close"}
Add internationalization documentation in README
Add "CACHE" mode in image restore to only restore images
available in the cache partition.
Use set_state() function in OgRest to define the idle or busy
status and notify Kiosk about the status change.