команда Buddies of Budgie выпустила Budgie Desktop 10.10.4 – четвёртое корректирующее обновление серии 10.10. Разработчики переработали автоматическое скрытие панелей и режим док-панели в сеансе Wayland. В выпуск также вошли сочетания клавиш для управления панелями и Raven, оптимизация запуска и исправления исчезающих апплетов. Часть изменений относится к интеграции с композитором labwc, включая перенос окон между мониторами и совместимость со старыми Qt-приложениями.
Как теперь скрываются панели в Wayland

После перехода Budgie 10.10 с X11 на Wayland прежний механизм скрытия панелей перестал работать корректно. В X11 окружение получало размеры и положение окон и могло скрывать панель, когда активное окно перекрывало её. Используемый в Wayland протокол wlr-foreign-toplevel-management сообщает состояние окна и монитор, на котором оно находится, но не передаёт его размеры и координаты.
В Budgie 10.10.3 режим Intelligent опускал панель под окна. Если окно было развёрнуто, вернуть панель наведением указателя к краю экрана не удавалось. Режим Automatic вообще не скрывал панель, а скрываемая док-панель продолжала резервировать место вдоль края экрана.
В версии 10.10.4 скрытая панель остаётся поверх окон, но становится невидимой. Вдоль её края сохраняется полоса толщиной 3 пикселя, которая принимает события мыши: наведение указателя возвращает панель. Щелчки за пределами этой области поступают в расположенное ниже окно. Панели с автоматическим скрытием больше не резервируют место, поэтому развёрнутые окна используют всю доступную область экрана.
Оба режима скрытия теперь ориентируются на развёрнутые окна:
- Automatic – панель скрывается, если на её мониторе есть хотя бы одно развёрнутое окно.
- Intelligent – панель скрывается, только пока развёрнуто окно, находящееся в фокусе.
Пока открыто меню панели или всплывающее окно апплета, панель остаётся видимой. Это позволяет пользоваться Budgie Menu, действиями IconTasklist и регулятором громкости без её неожиданного скрытия.
Панели поверх видео и управление с клавиатуры
При просмотре полноэкранного видео автоматически скрытую панель теперь можно вызвать наведением указателя к краю экрана. На игры, захватывающие указатель мыши, это не должно влиять при условии, что композитор правильно реализует протокол ограничения указателя.
Если для Automatically hide выбрано Never, панель остаётся позади полноэкранного приложения. Для её вызова доступны два способа:
- Super+T показывает все панели без открытия Budgie Menu. Повторное нажатие скрывает их; тот же результат даёт наведение указателя на панель с последующим перемещением за её пределы.
- Super открывает Budgie Menu и теперь показывает все панели, а не только ту, на которой расположено меню. Они остаются видимыми до закрытия меню и ухода указателя с панелей.
В Raven сочетания Super+A и Super+N переключают представление виджетов и уведомлений соответственно. Если нажать сочетание для уже открытого представления, боковая панель закроется.
Окна, мониторы и щелчки по рабочему столу
Мост labwc – компонент интеграции Budgie с композитором labwc, который переносит настройки окружения в конфигурацию композитора. Через него согласуются сочетания клавиш, параметры ввода и поведение окон.
В сеансе с labwc восстановлен перенос активного окна на монитор в соответствующем направлении сочетанием Super+Shift+клавиша со стрелкой. Эта возможность уже работала в Budgie 10.9. Окна режима «картинка в картинке», в том числе создаваемые Firefox, теперь остаются поверх других окон.
Левый щелчок по рабочему столу теперь только передаёт ему фокус, а правый по-прежнему открывает корневое меню labwc. Ранее меню появлялось и по левому щелчку: при работе с тачпадом касание с перетаскиванием могло случайно запустить выбранный пункт.
Также исправлено закрытие Budgie Menu и Raven щелчком по рабочему столу при отключённых значках. Существующая конфигурация labwc обновляется при входе в сеанс с сохранением пользовательских настроек мыши.
Затемнение экрана и выбор блокировщика
Задержку перед затемнением экрана можно настроить в диапазоне от 30 секунд до 30 минут. Значение 0 отключает затемнение, а по умолчанию используется 30 секунд. Например, следующая команда задаёт задержку 90 секунд:
gsettings set com.solus-project.budgie-wm dimming-delay 90
Согласно анонсу, настройка на странице Power появится в следующем выпуске Budgie Control Center. Пока задержка задаётся через gsettings.
Пользователь также может выбрать gtklock или swaylock для блокировки экрана. По умолчанию Budgie ищет установленный блокировщик, сначала проверяя gtklock. Для выбора swaylock используется команда:
gsettings set org.buddiesofbudgie.budgie-locker locker-choice 'swaylock'
Если выбранный блокировщик не установлен, Budgie использует другой доступный.
Меньше повторных проверок приложений при запуске панели
Ранее Budgie Menu, Icon Tasklist и страница автозапуска в Budgie Desktop Settings независимо загружали полный список установленных приложений. Icon Tasklist дополнительно повторял эту операцию для каждого приложения, которое требовалось сопоставить с окном.
Теперь список загружается один раз и совместно используется компонентами панели. Он обновляется при установке и удалении приложений; к нему также обращаются страница автозапуска и механизм сопоставления окон, открытых после запуска.
Разработчики измеряли первые 90 секунд работы панели в системе с 281 установленным приложением. Для временных показателей выполнено по два запуска каждой сборки; пары результатов в таблице разделены косой чертой.
| Показатель | До изменения | После изменения | Изменение |
|---|---|---|---|
| Полные сканирования файлов .desktop при запуске | 9: 1 для индекса приложений и 8 для сопоставления окон | 1 | −8 |
| Время основного потока в этих сканированиях | 201 / 200 мс | 22 / 22 мс | −178 мс |
| Процессорное время панели в пользовательском пространстве | 392 / 427 мс | 255 / 270 мс | −147 мс (−36%) |
| Процессорное время первого заполнения списка задач, rebuild_items | 106 / 118 мс | 14 / 13 мс | −99 мс |
| Процессорное время в g_app_info_get_all и вложенных вызовах | 94 / 113 мс | 10 / 14 мс | −92 мс |
| Вызовы выделения памяти | 2 756 211 | 1 763 625 | −36% |
| Кратковременные выделения памяти | 522 009 | 213 184 | −59% |
| Пиковый объём динамической памяти | 15,42 МБ | 16,23 МБ | +0,81 МБ |
Это замеры команды Budgie, а не независимое тестирование. Сокращение процессорного времени на 36% относится к указанному сценарию работы панели. Пиковый объём динамической памяти немного вырос: общий список приложений хранится всё время, пока работает панель.
Исправлено исчезновение апплетов после Budgie 10.10.3
После установки Budgie 10.10.3 апплеты могли исчезать с панели при использовании языка, отличного от английского. В той версии названия апплетов стали переводимыми, а панель сопоставляла сохранённое название плагина с именем, которое возвращала libpeas. При несовпадении из-за перевода апплет удалялся с панели.
В Budgie 10.10.4 для идентификации используется имя модуля плагина в новом ключе module. Если ключа нет, панель проверяет непереведённое имя из файла .plugin; переведённые имена, сохранённые версией 10.10.3, также распознаются. При входе в сеанс существующим апплетам добавляется ключ module, а переведённое имя заменяется исходным.
Другие исправления панели:
- Отсутствующий или не загрузившийся апплет больше не оставляет всю панель скрытой. Запись такого апплета удаляется из конфигурации.
- Budgie Menu больше не перекрывает панель, которая не резервирует место на экране.
- Открытие выпадающего списка внутри всплывающего окна, например расписания в Night Light, больше не закрывает это окно.
- Устранён сбой при запуске панели без сохранённого положения.
- Новая панель сразу сохраняет своё положение, поэтому оно не теряется при быстром завершении сеанса.
- Перенос панели к другому краю экрана больше не уводит её с основного монитора.
Bluetooth, Crystal Dock и совместимость приложений
После удаления раздела Bluetooth из Budgie Control Center 2.1.1 кнопка настроек в Bluetooth-апплете перестала работать. Теперь она открывает первую установленную программу из списка: Bluejay, Blueman, Budgie Control Center.
В Crystal Dock исправлены повторное преобразование обоев при изменении настройки и сохранение старых процессов swaybg после перезапуска budgie-daemon. Механизм обхода проблемы с рамкой обоев теперь поддерживает изображения JPEG XL и в дистрибутивах, где ImageMagick собран без поддержки этого формата: для этого Budgie нужно собрать с GraphicsMagick.
В виртуальных машинах VMware восстановлена видимость указателя мыши. При обнаружении виртуального графического адаптера VMware сеанс labwc задаёт переменную WLR_NO_HARDWARE_CURSORS, как это уже делалось для virgl.
Старые Qt-приложения и AppImage без поддержки Wayland снова могут запускаться через XWayland. Если переменная QT_QPA_PLATFORM ещё не задана, сеанс labwc устанавливает для неё значение wayland;xcb: при недоступности Wayland используется модуль xcb.
Изменения для разработчиков и сборщиков пакетов
Budgie Desktop теперь поддерживает meson devenv. После сборки панель, апплеты и Raven можно запускать непосредственно из каталога сборки без установки:
meson devenv -C build budgie-panel --replace &
Новый параметр сборки graphics-lib выбирает инструмент преобразования обоев для механизма обхода проблемы Crystal Dock. Значение imagemagick используется по умолчанию и вызывает magick из ImageMagick 7; значение graphicsmagick выбирает gm convert.
Добавлена схема org.buddiesofbudgie.budgie-locker с ключом locker-choice. Дистрибутивы, поставляющие одновременно gtklock и swaylock, могут переопределить выбор по умолчанию. Схема com.solus-project.budgie-wm получила ключи dimming-delay со значением 30 секунд и toggle-panels с сочетанием Super+T.
В записях апплетов файла panel.ini теперь поддерживается Module=. Если он указан, то имеет приоритет над ID=. Существующие схемы размещения панелей сохраняют совместимость.
Вывод
Обновление устраняет ситуации, когда скрытую панель нельзя было вернуть поверх развёрнутого окна, и исправляет потерю апплетов в локализованном интерфейсе. Новые сочетания клавиш упрощают доступ к панелям и Raven, а общий список приложений сокращает повторную работу при запуске. Пользователям сеанса с labwc также полезны исправления переноса окон, указателя в VMware и запуска Qt-приложений без поддержки Wayland.