English · Polski
Lekki menedżer układów okien dla Windows. Rozmieść okna po swojemu, zapisz układ jednym kliknięciem — i przywracaj go zawsze, gdy coś je rozrzuci: odłączenie monitora, uśpienie, zdalny pulpit czy pełnoekranowa gra.
Gotowe paczki są w Releases:
| Plik | Dla kogo |
|---|---|
WindowManager-…-win-x64.zip |
Polecana. Samodzielna — nie wymaga instalowania niczego. |
WindowManager-…-win-x64-lite.zip |
Mała paczka; wymaga .NET 10 Desktop Runtime. |
Rozpakuj gdziekolwiek i uruchom WindowManager.exe. Bez instalatora, bez
usług w tle — jeden proces z ikoną w zasobniku.
Język interfejsu podąża za językiem systemu (polski → polski, inny →
angielski); można go wymusić: WindowManager.exe --lang pl albo --lang en.
- Rozmieść okna tak, jak lubisz (np. przeglądarka na lewym monitorze, edytor na prawym, komunikator zminimalizowany).
- Kliknij „Zapisz aktualny układ” i nadaj mu nazwę.
- Gdy okna się rozjadą — kliknij ▶ przy układzie, wybierz go z menu ikony w zasobniku albo naciśnij Ctrl+Alt+1.
- Zapis układu — pozycje, rozmiary, monitor i stan (zmaksymalizowane / zminimalizowane / przyciągnięte snapem) wszystkich otwartych okien.
- Przywracanie jednym kliknięciem — karta w panelu, menu ikony w zasobniku albo globalny skrót Ctrl+Alt+1…9 (numer = pozycja na liście). Skróty działają też w grze — bez wychodzenia do pulpitu.
- Uruchamianie brakujących aplikacji (opcjonalne) — jeśli aplikacja z układu nie działa, program ją uruchomi i ustawi jej okno, gdy tylko się pojawi.
- Zarządzanie układami — zmiana nazwy, nadpisanie aktualnym rozmieszczeniem, zmiana kolejności (a więc i przypisanych skrótów), usuwanie (prawy przycisk na karcie).
- Autostart z systemem — program startuje schowany w zasobniku.
- Bez kradzieży fokusu — okna są ustawiane bez aktywowania
(
SWP_NOACTIVATE); przywrócenie układu nie wybija z gry ani z pracy.
Przy przywracaniu każde zapisane okno trzeba odnaleźć wśród aktualnie otwartych — a to bywa niejednoznaczne (np. dwa okna tej samej przeglądarki, których tytuł zmienia się z aktywną kartą). Dopasowanie ocenia wszystkie pary zapisane×otwarte i przydziela od najlepszej:
- Nazwa procesu — warunek konieczny.
- Tytuł okna — dokładna zgodność wygrywa; przy różnicach liczone jest podobieństwo słów po odcięciu nazwy aplikacji („GitHub – Brave” → „GitHub”), więc okno z GitHubem trafi na swoje miejsce, nawet gdy aktywna karta zdążyła się zmienić.
- Klasa i stan okna — dodatkowe potwierdzenie.
- Bliskość pozycji i rozmiaru — rozstrzyga remisy między oknami o nieodróżnialnych tytułach; za słaba, żeby przebić dopasowanie tytułu.
- Okna zapisane na odłączonym monitorze są przywracane na najbliższy ekran (nigdy poza widocznym obszarem).
- Pozycje przyciągnięte snapem (Win+strzałki, podział 2/3) są zapisywane i odtwarzane wiernie — także między monitorami o różnym skalowaniu DPI.
- Okna aplikacji uruchomionych jako administrator są pomijane z czytelnym komunikatem (nie da się nimi sterować bez uprawnień).
- Aplikacje ignorujące standardowe pozycjonowanie są dociskane drugą metodą
(
SetWindowPosz weryfikacją i ponowieniem). - Zapis układów jest atomowy, z automatyczną kopią zapasową
(
layouts.backup.json) — awaria nie uszkodzi danych. - Błędy trafiają do
%APPDATA%\WindowManager\log.txt; nieobsłużone wyjątki nie wywracają programu.
- ✕ nie zamyka programu — chowa go do zasobnika. Zakończenie: prawy przycisk na ikonie → Zakończ.
- Kliknięcie ikony w zasobniku otwiera panel; drugie uruchomienie programu nie tworzy nowej instancji, tylko pokazuje okno tej działającej.
- Usunięcie układu wymaga dwóch kliknięć kosza — przypadkowe kliknięcie niczego nie kasuje.
- Okna systemowe (Eksplorator, Ustawienia itp.) są zapisywane, ale nigdy nie są ponownie uruchamiane jako „brakujące aplikacje”.
| Co | Gdzie |
|---|---|
| Układy | %APPDATA%\WindowManager\layouts.json (+ layouts.backup.json) |
| Ustawienia | %APPDATA%\WindowManager\settings.json |
| Log | %APPDATA%\WindowManager\log.txt |
Wymaga .NET 10 SDK (Windows):
dotnet build -c ReleaseWynik: bin\Release\net10.0-windows\WindowManager.exe. Tryby diagnostyczne:
WindowManager.exe --tray— start schowany w zasobniku (tak uruchamia go autostart)WindowManager.exe --lang pl|en— wymuszenie języka interfejsuWindowManager.exe --dump plik.txt— wypisuje wykryte okna z pozycjamiWindowManager.exe --shot plik.png— renderuje panel do PNG poza ekranem
