Skip to content

capyloon/rot8

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

73 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

rot8

automatic display rotation using built-in accelerometer

Automatic rotate modern Linux desktop screen and input devices. Handy for convertible touchscreen notebooks like HP Spectre x360, Lenovo IdeaPad Flex or Linux phone like Pinephone.

Compatible with sway and X11.

installation

packages

Available in:

Arch User Repository: rot8-git

Void Package: rot8

manually build from source

Rust language and the cargo package manager are required to build the binary.

$ git clone https://github.com/efernau/rot8
$ cd rot8 && cargo build --release
$ cp target/release/rot8  /usr/bin/rot8

or

$ cargo install rot8

usage

For Sway map your input to the output device:


$ swaymsg input <INPUTDEVICE> map_to_output <OUTPUTDEVICE>

Call rot8 from sway configuration file ~/.config/sway/config:


exec rot8

For X11 set Touchscreen Device


rot8 --touchscreen <TOUCHSCREEN>

This will start the daemon running, continuously checking for rotations.

There are the following args (defaults):


--sleep                 // Set millis to sleep between rotation checks (500)
--display               // Set Display Device (eDP-1)
--touchscreen           // Set Touchscreen Device X11, allows multiple devices (ELAN0732:00 04F3:22E1)
--keyboard              // Set keyboard to deactivate upon rotation, for Sway only
--threshold             // Set a rotation threshold between 0 and 1, higher is more sensitive (0.5)
--normalization-factor  // Set factor for sensor value normalization (1e6)
--invert-x              // Invert readings from the HW x axis
--invert-y              // Invert readings from the HW y axis
--invert-z              // Invert readings from the HW z axis
--oneshot               // Updates the screen rotation just once instead of continuously
--version               // Returns the rot8 version

You may need to play with the normalization factor (try multiples of 10) and the axis inversions to get the accelerometer readings to calculate right.

Releases

No releases published

Packages

No packages published

Languages

  • Rust 100.0%