Новий випуск Raspberry Pi OS

labwc – новий композитор Wayland

Сьогодні ми випускаємо нову версію ОС Raspberry Pi. Ця версія містить значні зміни, хоча ми сподіваємося, що більшість людей цього навіть не помітять. Тому ми подумали, що краще розповісти вам про це, щоб переконатися, що ви це зробите...

Спочатку - невеличкий урок історії. Настільні комп’ютери Linux, як і їхні попередники Unix, багато років використовували систему X Window. Це основна технологія, яка відображає робочий стіл, обробляє вікна, переміщує мишу та всі інші речі, про які ви насправді не думаєте, оскільки вони (зазвичай) просто працюють. X є доісторичним з точки зору обчислювальної техніки, він добре служить нам з початку 80-х. Але через 40 років у дизайні X починають проявлятися тріщини.

У результаті багато дистрибутивів Linux переходять на нову технологію роботи з вікнами під назвою Wayland. Wayland має багато переваг перед X, зокрема продуктивність. З використанням X дві окремі програми допомагають оформлювати вікно:

  • сервер відображення створює вікна на екрані та надає додаткам місце для оформлення свого вмісту;
  • диспетчер вікон розташовує вікна відносно одне одного та прикрашає вікна рядками заголовків і рамками.

Wayland поєднує ці дві функції в одній програмі під назвою "компонент". Щоб відобразити вікно, програмам, які працюють у системі Wayland, потрібно комунікувати лише з одним предметом, а не з двома. Як ви можете собі уявити, це набагато ефективніший спосіб для оформлення вікон програми.

Wayland також має значну перевагу, а саме забезпечення безпекою. При використанні X усі програми обмінювалися даними з дисплеєм-сервером; отже, будь-яка програма може "спостерігати" за будь-якою іншою програмою. Wayland ізолює програми на рівні композитора, тому програми не можуть "спостерігати" одна за одною.

Ми вперше почали думати про Wayland у Raspberry Pi близько десяти років тому; на той час він ще не був готовий до використання. Протягом останніх кількох років ми робили маленькі, обережні кроки до Wayland. Коли ми випустили Bullseye у 2021 році, ми перейшли на новий віконний менеджер X, "Mutter", який також можна використовувати як композитор Wayland. Ми включили опцію перемикання в режим Wayland, щоб побачити, як це працює.

З випуском Bookworm у 2023 році ми замінили Мutter новим спеціальним композитором Wayland під назвою wayfire і зробили Wayland режимом роботи за замовчуванням для Raspberry Pi 4 і 5, продовжуючи запускати X на моделях із меншою потужністю. Ми витратили багато часу на оптимізацію wayfire для апаратного забезпечення Raspberry Pi, але він усе ще не працював достатньо добре на старих Pis, тому ми не могли перейти на нього всюди.

Все це було навчальним досвідом — ми дізналися більше про Wayland, як він взаємодіє з нашим апаратним забезпеченням і що нам потрібно зробити, щоб отримати від нього найкраще. Продовжуючи працювати з wayfire, ми зрозуміли, що він розвивається в напрямку, який зробить його менш сумісним з нашим апаратним забезпеченням. На даний момент ми знали, що це не найкращий вибір, щоб забезпечити гарну співпрацю Wayland з Raspberry Pi. Тому ми почали шукати альтернативи.

Цей пошук зрештою привів нас до композитора під назвою labwc. Наші початкові експерименти були дуже надихаючими: ми змогли використовувати його в ОС Raspberry Pi лише після кількох годин роботи. Більш ретельне дослідження показало, що labwc набагато краще підходить для графічного обладнання Raspberry Pi, ніж wayfire. Ми зв’язалися з розробниками та виявили, що їхній майбутній напрямок дуже збігається з нашим.

labwc створено на основі системи під назвою wlroots, набору бібліотек, які забезпечують базову функціональність системи Wayland. wlroots був розроблений поряд із протоколом Wayland. Використовуючи wlroots, кожному, хто хоче написати композитор Wayland, не потрібно винаходити велосипед; ми можемо скористатися досвідом тих, хто розробив Wayland, оскільки вони знають це найкраще.

Тож ми прийняли рішення перейти з одного композитора, на інший. Більшу частину цього року ми працювали над перенесенням labwc на робочий стіл Raspberry Pi. Це був спільний процес з розробниками labwc і wlroots: обидва надзвичайно допомогли нам своєю підтримкою, оскільки ми вносили функції та оптимізацію, необхідні для нашого робочого столу.

Після великої оптимізації нашого апаратного забезпечення ми досягли того моменту, коли настільні комп’ютери labwc працюють так само швидко, як X на старіших моделях Raspberry Pi. Сьогодні ми змінюємо наш останній образ робочого столу: Raspberry Pi Desktop тепер запускає Wayland за умовчанням на всіх моделях.

Коли ви оновлюєте наявну інсталяцію Bookworm, під час наступного перезавантаження ви побачите підказку з проханням перейти до labwc:

Ми рекомендуємо більшості людей перейти на labwc.

Існуючі інсталяції Pi 4 або 5 Bookworm, на яких запущено wayfire, не повинні помітно змінюватися, окрім втрати кількох анімацій, які ми ще не реалізували в labwc. Оскільки ми більше не підтримуватимемо wayfire з оновленнями для ОС Raspberry Pi, найкраще прийняти та звикнути до labwc якомога швидше.

Старіші Pis, які зараз використовують X, також повинні перейти на labwc. Щоб забезпечити зворотну сумісність зі старими програмами, labwc включає бібліотеку під назвою Xwayland, яка забезпечує реалізацію віртуального X, що працює поверх Wayland. labwc забезпечує цю віртуальну реалізацію автоматично для будь-якої програми, яка не сумісна з Wayland. За допомогою Xwayland ви можете продовжувати використовувати старі програми, до яких ви вже звикли, але водночас отримувати переваги від останніх оновлень безпеки та продуктивності.

Як і з будь-яким оновленням програмного забезпечення, ми не можемо перевірити всі можливі конфігурації та програми. Якщо ви перейшли на labwc і виникла проблема, ви завжди можете повернутися до X. Для цього відкрийте вікно терміналу та введіть:

sudo raspi-config 

Це запускає програму конфігурації Raspberry Pi у командному рядку. Використовуйте клавіші зі стрілками, щоб вибрати «6 додаткових параметрів» і натисніть «Enter», щоб відкрити меню. Виберіть «A6 Wayland» і виберіть «W1 X11 Openbox window manager with X11 backend». Натисніть «Escape», щоб вийти з програми; коли ви перезавантажите свій пристрій, ваш робочий стіл має перезавантажитися на X.

Ми не очікуємо, що це буде потрібно багатьом людям, але варіант є, про всяк випадок! Звичайно, якщо ви з будь-якої причини віддаєте перевагу використовувати Wayfire або X, запит на оновлення запропонує вам це зробити – це не обов’язкове оновлення, а лише наша рекомендація.

Покращена підтримка сенсорного екрана

Хоча labwc є найбільшою зміною в ОС у цьому випуску, це не єдине, що змінилось. Ми також суттєво вдосконалили підтримку використання робочого столу з сенсорним екраном. Зокрема, Raspberry Pi Desktop тепер автоматично показує та приховує віртуальну клавіатуру, а також підтримує еквіваленти правого та подвійного клацання для сенсорних дисплеїв.

Ця зміна стала результатом інтеграції віртуальної клавіатури Squeekboard. Коли система виявляє сенсорний дисплей, віртуальна клавіатура автоматично відображається внизу екрана, коли є можливість ввести текст. Клавіатура також автоматично ховається, коли введення тексту неможливо.

Це автоматичне відображення та приховування повинно працювати з більшістю програм, але воно підтримується не всіма. Для програм, які не підтримують його, ви можете використовувати піктограму клавіатури в правій частині панелі завдань, щоб вручну вмикати та вимикати клавіатуру.

Якщо ви не хочете використовувати віртуальну клавіатуру з сенсорним екраном або хочете використовувати її без сенсорного екрана та натискати на ній мишкою, ви можете ввімкнути або вимкнути її на вкладці «Дисплей» у конфігурації Raspberry Pi. Нова віртуальна клавіатура працює лише з labwc; він не сумісний з wayfire або X.

На додаток до віртуальної клавіатури ми додали функцію виявлення тривалого натискання на сенсорних екранах, щоб створити еквівалент клацання правою кнопкою миші. Ви можете використовувати це для запуску контекстно-залежних меню будь-де на панелі завдань і в файловому менеджері.

Ми також додали функцію виявлення подвійного дотику на сенсорних екранах для створення подвійного клацання. Хоча це раніше працювало на X, це не працювало у wayfire. Подвійне торкання для подвійного клацання тепер підтримується в labwc.

Краща інтеграція Raspberry Pi Connect

Ми отримали багато позитивних відгуків про Raspberry Pi Connect, наше програмне забезпечення віддаленого доступу, яке дозволяє вам керувати Raspberry Pi з будь-якого комп’ютера в будь-якій точці світу. Цей випуск інтегрує Connect у робочий стіл.

За замовчуванням тепер ви постійно бачитимете піктограму Connect на панелі завдань. Раніше це означало, що Connect запущено. Тепер піктограма вказує на те, що Connect встановлений та готовий до використання, але не обов’язково запущений. Якщо навести курсор миші на піктограму, з’явиться спливаюча підказка з поточним статусом.

Тепер ви можете ввімкнути або вимкнути Connect безпосередньо з меню, яке з’являється після натискання піктограми. Раніше ця опція була в конфігурації Raspberry Pi, але цю опцію було видалено. Тепер усі параметри керування Connect знаходяться в меню значків.

Якщо ви не плануєте використовувати Connect, ви можете видалити його з Рекомендованого програмного забезпечення або ви можете видалити піктограму з панелі завдань, клацнувши правою кнопкою миші на панелі завдань і вибравши «Додати/Видалити плагіни…».

Інші зміни та вдосконалення

Цей випуск містить деякі інші невеликі зміни, про які варто згадати:

  • Ми переписали додаток панелі для панелі завдань у верхній частині екрана. У попередній версії, навіть якщо ви видаляли плагін з панелі, він залишався в пам'яті. Тепер, коли ви видаляєте плагін, панель взагалі ніколи не завантажує його в пам'ять. Замість того, щоб усі окремі плагіни були частиною однієї програми, кожен плагін тепер є окремою бібліотекою. Панель завантажує лише бібліотеки для плагінів, які ви вибрали для відображення на екрані. Це не матиме особливого значення для багатьох людей, але може заощадити вам трохи оперативної пам’яті, якщо ви видалите кілька плагінів. Це також полегшує розробку нових плагінів як для нас, так і для третіх сторін.
  • Ми представили новий інструмент конфігурації екрана raindrop. Це працює так само, як стара версія, arandr, і навіть виглядає схоже. "Під капотом" ми переписали стару програму на C, щоб покращити підтримку labwc і сенсорних екранів. Оскільки новий інструмент є рідним, продуктивність має бути швидшою! Надалі ми підтримуватимемо лише нову нативну версію.

Як же отримати це оновлення?

Новий випуск доступний сьогодні в apt, Raspberry Pi Imager або для завантаження зі сторінки програмного забезпечення на raspberrypi.com.

Учора ми справді мали деякі проблеми з початковим випуском, через які деякі люди виявили, що перехід на labwc спричиняв збій запуску робочого столу, але тепер їх виправлено – тепер має бути безпечно оновлюватись відповідно до наведеного нижче процесу, тому ми відновили запит на оновлення, описаний вище.

Якщо вчора у вас виникли проблеми з оновленням і залишився чорний екран замість робочого столу, виправлення полягає в тому, щоб натиснути Ctrl-Alt-F2 на чорному екрані, увійти в підказку та ввести

sudo apt install labwc

перед перезавантаженням – це має відновити робочий стіл. Ми приносимо вибачення всім, кого це торкнулося.

Щоб оновити існуючу інсталяцію Raspberry Pi OS Bookworm до цього випуску, виконайте такі команди:

sudo apt update
sudo apt full-upgrade

Під час наступного перезавантаження ви побачите підказку, описану вище, яка пропонує перейти до labwc.

Щоб переключитися на новий інструмент конфігурації екрана, виконайте такі команди:

sudo apt purge arandr
sudo apt install raindrop

Нову екранну клавіатуру можна встановити з рекомендованого програмного забезпечення – воно називається Squeekboard – або з командного рядка за допомогою:

sudo apt install squeekboard wfplug-squeek

Сподіваємося, вам сподобається новий досвід роботи з робочим столом. Або, точніше, ми сподіваємося, що ви не помітите великої різниці! Як завжди, ми будемо дуже раді та вдячні вашим коментарям.