From 0a243ab55d35e98b8447e53b34e780640e6368c0 Mon Sep 17 00:00:00 2001 From: kafkade <179981006+kafkade@users.noreply.github.com> Date: Wed, 25 Mar 2026 23:43:19 -0700 Subject: [PATCH] Add repo page --- .github/workflows/pages.yml | 40 + README.md | 1 + site/assets/favicon.svg | 19 + site/assets/logo.svg | 93 +++ site/index.html | 1445 +++++++++++++++++++++++++++++++++++ 5 files changed, 1598 insertions(+) create mode 100644 .github/workflows/pages.yml create mode 100644 site/assets/favicon.svg create mode 100644 site/assets/logo.svg create mode 100644 site/index.html diff --git a/.github/workflows/pages.yml b/.github/workflows/pages.yml new file mode 100644 index 0000000..e26e8a8 --- /dev/null +++ b/.github/workflows/pages.yml @@ -0,0 +1,40 @@ +name: Deploy Landing Page + +on: + push: + branches: [main] + paths: + - 'site/**' + - '.github/workflows/pages.yml' + workflow_dispatch: + +permissions: + contents: read + pages: write + id-token: write + +concurrency: + group: pages + cancel-in-progress: true + +jobs: + deploy: + runs-on: ubuntu-latest + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Setup Pages + uses: actions/configure-pages@v5 + + - name: Upload artifact + uses: actions/upload-pages-artifact@v3 + with: + path: site + + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v4 diff --git a/README.md b/README.md index 92b4db9..1cb8751 100644 --- a/README.md +++ b/README.md @@ -3,6 +3,7 @@ **Move all your windows to one display.** A fast, lightweight Windows CLI utility for multi-monitor setups. [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) +[![Landing Page](https://img.shields.io/badge/Web-kafkade.github.io%2Fherd-6ee7b7)](https://kafkade.github.io/herd) ## Why Herd? diff --git a/site/assets/favicon.svg b/site/assets/favicon.svg new file mode 100644 index 0000000..4c3bcfc --- /dev/null +++ b/site/assets/favicon.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/site/assets/logo.svg b/site/assets/logo.svg new file mode 100644 index 0000000..fc15c36 --- /dev/null +++ b/site/assets/logo.svg @@ -0,0 +1,93 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + $ + herd + + + โœ“ + Found 3 displays + โœ“ + Moving 8 windows โ†’ Display 1 + โœ“ + Snapshot saved + Done! + All windows herded ๐Ÿ‘ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/site/index.html b/site/index.html new file mode 100644 index 0000000..d72a75b --- /dev/null +++ b/site/index.html @@ -0,0 +1,1445 @@ + + + + + + Herd โ€” Move all your windows to one display + + + + + + + + + + + + + + + + + + +
+
+
+
+ + v0.1.0 โ€” Core Working Tool +
+ +

Move all your windows
to one display

+

+ A fast, lightweight Windows CLI utility for multi-monitor setups. + Gather scattered windows instantly. Undo anytime. +

+
+
+ $ cargo install herd + +
+ +
+
+
+ + +
+
+
+
+
+
+
PowerShell
+
+
+ +
+
+
+ + +
+
+
+ +

One tool, one job,
done right

+

Herd solves the one annoying problem every multi-monitor user knows โ€” windows scattered across displays you've unplugged.

+
+
+
+
๐Ÿ‘
+

Instant Herd

+

Run herd and every visible window moves to your primary display. One command, zero fuss.

+
+
+
๐Ÿ–ฅ๏ธ
+

Target Any Display

+

Pick any monitor with --display N. Herd to your ultrawide, your portrait display, or whichever screen you need.

+
+
+
โช
+

Undo Anytime

+

Every herd saves a snapshot. Run herd undo to restore all windows to their original positions and sizes.

+
+
+
๐Ÿ‘€
+

Dry Run

+

Preview before you commit. --dry-run shows exactly what would happen without touching a single window.

+
+
+
๐Ÿ“
+

DPI Aware

+

Per-Monitor DPI v2 awareness means windows look right on mixed-DPI setups. No blurry text, no wrong sizes.

+
+
+
๐ŸชŸ
+

Smart Filtering

+

Only moves real app windows. Ignores system trays, desktop, UWP shells, and other background noise.

+
+
+
+
+ + +
+
+
+ +

Simple by design

+

No config files, no setup. Just run the command you need.

+
+
+
+
+ 1 +

Herd all windows

+
+
+
$ herd
+
+โœ“ Found 3 displays
+โœ“ Moving 12 windows โ†’ Display 1 (primary)
+โœ“ Snapshot saved
+Done! All windows herded ๐Ÿ‘
+
The default command moves all visible application windows to your primary display using a cascade layout.
+
+
+ +
+
+ 2 +

List displays & windows

+
+
+
$ herd list
+
+Display 1 (primary) โ€” 2560ร—1440
+  5 windows
+Display 2 โ€” 1920ร—1080
+  3 windows
+Display 3 โ€” 1920ร—1080
+  4 windows
+
See which displays are connected and how many windows live on each one.
+
+
+ +
+
+ 3 +

Preview with dry run

+
+
+
# See what would happen, no changes made
+$ herd --dry-run
+
+[DRY RUN] Would move 8 windows
+  "VS Code" โ†’ Display 1
+  "Firefox" โ†’ Display 1
+  "Slack" โ†’ Display 1
+  ...
+
Check what herd would do before making any changes. Pair with --display N to preview targeting a specific monitor.
+
+
+ +
+
+ 4 +

Undo โ€” go back

+
+
+
# Restore windows to where they were
+$ herd undo
+
+โœ“ Restoring 12 windows from snapshot
+โœ“ "VS Code" โ†’ Display 2
+โœ“ "Firefox" โ†’ Display 1
+Done! Windows restored to previous positions
+
Every herd automatically saves a snapshot. Undo restores both position and size โ€” even across mixed-DPI monitors.
+
+
+
+
+
+ + +
+
+
+ +

Where we're going

+

Herd does one thing well today. Here's what's coming next.

+
+
+ +
+
+
+

v0.1.0

+ Released +
+
Core Working Tool
+
+ Monitor enumeration + Window filtering + Herd to primary + Target display + Snapshot & undo + Dry run + DPI awareness + herd list +
+
+ +
+
+
+

v0.2.0

+ Up Next +
+
Polish & Distribution
+
+ GitHub Actions CI + Automated releases + winget manifest + Scoop bucket + PowerShell tab completion + --quiet flag + --json output + Landing page +
+
+ +
+
+
+

v0.3.0

+ Planned +
+
Advanced Features
+
+ Cascade / Tile / Stack layouts + herd from <N> + Named profiles + System tray mode + Global hotkeys + Config file +
+
+ +
+
+
+

v0.4.0

+ Planned +
+
Automation
+
+ Auto-herd on disconnect + Auto-herd on connect + Task Scheduler integration + PowerShell module + Plugin system +
+
+ +
+
+
+ + +
+
+
+ +

Help shape Herd

+

Found a bug? Have an idea? Want to contribute? We'd love to hear from you.

+
+ + + + View All Issues on GitHub + +
+
+ + + + + + +