System76, the company developing the Pop!_OS Linux distribution, has announced progress in the development of the COSMIC desktop environment, rewritten in Rust (not to be confused with the old COSMIC based on GNOME Shell). The shell has been in development for over two years and is nearing the release of its first alpha version, marking the readiness of the core feature set that will allow the shell to be considered a working product. The alpha version is expected to be published at the end of March, which will help gather more feedback for the final refinement of functionality and usability.
The shell is evolving as a universal project, not tied to a specific distribution and compliant with Freedesktop specifications. To build the interface in COSMIC, the Iced library is used, which employs safe types, a modular architecture, and a reactive programming model, and also offers an architecture familiar to developers acquainted with the declarative interface-building language Elm. Several rendering engines are provided, supporting Vulkan, Metal, DX12, OpenGL 2.1+, and OpenGL ES 2.0+. Developers are offered a ready-made set of widgets, the ability to create asynchronous handlers, and to use adaptive layout of interface elements depending on the window and screen size. The project is also developing a compositor. server cosmic-comp based on Wayland.
The features currently under development that are included in the minimally required list for the alpha release of COSMIC:
- The COSMIC Terminal emulator, built using the alacritty_terminal framework, supports features such as GPU rendering, themes, and advanced input methods. Among the tasks in development is the addition of mouse emulation support and the ability to open hyperlinks in the terminal.
- A COSMIC Randr utility has been created to display parameters and configure screens in a Wayland-based environment, which is planned to be used in the COSMIC Settings configurator for output parameter adjustments.

- An applet for taking screenshots. A basic implementation has already been created for capturing the entire screen, individual windows, and a selected area.

- Support for hybrid graphics systems (integrated GPU + discrete graphics card) with the ability to disable the discrete card for energy saving while on battery or selectively activate it for gaming and graphic applications.
- Implementation of support for the frosted glass effect (blurred background) in themes.
- Creation of an applet for managing tiled window layouts and the ability to activate automatic tiling of windows associated with a specific workspace.

- Stacked window pinning mode for grouping different application windows similarly to browser tabs. The feature is still in the design and discussion stage.
- Creation of icons for new applications and applets.
- The ability to display information over content (OSD - On-Screen Display) and utilizing this feature to show indicators for brightness, volume, window switching via Alt + Tab, and entering offline mode.
- Creating stylized desktop wallpapers and interface for setting wallpapers with features like slideshow and scaling images to full screen.
- Login and lock screens. Designed and currently under development.
- Interface for adjusting screen orientation, scaling, color profiles, and graphic modes. Currently, only mockups are complete.
- Interface for configuring input devices, allowing changes to mouse and touchpad parameters such as cursor speed.
- Virtual desktops. Discussions on functionality are complete, and the development stage has begun.
- Revision and unification of design for all previously developed features, such as the application menu, program launch interface, and notification system.
Source: opennet.ru



