Расширения GNOME Shell давно стали способом подогнать рабочий стол под привычки Windows или macOS: постоянный док, панель задач вместо режима обзора, вернувшиеся кнопки «Свернуть» и «Развернуть», глобальное меню. Цена такой кастомизации — потеря внутренней логики GNOME и возможные сбои оболочки из-за чужого кода. В популярном расширении Rounded Window Corners утечка памяти, открытая в репозитории ещё в 2022 году, остаётся нерешённой до сих пор — наглядная иллюстрация главного риска: настроенный рабочий стол стабилен ровно настолько, насколько стабильно самое слабое его расширение.
Как устроен рабочий стол GNOME
Большинство популярных рабочих окружений повторяют раскладку Windows: панель задач внизу экрана с меню запуска и системным треем, плавающие окна с кнопками «Свернуть», «Развернуть» и «Закрыть» в правом верхнем углу. По этой же схеме работают Chromebook, режим рабочего стола Samsung DeX и раскладка KDE Plasma по умолчанию.

GNOME с третьей версии идёт другим путём. В основе — динамический набор рабочих мест (workspaces), выполняющих роль виртуальных рабочих столов. Переключение между ними происходит через режим обзора (Activities Overview), который открывается клавишей Super, щелчком по индикатору в верхнем левом углу экрана или наведением курсора на активный угол. В режиме обзора внизу появляется панель dash с закреплёнными и запущенными приложениями, выше — миниатюры открытых окон текущего рабочего места, а по правому краю — миниатюры остальных рабочих мест. Отдельным шагом открывается сетка всех установленных программ.

Режим обзора (Activities Overview) — центральный элемент интерфейса GNOME Shell. Показывает миниатюры открытых окон, рабочие места, панель dash с закреплёнными и запущенными приложениями, а также поле поиска по установленным приложениям, файлам и системным настройкам.
Такая организация рассчитана на движение между двумя состояниями: либо перед глазами пользователя чистое активное окно без отвлекающих элементов, либо — режим обзора с полной картиной задач. Постоянных панелей и индикаторов на экране в активном состоянии нет намеренно.
Почему по умолчанию нет кнопки «Свернуть»
У окон приложений в GNOME по умолчанию одна кнопка управления — закрытие. Развёртывание сохранено: развернуть программу можно двойным щелчком по заголовку или перетаскиванием к верхнему краю экрана. Спрятано именно сворачивание. Свернуть окно всё же можно через пункт «Скрыть» в контекстном меню заголовка, но найти этот пункт специально — задача для пользователя.

Логика GNOME такова: на рабочем столе должны быть открыты только приложения, которые нужны прямо сейчас. Программа, не нужная в данный момент, отправляется на отдельное рабочее место; если она не нужна и там — её проще закрыть. В концепции, построенной вокруг рабочих мест, сворачивание становится лишним действием, которое и так покрывается переключением между виртуальными рабочими столами.

По той же причине в GNOME нет постоянной панели задач. Dash выдвигается снизу только при переходе в режим обзора. Если док виден на экране всегда, граница между активной работой и переключением задач стирается, а переход между состояниями рабочего стола теряет смысл.
Что делают Dash to Dock и Ubuntu Dock
Расширение Dash to Dock выводит dash на экран постоянно. Док перестаёт быть элементом режима обзора и превращается в постоянную панель задач в духе macOS или Windows. Расширение популярно именно потому, что возвращает пользователям привычный интерфейс.
Ubuntu Dock — встроенная в Ubuntu с версии 17.10 постоянная док-панель слева. Canonical форкнули Dash to Dock и включили его модифицированную версию в стандартную поставку дистрибутива, чтобы сохранить визуальную преемственность с Unity. Именно поэтому рабочий стол Ubuntu отличается от оригинального GNOME, с которого Canonical начали сборку после отказа от Unity.

Побочный эффект обоих решений один: пользователь, впервые знакомящийся с Ubuntu, не встречает концепцию GNOME в чистом виде. Он видит привычную раскладку с панелью задач и решает, что именно так выглядит типичный рабочий стол GNOME. Идея обзора с миниатюрами рабочих мест остаётся фоновой функцией, а не центральным элементом среды.
Цена кастомизации: утечки памяти и зависимости от релизов
Расширения GNOME Shell — это JavaScript-код, выполняющийся в адресном пространстве gnome-shell. В отличие от расширений Chrome или Firefox, они не изолированы в песочнице и имеют полный доступ к оболочке. Ошибка в расширении приводит к зависанию или краху всей сессии, а утечка памяти — к постепенному замедлению рабочего стола до тех пор, пока пользователь не перезапустит сеанс.
Показательный пример — расширение Rounded Window Corners, которое сглаживает квадратные нижние углы у приложений на GTK 3, Electron, Chromium и Qt. Современные GNOME-приложения на GTK 4 с libadwaita получают скруглённые углы штатно, но Firefox, VS Code, JetBrains IDE и прочие программы на других тулкитах продолжают показывать квадратные углы и в актуальном GNOME 50 «Tokyo», вышедшем . Это не временное расхождение, а осознанная позиция разработчиков GNOME: в январском обсуждении на GNOME Discourse мейнтейнер Emmanuele Bassi подтвердил, что скругление нижних углов — решение автора приложения, не оболочки, и принудительно навязывать его всем окнам оболочка не будет. Для пользователей, желающих визуального единообразия, расширение остаётся единственным решением.

Оригинальное расширение от автора под ником yilozt с лета 2023 года фактически заброшено: последний релиз v11 датирован , а открытая ещё в 2022 году задача «Memory Leak on Window Creation» так и не закрыта. Сообщество перешло на активный форк Rounded Window Corners Reborn, поддерживающий GNOME 46—49 (ожидает публикации версия с поддержкой GNOME 50) и получающий регулярные обновления. Проблема в том, что пользователи, установившие оригинал несколько лет назад, часто не переходят на форк автоматически и продолжают терпеть замедление рабочего стола как неотъемлемую часть среды.
Утечка памяти — дефект программы, при котором выделенная оперативная память не освобождается после использования. Со временем потребление памяти процессом растёт, а производительность падает — до тех пор, пока затронутый компонент не будет перезапущен или пока операционная система не начнёт вытеснять данные на диск.
Второй источник проблем — зависимость расширений от версии GNOME Shell. Крупные релизы оболочки регулярно ломают совместимость: либо из-за изменений в API (GNOME 45 перевёл расширения с обычного JavaScript на ES-модули), либо из-за переработки интерфейса и удаления устаревших компонентов (в GNOME 50 из исходного кода удалена поддержка сессии X11). Каждый раз пользователи расширений оказываются перед выбором: ждать обновления от мейнтейнеров, искать форки или отказываться от привычных модификаций.
Когда сбой на самом деле — не GNOME
Типичная ошибка атрибуции при работе с настроенной оболочкой — списывать нестабильность на сам GNOME или на дистрибутив (Fedora, Ubuntu, openSUSE). Рабочий стол замедлился — «GNOME тормозит». Сессия упала — «Wayland сырой». При этом источником проблемы часто оказывается расширение, установленное полгода назад и забытое.
Ситуация знакома пользователям браузеров: сторонние расширения Chrome и Firefox часто становятся причиной утечек памяти и неожиданных сбоев вкладок. Но у браузера есть изоляция процессов: сбой одного расширения редко обрушивает весь браузер, а тем более — систему. В GNOME Shell такой изоляции нет, и масштаб последствий заметно больше. При этом диагностика для пользователя не меняется: внешне всё выглядит одинаково — «рабочий стол тормозит».
Где проходит разумная граница
Отказ от расширений полностью — это крайность. Есть категория расширений, которые добавляют функции, отсутствующие в GNOME по дизайну, но полезные в повседневной работе: GSConnect для связи рабочего стола со смартфоном через протокол KDE Connect, Clipboard Indicator для истории буфера обмена, Night Theme Switcher для автоматического переключения светлой и тёмной темы по расписанию. Такие расширения расширяют систему, а не переделывают её.
Другое дело — расширения, которые возвращают раскладку Windows: постоянный док, глобальное меню, панель задач вместо обзора, привычные кнопки «Свернуть» и «Развернуть» на каждом окне. Если рабочий стол переделывается настолько, чтобы убрать характерные черты GNOME, это чаще всего означает, что пользователю изначально была нужна другая среда. Для пришедших из Windows есть KDE Plasma и Cinnamon — рабочие столы, рассчитанные на классическую раскладку. Для нетребовательных систем — Xfce и MATE. Каждое из этих окружений покрывает свои сценарии без необходимости ломать логику GNOME.
Заключение
Спор о расширениях в GNOME идёт с сентября 2011 года, когда в GNOME 3.2 появилась сама возможность модифицировать оболочку через сторонние дополнения, и обостряется с каждым крупным релизом. В GNOME 45 «R&解ga» текстовую кнопку «Activities» заменил графический индикатор рабочих мест, в GNOME 50 «Tokyo» из оболочки полностью удалена поддержка X11-сессии — каждое из таких изменений ломает часть расширений, разработчикам которых приходится догонять релизный цикл. Практический вывод для пользователя простой: установленное расширение — это не просто ярлык, а дополнительный источник нестабильности и зависимости от поддержки со стороны мейнтейнеров. Чем больше расширений переделывают интерфейс под другую операционную систему, тем выше вероятность, что выбор самого рабочего стола был сделан неверно — и это отдельный повод задуматься, подходит ли GNOME для конкретной задачи.