Выпуск композитного сервера Hyprland 0.56 - QubStore

Выпуск композитного сервера Hyprland 0.56

Вышла новая версия композитного менеджера Hyprland 0.56 — рабочего окружения на базе протокола Wayland.

Проект заточен под мозаичную (tiling) раскладку окон, но умеет работать и в классическом режиме с произвольным размещением, группировкой во вкладки, псевдомозаичным стилем и полноэкранным режимом. Код полностью написан на C++ и распространяется по лицензии BSD. Разработчики сделали упор на визуальные эффекты: в Hyprland доступны градиенты для рамок окон, размытие фона, анимации и тени. Функции расширяются через плагины, для внешнего управления есть сокетный IPC. Настройки хранятся в конфигурационном файле, который перечитывается на лету — без перезапуска системы.

Среди ключевых возможностей — динамические виртуальные рабочие столы, разные режимы компоновки, глобальные горячие клавиши и поддержка жестов на тачпадах и сенсорных экранах.

Что изменилось в версии 0.56? Прежде всего, разработчики добавили новые параметры для Scrolling Layout — макета с прокручиваемой лентой окон и столов. Например, `fit_into_view` подгоняет текущую колонку так, чтобы она целиком помещалась на экране. Параметр `inhibit_scroll` отключает прокрутку на выбранном рабочем столе, а `fit expand` растягивает активную колонку, заполняя пустоты. Для Master Layout (макет с основным окном) появилась опция `focus_master_on_close`: когда окно закрывается, фокус автоматически переводится на главное окно.

Язык Lua для кастомизации рабочего стола получил мощное расширение. Добавлен ряд новых функций: `change_id` меняет идентификатор рабочего стола, `get_loaded_plugins` возвращает список подключенных плагинов, `clear_crashed_lockscreen` сбрасывает экран блокировки, `is_key_down` позволяет напрямую опрашивать состояние клавиш. Также появились `physical_width` и `physical_height` для получения физических размеров монитора в дюймах, функция `exec_scheduled_prop_refresh_immediately` для немедленного обновления свойств окна, а также набор `set_*` для низкоуровневого управления мониторами. Теперь Lua можно использовать для регистрации и обработки событий, а также для создания экранных жестов, реагирующих на движение пальцев.

Утилита `hyprctl` обзавелась REPL-интерфейсом — это интерактивный режим для выполнения Lua-скриптов прямо в командной строке. Добавлена опция `disable_when_only` для панели groupbar: она прячет её, если в группе остаётся только одно окно. Для окон появились правила `no_auto_hdr` (запрет автоматического включения HDR) и `suppress_event` (блокировка конфигурационных событий X11 — это решает проблемы с некоторыми играми, запущенными через XWayland). В правиле `monitor` теперь есть опция `silent`: окно открывается на указанном мониторе, но фокус не переключается. Эффект `glow` (свечение вокруг окна) научился работать с градиентами. И наконец, реализована возможность перемещать окна мышью за заголовки, отрисованные в стиле клиентского декорирования (CSD).

Подробности и исходный код доступны на официальном сайте проекта.

Ссылка на основную публикацию