feat: add portable Windows zone manager
This commit is contained in:
@@ -10,6 +10,8 @@ menu entry, or registry settings.
|
||||
## What FancyWin does
|
||||
|
||||
- Snaps a dragged window into the zone beneath the mouse pointer.
|
||||
- Shows a transparent, click-through guide with every zone's outline and name
|
||||
while Shift-dragging.
|
||||
- Moves the focused window between zones with keyboard shortcuts.
|
||||
- Supports different layouts for different monitors.
|
||||
- Uses percentages, so layouts adapt to resolution, orientation, display
|
||||
@@ -17,10 +19,10 @@ menu entry, or registry settings.
|
||||
- Reloads its configuration automatically after the YAML file changes.
|
||||
- Lets you exclude applications that should never be moved.
|
||||
|
||||
FancyWin is a window-moving backend rather than a complete PowerToys
|
||||
replacement. It does not display a zone overlay or include a visual layout
|
||||
editor. It also does not currently remember application positions, combine
|
||||
multiple zones, or assign layouts per virtual desktop.
|
||||
FancyWin is a focused window manager rather than a complete PowerToys
|
||||
replacement. It does not include a visual layout editor and does not currently
|
||||
remember application positions, combine multiple zones, or assign layouts per
|
||||
virtual desktop.
|
||||
|
||||
## Getting started
|
||||
|
||||
@@ -78,6 +80,12 @@ version: 1
|
||||
gap: 8
|
||||
shift_drag: true
|
||||
|
||||
overlay:
|
||||
enabled: true
|
||||
color: "#00AEEF"
|
||||
opacity: 90
|
||||
border_width: 3
|
||||
|
||||
layouts:
|
||||
- monitor: "*"
|
||||
zones:
|
||||
@@ -118,10 +126,35 @@ use.
|
||||
| `version` | Configuration format. This must currently be `1`. |
|
||||
| `gap` | Inward spacing, in pixels, applied to every edge of every zone. Valid range: `0`–`500`. |
|
||||
| `shift_drag` | Enables or disables mouse snapping when Shift is held at the end of a drag. |
|
||||
| `overlay` | Controls the transparent zone guide shown during Shift-dragging. |
|
||||
| `layouts` | One or more monitor layouts containing zones. |
|
||||
| `excluded_apps` | Applications FancyWin must not move. May be empty. |
|
||||
| `hotkeys` | Global keyboard shortcuts. May be empty. |
|
||||
|
||||
### Zone overlay
|
||||
|
||||
The overlay appears after a window has begun moving and Shift is held. It shows
|
||||
all zones on the monitor beneath the pointer, using the same gap-adjusted
|
||||
rectangles that windows snap into. Each outline contains the zone's `name`, or
|
||||
`Zone N` when its name is empty. Releasing Shift or the mouse button immediately
|
||||
hides it.
|
||||
|
||||
```yaml
|
||||
overlay:
|
||||
enabled: true
|
||||
color: "#00AEEF"
|
||||
opacity: 90
|
||||
border_width: 3
|
||||
```
|
||||
|
||||
- `enabled` turns the guide on or off.
|
||||
- `color` is an outline and label color in `#RRGGBB` format.
|
||||
- `opacity` is from `1` to `100` percent.
|
||||
- `border_width` is from `1` to `20` physical pixels.
|
||||
|
||||
The guide is transparent between its outlines, does not receive mouse input,
|
||||
does not take keyboard focus, and does not appear in Alt+Tab.
|
||||
|
||||
### Zone coordinates
|
||||
|
||||
Each zone is a rectangle described as percentages of the monitor's usable work
|
||||
@@ -296,6 +329,14 @@ borders, but it cannot override size rules imposed by the application itself.
|
||||
Wait at least two seconds and check the console. FancyWin keeps using the last
|
||||
valid configuration when a new edit cannot be parsed or validated.
|
||||
|
||||
### The zone overlay does not appear
|
||||
|
||||
- Confirm `overlay.enabled` and `shift_drag` are both `true`.
|
||||
- Begin moving the window before expecting the guide; a stationary Shift-click
|
||||
is intentionally ignored.
|
||||
- Keep Shift held during the drag.
|
||||
- Check the console for `cannot show zone overlay` errors.
|
||||
|
||||
## Project relationship
|
||||
|
||||
FancyWin is an independent implementation and does not contain Microsoft
|
||||
|
||||
Reference in New Issue
Block a user