A (massively overengineered) rofi script to manage randr (Resize And Rotate) features of some display servers.
This program supports multiple backends. It automatically determines which one
to use, but you can override this behaviour by setting DISPLAY_SERVER_OVERRIDE
in your environment.
libxrandr
- Uses the xrandr crate to call libxrandr bindings.swayipc
- Uses the swayipc crate to issue commands to sway.xrandr_cli
- Just calls xrandr in a subprocess.
Compile using cargo build --release
. Then call rofi using:
rofi -modi "randr:/path/to/executable" -show randr
NOTE: When using wayland backends (like swayipc
), it is best to use the
wayland fork of rofi.
The following features are supported:
- Enable outputs
- Disable outputs
- Set primary output
- Change resolution
- Change refresh rate
- Position outputs
- Rotate outputs
Backends can specify which of these features they support. Sway, for example, has no 'primary display'.
- Make a general wayland backend, perhaps using
wayland-client
. - In the meantime, maybe make a
wlr-randr_cli
backend. - Redo error structure.