Własny WindowManager, eksperyment
: 19 sie 2012, 19:00
Mam przygotowany projekt, na razie czysto teoretyczny, menedżera okien.
Nie będzie to nic specjalnie użytecznego, raczej eksperyment i zabawa (tak, wiem, o Linuksie to samo Linus mówił xD). Przeglądając źródła TinyWM (tak, przejrzałem całe 50 linijek) pomyślałem że od technicznej strony to nie będzie aż tak trudne (sądziłem że na start będą potrzebne tysiące linii).
Jednak do rzeczy. Chcę zrobić menedżer inny niż reszta. To ma być raczej "nakładka" na okna, podobna do obecnych tillingujących, jednak oparta na OpenGL i płynnych animacjach. Nie będzie opierać się bezpośrednio na tych oknach, a za pośrednictwem tej nakładki właśnie. Ma to pozwolić na m.in. płynne skalowanie graficzne okien i działanie na ich zeskalowanych wersjach: nakładka przyjmuje zdarzenie myszki, sprawdza które to okno, oblicza pozycję kursora w tym oknie i przesyła mu zdarzenie z właściwymi współrzędnymi zdarzenia. Nie ma być tradycyjnego paska zadań, tylko zmniejszone okna (ewentualnie z ikonkami), które po najechaniu się zwiększają, bez tradycyjnych belek itd. Nieco wzorowane na Metro UI, ale mające obsługiwać normalne aplikacje, a nie tylko te napisane od nowa.
Czy przy obecnym xserverze jest to możliwe do wykonania?
Czy zna ktoś jakiś prosty menedżer okien/kompozycji (Compositing window manager, coś w stylu compiza, ale dużo prostszego niż ten kombajn), na którym mógłbym się podszkolić?
Nie będzie to nic specjalnie użytecznego, raczej eksperyment i zabawa (tak, wiem, o Linuksie to samo Linus mówił xD). Przeglądając źródła TinyWM (tak, przejrzałem całe 50 linijek) pomyślałem że od technicznej strony to nie będzie aż tak trudne (sądziłem że na start będą potrzebne tysiące linii).
Jednak do rzeczy. Chcę zrobić menedżer inny niż reszta. To ma być raczej "nakładka" na okna, podobna do obecnych tillingujących, jednak oparta na OpenGL i płynnych animacjach. Nie będzie opierać się bezpośrednio na tych oknach, a za pośrednictwem tej nakładki właśnie. Ma to pozwolić na m.in. płynne skalowanie graficzne okien i działanie na ich zeskalowanych wersjach: nakładka przyjmuje zdarzenie myszki, sprawdza które to okno, oblicza pozycję kursora w tym oknie i przesyła mu zdarzenie z właściwymi współrzędnymi zdarzenia. Nie ma być tradycyjnego paska zadań, tylko zmniejszone okna (ewentualnie z ikonkami), które po najechaniu się zwiększają, bez tradycyjnych belek itd. Nieco wzorowane na Metro UI, ale mające obsługiwać normalne aplikacje, a nie tylko te napisane od nowa.
Czy przy obecnym xserverze jest to możliwe do wykonania?
Czy zna ktoś jakiś prosty menedżer okien/kompozycji (Compositing window manager, coś w stylu compiza, ale dużo prostszego niż ten kombajn), na którym mógłbym się podszkolić?