62 lines
2.0 KiB
Markdown
62 lines
2.0 KiB
Markdown
# cutiepi-rotation-scripts
|
|
|
|
A set of scripts and services to manage display rotation on the CutiePi tablet.
|
|
|
|
It interacts with the CutiePi gyroscope over `iio-sensor-proxy` to detect the
|
|
orientation of the device, and it manipulates the display rotation using some
|
|
simple `xrandr` and `xinput` scripting.
|
|
|
|
## Installation
|
|
|
|
1. Ensure that the `iio-sensor-proxy` package is installed:
|
|
|
|
```shell
|
|
$ sudo apt install iio-sensor-proxy
|
|
```
|
|
|
|
2. Clone the repo:
|
|
|
|
```shell
|
|
$ git clone https://github.com/BlackLight/cutiepi-rotation-scripts
|
|
$ cd cutiepi-rotation-scripts
|
|
```
|
|
|
|
3. Simply add the `bin` folder to your `PATH`, or copy/symlink its content
|
|
somewhere in your `PATH`
|
|
|
|
4. If you want to run the `autorotate` script as a startup service:
|
|
|
|
```shell
|
|
$ mkdir -p ~/.config/systemd/user
|
|
$ cp systemd/autorotate.service ~/.config/systemd/user
|
|
$ systemctl --user daemon-reload
|
|
# Start the service
|
|
$ systemctl --user start autorotate
|
|
# Enable the service at startup
|
|
$ systemctl --user enable autorotate
|
|
```
|
|
|
|
## Usage
|
|
|
|
As shown in the previous example, the `autorotate` script can be enabled as a
|
|
startup service and it can automatically handle the rotation of the display by
|
|
polling gyroscope sensor data.
|
|
|
|
There are also two auxiliary scripts (`screen-rotate-left` and
|
|
`screen-rotate-right`) that can be programmatically called in your scripts or
|
|
launched from the panel to manually force display orientation.
|
|
|
|
## Notes
|
|
|
|
The `autorotate` script disables the HDMI input when started. The reason is
|
|
that the calculation of the coordinate transformation matrices for the touchpad
|
|
is much more complex when working with extended displays. If your tablet is
|
|
physically connected to a screen, however, the chances that you may want to
|
|
leverage auto-rotation are quite low anyway, so a workaround could be a simple
|
|
script that turns on the HDMI input and stops the `autorotate` service when an
|
|
HDMI input is plugged, and restarts it when it's unplugged.
|
|
|
|
If a strong use case exists for handling auto-rotation on extended displays,
|
|
feel free to open an issue.
|
|
|