Mighty Screen Ruler is a transparent on-screen ruler which stays on top of other windows. It provides a rectangular ruler and a triangular drafting ruler with metric and imperial scales, keyboard control, pivot-based rotation, configurable sizing, and angle annotations.
Figure 1: Rectangular ruler in default orientation
Figure 2: Rectangular ruler rotated 20° about its pivot point
Figure 3: Triangular ruler in default orientation
Figure 4: Triangular ruler rotated -30° about its pivot point
- Always-on-top ruler
- Rectangular and triangular ruler modes
- Metric and imperial units
- Pivot-based rotation with fine and fast keyboard increments
- Keyboard resizing with configurable increments
- Pivot screen-position and current-angle annotation
- Highly configurable through a JSON config file
- Triangle edge angle scales with optional secondary inner scale
- Triangle origin guide lines
Future enhancement ideas are tracked in TODO.md.
Drag the ruler to move it. Hold Shift while dragging to rotate around the current pivot point. Press H in the app to open the help popup.
Figure 5: Help popup with ruler controls
| Shortcut | Action |
|---|---|
H |
Toggle help popup |
Esc |
Quit |
Space |
Switch between rectangular and triangular ruler |
M |
Toggle metric / imperial units |
Left / Right |
Fine rotate counter-clockwise / clockwise |
Shift+Left / Shift+Right |
Fast rotate counter-clockwise / clockwise |
Cmd+Arrow / Ctrl+Arrow |
Pan the ruler by 1 px |
Shift+Cmd+Arrow / Shift+Ctrl+Arrow |
Pan the ruler by 10 px |
Up / Down |
Increase / decrease opacity |
I / D |
Increase / decrease ruler size |
P |
Cycle pivot point |
V |
Set a custom pivot value |
R |
Reset angle |
A |
Set angle |
E |
Toggle triangle edge angle scale |
N |
Toggle triangle inner angle scale |
L |
Cycle triangle angle label mode |
The release/ folder is the deployment folder. Each OS folder should contain one ZIP file.
Use:
release/macos/Mighty_Screen_Ruler-macos-x86_64.zip
Unzip it and open Mighty_Screen_Ruler.app.
The macOS app is unsigned. If macOS says Apple cannot verify the app, use one of these workarounds after unzipping:
- Open
System Settings->Privacy & Security, then chooseOpen AnywayforMighty_Screen_Ruler.app. You may need to try opening the app once or twice before the button appears. - Or remove the download quarantine flag in Terminal:
xattr -dr com.apple.quarantine /path/to/Mighty_Screen_Ruler.app
open /path/to/Mighty_Screen_Ruler.appNot available yet. Planned release file:
release/windows/Mighty_Screen_Ruler-windows-x86_64.zip
Not available yet. Planned release file:
release/linux/Mighty_Screen_Ruler-linux-x86_64.zip
Requirements:
- Python 3.12 or newer
- PySide6-Essentials
requirements.txt also includes Nuitka for building release ZIPs.
From the repository root:
python3 -m pip install -r requirements.txt
python3 Mighty_Screen_Ruler.pyFrom the repository root:
scripts/build_macos.shThe script uses the ruler conda environment, builds the app with Nuitka, stages Mighty_Screen_Ruler.app, and writes the release ZIP to:
release/macos/Mighty_Screen_Ruler-macos-x86_64.zip
Most behavior can be adjusted in the per-user ruler_config.json, stored at:
- macOS:
~/Library/Preferences/Mighty_Screen_Ruler/ruler_config.json - Windows:
%APPDATA%\Mighty_Screen_Ruler\ruler_config.json - Linux:
${XDG_CONFIG_HOME:-~/.config}/Mighty_Screen_Ruler/ruler_config.json
Configurable behavior includes:
- default units
- size increments
- angle increments
- ruler dimensions
- branding text and color
- triangle angle scales
- triangle origin guide lines
- keyboard bindings
An example config is available at examples/ruler_config.example.json.
MIT License. See LICENSE.