GNOME 45 достиг стадии RC, но в нем есть изменение, которое повлияет на большее количество пользователей: оно меняет способ работы расширений, что налагает строгие требования к версионированию.
Проект GNOME пометил последнюю версию как 45.rc
, а это значит, что оно почти окончательное. В документе NEWS есть скромный список из примерно 20 изменений, но это скорее поправки, чем большие. Мы посмотрели бета-версию «Риги» месяц назад, если хотите знать, чего ожидать.
То, что, как мы подозреваем, будет иметь более широкое влияние, там вообще не упоминается, но описано в сообщении в блоге разработчика GNOME Флориана Мюлльнера. Он сам резюмирует это в своем аккаунте Mastodon:
В сообщении блога много технических подробностей, и они несколько скрывают основную суть — то, что эта информация будет иметь значение для всех, кто использует индивидуальные настройки GNOME, например, для всех пользователей Ubuntu, Zorin OS и Pop!_OS.
Начиная с GNOME 45, способ работы расширений меняется. Это будет интересно разработчикам Javascript и важно для людей, разрабатывающих собственные расширения GNOME. Однако, Рег Стол FOSS не является ни тем, ни другим, поэтому все, что мы можем предложить, это попытка краткого изложения.
Как мы описали, когда проекту исполнилось 25 лет, рабочий стол реализован на Javascript. Начиная с GNOME 3, GNOME Shell представляет собой плагин Javascript для оконного менеджера Mutter. Сама по себе GNOME Shell не очень настраиваема: в отличие от GNOME 2 или большинства других рабочих столов, которые позволяют перемещать панели, добавлять, удалять или перемещать элементы на этих панелях и т. д., GNOME Shell полностью заблокирована, что помогает. проект развивает и сохраняет свой сильный визуальный бренд.
Если вам не нравится, как все устроено, единственный способ изменить его, не перепрограммируя самостоятельно, — это добавить расширения GNOME, которые по сути представляют собой фрагменты кода Javascript, которые переопределяют работу оболочки.
Ранее среда выполнения Javascript GNOME, GJS, основанная на Mozilla Spidermonkey, имела собственную систему для импорта внешних модулей Javascript. Многие фреймворки имеют свои собственные такие системы, и на Dev.to есть удобное резюме, в котором сравниваются некоторые из них.
Как говорит Мюлльнер:
У самой Mozilla есть полезный, богато иллюстрированный мультфильм, посвященный тому, как работает новая система.
GNOME 45 переключается на эту новую систему модулей ECMAScript (сокращенно ESM). В результате расширения для GNOME 44 и более ранних версий не будут работать в GNOME 45, а расширения, созданные с использованием ESM, не будут работать в более старых версиях. Если у вас есть существующее расширение, вам придется портировать его для использования ESM.
Так что же это значит?
Экосистема расширений GNOME велика и богата: их много, и даже если вы никогда не мечтали о перенастройке своего рабочего стола, если вы используете один из известных дистрибутивов, то это уже сделано за вас.
В Ubuntu добавлена собственная док-станция, которая представляет собой версию существующего расширения Dash to Dock. У Зорина есть целый набор, который превращает GNOME в набор макетов, похожий на различные версии Windows и других ОС. Версия кода Зорина привела к Dash to Panel.
Если вы хотите сделать свою собственную настройку, это уже довольно сложно. Во-первых, есть несколько способов сделать это. Вы можете просто посетить extensions.gnome.org
, но для этого требуется как расширение браузера, так и соединитель, который вы должны установить в свой дистрибутив. Однако это не работало с изолированными браузерами, такими как Firefox и Chromium в Snap-пакете Ubuntu, поэтому существует также приложение GNOME Extensions Manager.
В сообщении в блоге Мюлльнера говорится:
Для некоторых поставщиков дистрибутивов, предлагающих индивидуальные возможности GNOME, это означает, что теперь им предстоит выполнить массу дополнительной работы. Однако в этом их проблема – у добровольных разработчиков-одиночек все будет по-другому: их проектам может потребоваться немало времени, чтобы наверстать упущенное. Мы подозреваем, что это может привести к небольшому исчезновению расширений GNOME, при этом многие из них так и не преодолеют этот новый барьер.
Если вы сами используете сильно настроенную среду GNOME, это означает, что вы вполне можете потерять ее в следующем выпуске.
Однако мы должны отметить, что это имеет всегда была проблема с расширениями GNOME. Расширения могут конфликтовать и конфликтовать. Вы можете превратить свой Dash в док или в панель, но если вы попробуете и то, и другое одновременно, все станет странно.
Почти каждое доступное расширение имеет список поддерживаемых версий GNOME, и после выхода новой версии GNOME обычно возникает пробел. Этот стервятник использует Ubuntu с момента ее первого выпуска, и когда дистрибутив снова перешел на GNOME, мы потратили значительное время и усилия на поиск набора расширений, которые сделают новый рабочий стол более удобным, стремясь к эффективности, подобной Unity. Мы нашли меню «Расширить панель», Pixel Saver, TopIcons Plus, файловый менеджер Nemo и многое другое.
Если вы проверите списки поддерживаемых версий оболочки для каждой из них, вы заметите, что все они перестали работать много лет назад, а многие версии оболочки GNOME — назад. Авторы перестали пытаться идти в ногу с движущейся целью кодовой базы GNOME. Расширенное панельное меню заменили на «Панель индикаторов», которую затем заменили на «Big Sur Status Area», затем вытеснили продолжение с таким же названием… Потом сдались.
В течение многих лет результатом было то, что если вы настраиваете свой рабочий стол с помощью установленных вручную расширений, то при следующем обновлении ОС рабочий стол неизбежно выйдет из строя, потому что некоторые расширения не будут работать с новой версией Shell – или что еще хуже, они не смогут правильно загрузиться и помешают загрузке оболочки.
Нам приходят в голову два возможных способа взглянуть на это.
С одной стороны, негативная интерпретация: повышенная однородность, по-видимому, является тем, чем занимается Фонд GNOME. хочет. Компания стремится продвигать бренд GNOME. Таким образом, возникла навязчивая тема Адвайты и последующая полемика. Например, мы сочли печальным изменением то, что EndlessOS 5 лишился отличительного рабочего стола от старых версий. Но генеральный директор Endless Foundation Роберт Маккуин также является президентом GNOME Foundation.
С другой стороны, положительная интерпретация: принятие стандарта обработки модулей должно быть хорошим шагом. Это может привести к правильному управлению версиями и согласованию между GNOME и расширениями. Как только разработчики перейдут на новую систему, в дальнейшем будет проще поддерживать и поддерживать расширения. Хотя, несомненно, многие не осуществят переход – поскольку многие не пережили переход на GNOME 40 – это может привести к созданию более надежной системы расширений и упрощению обновлений, начиная с GNOME 45.
Возможно, GNOME мог бы даже более серьезно подойти к правильной поддержке и интеграции управления версиями и обработкой расширений, например, предлагая какие-то автоматические обновления, автоматически отключая расширения с устаревшими версиями. Возможно, даже безопасный режим, который отключает все расширения, но дает рабочий стол. Мы можем мечтать, верно? ®