Skip to content

Latest commit

 

History

History
120 lines (93 loc) · 5.42 KB

File metadata and controls

120 lines (93 loc) · 5.42 KB

Układy okien (WindowManager)

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.

Release Platform .NET

Panel programu Układy okien

Pobieranie

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.

Szybki start

  1. Rozmieść okna tak, jak lubisz (np. przeglądarka na lewym monitorze, edytor na prawym, komunikator zminimalizowany).
  2. Kliknij „Zapisz aktualny układ” i nadaj mu nazwę.
  3. Gdy okna się rozjadą — kliknij ▶ przy układzie, wybierz go z menu ikony w zasobniku albo naciśnij Ctrl+Alt+1.

Funkcje

  • 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.

Jak program rozpoznaje okna

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:

  1. Nazwa procesu — warunek konieczny.
  2. 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ć.
  3. Klasa i stan okna — dodatkowe potwierdzenie.
  4. Bliskość pozycji i rozmiaru — rozstrzyga remisy między oknami o nieodróżnialnych tytułach; za słaba, żeby przebić dopasowanie tytułu.

Odporność na problemy

  • 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ą (SetWindowPos z 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.

Obsługa — warto wiedzieć

  • 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”.

Pliki

Co Gdzie
Układy %APPDATA%\WindowManager\layouts.json (+ layouts.backup.json)
Ustawienia %APPDATA%\WindowManager\settings.json
Log %APPDATA%\WindowManager\log.txt

Budowanie ze źródeł

Wymaga .NET 10 SDK (Windows):

dotnet build -c Release

Wynik: 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 interfejsu
  • WindowManager.exe --dump plik.txt — wypisuje wykryte okna z pozycjami
  • WindowManager.exe --shot plik.png — renderuje panel do PNG poza ekranem