Спустя два месяца после своего предыдущего релиза Niri, композитор Wayland с прокручивающимися плитками, выпустил новую версию, перепрыгнув с 0.1 до 25.01. Если вам интересно, что происходит, ответ прост – Niri переходит с ZeroVer на новый подход к версионированию по годам и месяцам.
Другими словами, 25.01 отражает тот факт, что этот выпуск был помечен в январе 2025 года. Релизы хотфиксов будут добавлять третий компонент, так что ожидайте что-то вроде 25.01.1, если вдруг появится быстрое исправление для текущего релиза. А теперь перейдем к новинкам – их очень много.
Пожалуй, самое большое изменение – это добавление плавающих окон. Как известно большинству людей, работающих в области tiling-WM, правильная реализация плавающих окон – задача нетривиальная.
Нирис Креатор потратил целый месяц на рефакторинг кода, чтобы сделать это, и в результате получился хорошо продуманный опыт работы с плавающими окнами, который должен показаться знакомым давним пользователям других менеджеров плиточных окон.
- Автоплавание и диалоги
Диалоговые окна и окна фиксированного размера теперь автоматически плавают – больше никаких неудобных прокручиваемых диалоговых окон. - Скроллинг встречается с плаванием
Несмотря на характерный для Niris макет с прокруткой (представьте себе колонки на бесконечной полосе, которая движется вправо), плавающие окна занимают свой собственный слой, который не прокручивается. Каждая рабочая область или монитор имеют свой собственный плавающий макет, что означает, что вы можете свободно перемещать окна, не вытесняя их за пределы экрана. - Память положения и предотвращение выхода за пределы экрана.
Niri отслеживает расположение плавающих окон относительно размера монитора. Когда рабочая область перемещается на меньший монитор, окна автоматически сдвигаются внутрь, чтобы ничего не оказалось вне пределов досягаемости. При переходе на монитор большего размера окна возвращаются в исходное положение. - Удобное взаимодействие с мышью.
Вы можете переключить окно с плиточного на плавающее (и наоборот), просто перетащив его мышью и щелкнув правой кнопкой. Композитор отображает подсказку для вставки окна в плитку, что позволяет без труда понять, где именно будет располагаться ваше окно. - Правила работы с окнами.
Для большего контроля над окном, наряду сopen-floating
иdefault-floating-position
, появился новый фильтр правил is-floating. Например, вы можете указать проигрывателю Firefox «картинка в картинке», чтобы он по умолчанию располагался в левом нижнем углу вашего дисплея.
Поведение слоев-оболочек получило несколько исправлений и новых возможностей. Всплывающие меню (например, Waybar или lxqt-panel) больше не застревают в полуоткрытом состоянии, а всплывающие окна всех слоев-оболочек теперь появляются поверх обычных окон.
На практике это означает, что вам не нужно накладывать строку состояния поверх контекстных меню, чтобы обеспечить их видимость. Более того, поверхности-оболочки, расположенные в нижних или фоновых слоях, по-прежнему могут запрашивать фокус клавиатуры при необходимости.
В Niri 25.1 также появилась столь необходимая функция перетаскивания фокуса. Вы когда-нибудь пробовали перетащить вкладку браузера на другой монитор и хотели, чтобы рабочая область нового монитора сразу же стала активной? Теперь это именно так. Когда вы перетаскиваете вкладку на другой монитор, Niri фокусируется на этом мониторе.
Кроме того, Niri переключит фокус на целевое окно, если целевое окно примет ваше движение. Это позволяет избежать путаницы, когда вы пытаетесь набрать текст сразу после перетаскивания.
Еще одним приятным дополнением являются привязки к кнопкам мыши. Если вы предпочитаете управлять окнами с помощью кнопок мыши, вам повезло. Теперь Niri поддерживает привязку действий к щелчкам мыши.
Другие заметные изменения в Niri 25.1 включают:
Исправления, связанные с монитором:
- Niri теперь автоматически обрабатывает мониторы с одинаковыми маркой/моделью/серийным номером, избегая конфликтов именования.
- Включает мониторы при разблокировке сессии, обеспечивая правильное пробуждение.
Гибкость рабочего пространства:
- Вы можете оставить дополнительное пустое рабочее пространство в начале (
empty-workspace-above-first
), так же как и одно в конце. - Новые действия
focus-monitor-next/previous
иmove-window/column/workspace-to-monitor-next/previous
помогут вам перемещаться по многомониторным установкам предсказуемым, зацикленным образом.
Правила и Флаги отладки:
open-focused true/false
может заставить или предотвратить автоматическую фокусировку на новых окнах.default-window-height
параллельно существующему правилуdefault-column-width
.- Несколько новых флагов отладки нацелены на расширенные варианты использования, такие как принудительное использование недопустимого модификатора PipeWire или ограничение первичного сканирования до соответствующего формата.
Подкапотные обновления:
- Временная синхронизация анимации была полностью переписана, что должно исправить едва заметные мерцания или дрожащие переходы.
- Важные зависимости – Smithay и rustix – были обновлены, что позволило устранить такие проблемы, как вложенные всплывающие меню, отчет о частоте обновления VRR и сбой на устройствах Apple M2.
Разработчики пакетов должны обратить внимание на то, что теперь требуется Rust 1.80. Кроме того, новые переменные окружения (NIRI_BUILD_VERSION_STRING и NIRI_BUILD_COMMIT) позволяют вам переопределять информацию о версии и коммите во время сборки.
Подробнее обо всех нововведениях читайте в анонсе релиза, где вы также найдете несколько видеороликов, демонстрирующих новые возможности композитора Niri 25.1 с прокручивающейся плиткой Wayland в действии.
Комментарии (0)