# `rlr`: a pixel screen ruler
![Minimum Supported Rust Version](https://img.shields.io/badge/MSRV-1.70.0-blue) [![GitHub license](https://img.shields.io/github/license/epilys/rlr)](https://github.com/epilys/rlr/blob/master/LICENSE) [![Crates.io](https://img.shields.io/crates/v/rlr-gtk)](https://crates.io/crates/rlr-gtk)
![./rlr.png](./rlr.png)
Rust + GTK interactive pixel screen ruler with protractor mode.
```shell
cargo install rlr-gtk
```
## Demo
![./demo.png](./demo.png)
|
![./demo.gif](./demo.gif)
|
![./demo_move.gif](./demo_move.gif)
|
## Use
To use application settings, the app's settings schema but be installed in your system.
It is possible to attempt to do this automatically via the Settings menu, which will install the schema to `${HOME}/.local/share/glib-2.0/schemas/` and subsequently attempt to compile it; but the directory must exist beforehand, it won't be created.
`rlr` includes a command-line argument `--install-gsettings-schema` that creates the settings schema at the given directory.
If directory is `-`, it will be printed to standard output instead.
*Note*: The directory values should probably be one of: `${HOME}/.local/share/glib-2.0/schemas/`, `/usr/share/glib-2.0/schemas/` or similar.
For the settings schema to be discoverable, it must be compiled with `glib-compile-schemas`.
An example usage:
```shell
rlr --install-gsettings-schema "${HOME}/.local/share/glib-2.0/schemas/"
```
and then:
```shell
glib-compile-schemas "${HOME}/.local/share/glib-2.0/schemas/"
```
### Shortcuts
If you are on macOS, use ⌘ (Command) key instead of Ctrl.
- **Quit** with q or Ctrl + Q.
- Click to **drag**.
- Press ? or F1 to **open the About and Help window**.
- Press s or F2 to **open the Settings window**.
- Press r to **rotate** 90 degrees. Press Shift + r to **flip (mirror)** the marks without rotation.
- Press p to toggle **protractor mode**.
- Press f or Space to toggle **freezing the measurements**.
- Press Ctrl and drag the angle base side to **rotate it while in protractor mode**.
- Press Ctrl continuously to **disable precision** (measurements will snap to nearest integer).
- Press + to **increase size**. Press - to **decrease size**.
- Press Ctrl + +, Ctrl + + to **increase font size**. Press Ctrl + -, Ctrl + - to **decrease font size**.
- Press Up, Down, Left, Right to **move window position by 10 pixels**. Also hold down Ctrl to **move by 1 pixel**.
## Build
```shell
cargo build --release
```
## Packaging
To help packagers in OSes that support the XDG Desktop standards, a `.desktop`
app launcher filer, an application icon and a symbolic application icon are
included.
- `rlr.desktop` should be installed in any of the following:
`/usr/share/applications/`, `/usr/local/share/applications/` or
`$HOME/.local/share/applications/`.
- `rlr.svg` should be installed in
`/usr/share/icons/hicolor/scalable/apps/rlr.svg`.
- `rlr.symbolic.svg` should be installed in
`/usr/share/icons/hicolor/symbolic/apps/rlr.svg`.
The files have been contributed by .