Firma System76, która opracowuje dystrybucję Linuksa Pop!_OS, ogłosiła postępy w rozwoju interfejsu użytkownika COSMIC, przepisanym w języku Rust (nie mylić ze starą wersją COSMIC, która opierała się na GNOME Shell). Interfejs jest w fazie rozwoju od ponad dwóch lat i zbliża się do pierwszej wersji alfa, co oznacza gotowość podstawowego zestawu funkcji, które pozwolą na traktowanie interfejsu jako produktu gotowego do pracy. Zakłada się, że wersja alfa pojawi się pod koniec marca i pomoże w zbieraniu dalszych opinii w celu ostatecznego dopracowania funkcjonalności oraz zwiększenia komfortu użytkowania.
Powłoka rozwija się jako uniwersalny projekt, niezwiązany z konkretną dystrybucją, odpowiadający specyfikacjom Freedesktop. Do budowy interfejsu w COSMIC wykorzystano bibliotekę Iced, która korzysta z bezpiecznych typów, modułowej architektury oraz modelu programowania reaktywnego, a także oferuje architekturę znajomą dla programistów zaznajomionych z deklaratywnym budowaniem interfejsów w Elm. Oferowane są różne silniki renderujące, wspierające Vulkan, Metal, DX12, OpenGL 2.1+ oraz OpenGL ES 2.0+. Programiści otrzymują gotowy zestaw widżetów, możliwość tworzenia asynchronicznych obsług i wykorzystania adaptacyjnego układu elementów interfejsu w zależności od rozmiaru okna i ekranu. Projekt przewiduje również rozwój kompozytowego serwer cosmic-comp opartego na Wayland.
Funkcjonalności w fazie rozwoju, które są minimalnie wymagane do stworzenia wersji alfa COSMIC:
- Emulator terminala COSMIC Terminal, napisany przy użyciu frameworka alacritty_terminal, wspierający takie funkcje jak renderowanie przy użyciu GPU, motywy oraz zaawansowane metody wejścia. Wśród zadań w toku znajduje się dodanie wsparcia dla emulacji myszy oraz możliwość otwierania hiperłączy w terminalu.
- Stworzono narzędzie COSMIC Randr do wyświetlania parametrów i konfiguracji ekranów w środowisku opartym na Wayland, które planuje się wykorzystać w konfiguratorze COSMIC Settings do ustawiania parametrów wyjścia.

- Applet do robienia zrzutów ekranu. Aktualnie stworzono wstępną wersję do tworzenia zrzutów całego ekranu, pojedynczych okien oraz wybranych obszarów.

- Zapewnienie działania na systemach z hybrydową grafiką (zintegrowany GPU + dedykowana karta graficzna) z możliwością wyłączenia dedykowanej karty w celu oszczędzania energii w trybie offline lub jej selektywnej aktywacji dla gier i aplikacji graficznych.
- Implementacja wsparcia dla efektu matowego szkła (rozmyte tło) w motywach.
- Stworzenie appletu do zarządzania mozaikowym układem okien oraz możliwość aktywacji automatycznego mozaikowego rozmieszczania okien w związku z określonym pulpitem roboczym.

- Tryb przypinania okien w stosie do grupowania różnych okien aplikacji na podobieństwo kart w przeglądarkach. Możliwość ta wciąż znajduje się w fazie projektowania i dyskusji.
- Stworzenie ikon dla nowych aplikacji i appletów.
- Możliwość wyświetlania informacji na wierzchu zawartości (OSD — On-Screen Display) i wykorzystanie tej funkcji do wyświetlania wskaźników jasności, głośności, przełączania okien za pomocą Alt + Tab i przejścia w tryb offline.
- Tworzenie stylizowanych tapet biurkowych i interfejsu do ustawiania tapet z takimi możliwościami jak pokaz slajdów i skalowanie obrazu na cały ekran.
- Ekrany logowania i blokady. Zaprojektowane i w trakcie opracowywania.
- Interfejs do konfigurowania orientacji ekranu, skali, profilu kolorów, trybów graficznych. Na razie gotowe są tylko makiety.
- Interfejs do konfigurowania urządzeń wejściowych, umożliwiający zmianę ustawień myszy i gładzika, takich jak prędkość ruchu wskaźnika.
- Wirtualne pulpity. Dyskusja na temat funkcjonalności została zakończona i rozpoczęto fazę rozwoju.
- Rewizja i unifikacja wyglądu wszystkich już opracowanych funkcji, takich jak menu aplikacji, interfejs uruchamiania programów i system powiadomień.
Źródło: opennet.ru



