feat: add tray layout controls

This commit is contained in:
Steve Cliff
2026-08-20 09:31:15 +01:00
parent 45ee82692d
commit cb00340c55
10 changed files with 523 additions and 31 deletions
+39 -23
View File
@@ -34,9 +34,14 @@ You need these two files in the same directory:
The supplied [example configuration](fancywin.example.yaml) can be copied or
renamed to `fancywin.yaml`.
Double-click `fancywin.exe` to start it. A console window remains open while
FancyWin is running and shows its status, detected monitors, configuration
reloads, and any errors. Closing that console stops FancyWin.
Double-click `fancywin.exe` to start it. FancyWin runs quietly in the Windows
notification area without leaving a console or taskbar window open. Hover over
its tray icon to see the active layout. Right-click the icon to select any
configured layout or choose `Exit` to stop FancyWin. The active layout is marked
with a check.
Run `fancywin.exe --debug` from PowerShell when you want a console showing
status, detected monitors, drag diagnostics, configuration reloads, and errors.
Only one copy of FancyWin can run at a time.
@@ -127,8 +132,8 @@ hotkeys:
FancyWin checks the file for unknown fields and invalid values. While it is
running, a valid edit takes effect within about two seconds. If an edit is
invalid, the error is printed and the previous valid configuration stays in
use.
invalid, the previous valid configuration stays in use. Restart with `--debug`
to investigate configuration errors.
### General settings
@@ -218,8 +223,10 @@ layouts:
- { name: right, x: 66.667, y: 0, width: 33.333, height: 100 }
```
Changing `active_layout` to `equal-thirds` is applied automatically within
about two seconds; FancyWin does not need to be restarted.
Select a name from the tray menu to switch immediately. FancyWin also updates
`active_layout` in the YAML so the choice survives a restart. Alternatively,
changing `active_layout` by hand is applied automatically within about two
seconds; FancyWin does not need to be restarted.
Use `monitor: "*"` as the fallback layout for every display that does not have
a specific entry. At startup, FancyWin prints detected device names such as
@@ -303,7 +310,7 @@ Run these commands from PowerShell or Command Prompt in the FancyWin directory:
# Print the FancyWin version
.\fancywin.exe -version
# Print detailed window-move and snapping diagnostics
# Keep a console open and print detailed diagnostics
.\fancywin.exe -debug
```
@@ -322,25 +329,17 @@ necessary.
## Troubleshooting
### FancyWin closes immediately
### FancyWin does not appear to start
Open PowerShell in the FancyWin directory and run:
```powershell
.\fancywin.exe
.\fancywin.exe --debug
```
The console will remain visible so you can read the error. Common causes are a
missing `fancywin.yaml`, invalid YAML, a shortcut conflict, or another running
copy of FancyWin.
For detailed diagnostics, stop FancyWin and restart it with:
```powershell
.\fancywin.exe -debug
```
The debug output reports whether Windows emitted a move event, whether the
The console remains attached so you can read errors. Common causes are a missing
`fancywin.yaml`, invalid YAML, a shortcut conflict, or another running copy of
FancyWin. Debug output also reports whether Windows emitted a move event, whether the
window passed filtering, whether Shift was active during the drag, which monitor
and zone were selected, and whether Windows accepted the final move request.
@@ -370,8 +369,25 @@ borders, but it cannot override size rules imposed by the application itself.
### Configuration changes are not applied
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.
Wait at least two seconds. FancyWin keeps using the last valid configuration
when a new edit cannot be parsed or validated. Restart with `--debug` and repeat
the edit to see the exact error.
### The tray icon is missing
- Check the notification-area overflow menu behind the upward arrow; Windows
may place new icons there automatically.
- Start FancyWin with `--debug` and check for a notification-area error.
- Only one FancyWin instance may run at a time.
- If Windows Explorer restarts, FancyWin automatically adds its icon again.
### A layout is missing from the tray menu
- Confirm every layout entry has a non-empty `name`.
- Monitor-specific variants sharing the same name intentionally appear as one
menu choice.
- Check the YAML with `fancywin.exe -check`.
- Layouts added while FancyWin is running appear after the configuration reload.
### The zone overlay does not appear