ers
Window border renderer for macOS. Draws colored overlay borders around application windows using private SkyLight framework APIs.
Built as a companion to tarmac, but runs standalone.
Usage
ers [OPTIONS] [WINDOW_ID]
OPTIONS:
-w, --width <PX> Border width in pixels (default: 4.0)
-r, --radius <PX> Corner radius (default: 10.0)
-c, --color <HEX> Active border color (default: #5294e2)
-i, --inactive <HEX> Inactive border color (default: #59595980)
--active-only Only show border on focused window
--list List on-screen windows and exit
-h, --help Show this help
Run with no arguments to border all windows. Ctrl-C to stop (overlays are cleaned up).
Debug logging: RUST_LOG=debug ers
With tarmac
tarmac manages ers as a child process. Set border_width > 0 in your ~/.config/tarmac/init.lua:
gar.set("border_width", "4")
gar.set("border_color_focused", "#5294e2")
gar.set("border_color_unfocused", "#59595980")
gar.set("border_radius", "10")
tarmac spawns ers automatically with --active-only. Config reloads restart ers.
Install
Homebrew:
brew tap gardesk/tap
brew install ers
From source:
cargo install --git https://github.com/gardesk/ers
Requirements
- macOS (Apple Silicon or Intel)
- Accessibility permissions (System Settings → Privacy & Security → Accessibility)
Limitations
- Uses private macOS APIs (SkyLight/CGS). These are undocumented and may break across macOS versions.
- Tested on macOS Tahoe. Should work on Monterey and later but no guarantees.
License
MIT
View source
| 1 | # ers |
| 2 | |
| 3 | Window border renderer for macOS. Draws colored overlay borders around application windows using private SkyLight framework APIs. |
| 4 | |
| 5 | Built as a companion to [tarmac](https://github.com/gardesk/tarmac), but runs standalone. |
| 6 | |
| 7 | ## Usage |
| 8 | |
| 9 | ``` |
| 10 | ers [OPTIONS] [WINDOW_ID] |
| 11 | |
| 12 | OPTIONS: |
| 13 | -w, --width <PX> Border width in pixels (default: 4.0) |
| 14 | -r, --radius <PX> Corner radius (default: 10.0) |
| 15 | -c, --color <HEX> Active border color (default: #5294e2) |
| 16 | -i, --inactive <HEX> Inactive border color (default: #59595980) |
| 17 | --active-only Only show border on focused window |
| 18 | --list List on-screen windows and exit |
| 19 | -h, --help Show this help |
| 20 | ``` |
| 21 | |
| 22 | Run with no arguments to border all windows. Ctrl-C to stop (overlays are cleaned up). |
| 23 | |
| 24 | Debug logging: `RUST_LOG=debug ers` |
| 25 | |
| 26 | ## With tarmac |
| 27 | |
| 28 | tarmac manages ers as a child process. Set `border_width > 0` in your `~/.config/tarmac/init.lua`: |
| 29 | |
| 30 | ```lua |
| 31 | gar.set("border_width", "4") |
| 32 | gar.set("border_color_focused", "#5294e2") |
| 33 | gar.set("border_color_unfocused", "#59595980") |
| 34 | gar.set("border_radius", "10") |
| 35 | ``` |
| 36 | |
| 37 | tarmac spawns ers automatically with `--active-only`. Config reloads restart ers. |
| 38 | |
| 39 | ## Install |
| 40 | |
| 41 | Homebrew: |
| 42 | ``` |
| 43 | brew tap gardesk/tap |
| 44 | brew install ers |
| 45 | ``` |
| 46 | |
| 47 | From source: |
| 48 | ``` |
| 49 | cargo install --git https://github.com/gardesk/ers |
| 50 | ``` |
| 51 | |
| 52 | ## Requirements |
| 53 | |
| 54 | - macOS (Apple Silicon or Intel) |
| 55 | - Accessibility permissions (System Settings → Privacy & Security → Accessibility) |
| 56 | |
| 57 | ## Limitations |
| 58 | |
| 59 | - Uses private macOS APIs (SkyLight/CGS). These are undocumented and may break across macOS versions. |
| 60 | - Tested on macOS Tahoe. Should work on Monterey and later but no guarantees. |
| 61 | |
| 62 | ## License |
| 63 | |
| 64 | MIT |