@@ -16,28 +16,31 @@ Built for displays like 5120×1440 where Windows' built-in snap (halves/quarters
1616---
1717## ⬇️ Download
1818
19- > ** [ Download the latest release] ( https://github.com/TtesseractT/ScreenGrid/releases/latest ) ** — no build tools needed, just run the ` .exe ` .
19+ > ** [ Download the latest release] ( https://github.com/TtesseractT/ScreenGrid/releases/latest ) ** - no build tools needed.
2020
21- | File | Size | Requires .NET? |
22- | ------| ------| ----------------|
23- | ** ScreenGrid-standalone.exe** | ~ 70 MB | No — runs anywhere |
24- | ** ScreenGrid-small.exe** | ~ 200 KB | Yes — needs [ .NET 9 Desktop Runtime] ( https://dotnet.microsoft.com/download/dotnet/9.0 ) |
21+ | File | Size | Description |
22+ | ------| ------| -------------|
23+ | ** ScreenGridSetup.exe** | ~ 66 MB | ** Installer** - installs to Program Files, adds to Windows startup, creates Start Menu & optional desktop shortcut. Includes uninstaller. |
24+ | ** ScreenGrid-standalone.exe** | ~ 70 MB | Portable single-file exe, no .NET required |
25+ | ** ScreenGrid-small.exe** | ~ 200 KB | Portable single-file exe, needs [ .NET 9 Desktop Runtime] ( https://dotnet.microsoft.com/download/dotnet/9.0 ) |
2526
26- Both are single-file executables. Download, run, and it appears in your system tray .
27+ ** Recommended: ** Use the installer for an automatic startup experience .
2728
2829---
2930## Features
3031
31- - ** Shift + Drag** to activate — zero interference with normal window management
32+ - ** Shift + Drag** to activate - zero interference with normal window management
3233- ** 5 built-in grid rows** : Halves, Thirds, 4:3, Quarters, Fifths
3334- ** 3 × 4:3 variants** : left, center, and right positions
3435- ** Height splits** : top/bottom halves and height thirds for partial-height zones
35- - ** Custom grids** — create any ratio (2:1, 3:2:1, 16:9, etc.) via the built-in editor
36+ - ** Custom grids** - create any ratio (2:1, 3:2:1, 16:9, etc.) via the built-in editor
3637- ** Save / Load** grid layouts as ` .screengrid ` JSON files
3738- ** Full-height snap preview** with pixel dimensions shown on hover
38- - ** DPI-aware** (PerMonitorV2) — works on mixed-DPI multi-monitor setups
39- - ** Click-through overlay** — never steals focus or interferes with your drag
40- - ** System tray only** — no visible window, runs silently in the background
39+ - ** DPI-aware** (PerMonitorV2) - works on mixed-DPI multi-monitor setups
40+ - ** Click-through overlay** - never steals focus or interferes with your drag
41+ - ** System tray only** - no visible window, runs silently in the background
42+ - ** Run at Startup** toggle - enable/disable from the tray menu or via the installer
43+ - ** Windows installer** - proper install/uninstall with auto-startup support
4144- ** ~ 200 KB** framework-dependent exe (or ~ 70 MB self-contained)
4245
4346---
@@ -67,7 +70,7 @@ dotnet run -c Release
6770| ** Shift + Drag** a window | Grid overlay appears |
6871| ** Hover** over a zone | Zone highlights, full-height snap preview shown |
6972| ** Release mouse** on a zone | Window snaps to that column (full height) |
70- | ** Release Shift** while dragging | Cancel — overlay hides, no snap |
73+ | ** Release Shift** while dragging | Cancel - overlay hides, no snap |
7174
7275### System Tray Menu (right-click)
7376
@@ -76,6 +79,7 @@ dotnet run -c Release
7679| ** Create / Edit Grid** | Open the grid editor to add, remove, reorder rows |
7780| ** Load Grid from File…** | Import a ` .screengrid ` JSON layout |
7881| ** Reset Grid to Defaults** | Restore all 5 built-in grid rows |
82+ | ** Run at Startup** | Toggle Windows startup registration (checked = enabled) |
7983| ** How to use** | Quick usage guide |
8084| ** Exit** | Close ScreenGrid |
8185
@@ -86,8 +90,8 @@ dotnet run -c Release
8690Right-click the tray icon → ** Create / Edit Grid** to open the editor:
8791
8892- Use ** preset buttons** to quickly add common rows (Halves, Thirds, 4:3, etc.)
89- - Click ** + Custom…** to enter any ratio — e.g. ` 3:2:1 ` or ` 16:9 `
90- - ** Reorder** rows with ▲/▼ — top row appears at the top of the overlay
93+ - Click ** + Custom…** to enter any ratio - e.g. ` 3:2:1 ` or ` 16:9 `
94+ - ** Reorder** rows with ▲/▼ - top row appears at the top of the overlay
9195- ** Rename** rows to anything you like
9296- Click ** Apply & Close** to activate immediately
9397- Click ** Save to File…** to export and share your layout
@@ -174,13 +178,32 @@ dotnet publish -c Release -r win-x64 --no-self-contained -p:PublishSingleFile=tr
174178dotnet publish -c Release -r win-x64 --self-contained -p:PublishSingleFile=true -o ./publish
175179```
176180
181+ ### Installer (~ 66 MB, includes auto-startup)
182+
183+ Requires [ Inno Setup 6] ( https://jrsoftware.org/isinfo.php ) :
184+
185+ ``` powershell
186+ # First publish the self-contained exe (above), then:
187+ & "C:\Program Files (x86)\Inno Setup 6\ISCC.exe" installer/ScreenGridSetup.iss
188+ # Output: installer-output/ScreenGridSetup.exe
189+ ```
190+
177191---
178192
179193## Run at Windows Startup
180194
181- 1 . Build or download the exe
182- 2 . Press ` Win+R ` → type ` shell:startup ` → Enter
183- 3 . Create a shortcut to ` ScreenGrid.exe ` in that folder
195+ ** Option A: Use the installer** (recommended)
196+
197+ Download ` ScreenGridSetup.exe ` — during installation, the "Run at startup" option is checked by default.
198+
199+ ** Option B: Toggle from the app**
200+
201+ Right-click the tray icon → check ** Run at Startup** . This writes to ` HKCU\...\Run ` (current user only, no admin required).
202+
203+ ** Option C: Manual shortcut**
204+
205+ 1 . Press ` Win+R ` → type ` shell:startup ` → Enter
206+ 2 . Create a shortcut to ` ScreenGrid.exe ` in that folder
184207
185208---
186209
@@ -195,17 +218,19 @@ ScreenGrid/
195218├── GridConfig.cs # Grid layout model, JSON serialization
196219├── GridZone.cs # Individual snap zone model
197220├── NativeMethods.cs # Win32 P/Invoke declarations
221+ ├── StartupManager.cs # Windows startup registry management
198222├── ScreenGrid.csproj # .NET 9 WPF project
199- └── tests/ # xUnit test suite (54 tests)
223+ ├── installer/ # Inno Setup installer script
224+ └── tests/ # xUnit test suite
200225```
201226
202227** Key Win32 APIs:**
203- - ` SetWinEventHook ` — detects window drag start/end system-wide
204- - ` GetAsyncKeyState ` — polls Shift key state at 60 fps
205- - ` GetCursorPos ` — tracks cursor position during drag
206- - ` MoveWindow ` — snaps the window to the target zone
207- - ` DwmGetWindowAttribute ` — compensates for invisible DWM borders
208- - ` GetMonitorInfo ` / ` GetDpiForMonitor ` — multi-monitor and DPI support
228+ - ` SetWinEventHook ` - detects window drag start/end system-wide
229+ - ` GetAsyncKeyState ` - polls Shift key state at 60 fps
230+ - ` GetCursorPos ` - tracks cursor position during drag
231+ - ` MoveWindow ` - snaps the window to the target zone
232+ - ` DwmGetWindowAttribute ` - compensates for invisible DWM borders
233+ - ` GetMonitorInfo ` / ` GetDpiForMonitor ` - multi-monitor and DPI support
209234
210235---
211236
@@ -217,4 +242,4 @@ Contributions are welcome! See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines
217242
218243## License
219244
220- [ MIT] ( LICENSE ) — free to use, modify, and distribute.
245+ [ MIT] ( LICENSE ) - free to use, modify, and distribute.
0 commit comments