Оптимизация рабочего окружения (DE)#

Современные среды рабочего стола стали достаточно прожорливыми и требовательными к аппаратным ресурсам компьютера, и хотя они и довольно хороши с точки зрения удобства использования, все же хотелось бы минимизировать потребление той же ОЗУ с их стороны. Поэтому в этом разделе мы по отдельности рассмотрим оптимизацию разных рабочих окружений и не только.

Запуск любой DE или WM без экранного менеджера (Только для X11)#

Почти всегда любое рабочее окружение запускается при помощи экранного менеджера (его ещё называют менеджером входа), через который вы осуществляете вход в систему и оболочку соответственно. Говоря ещё проще, это экран входа, где вас просят пройти аутентификацию (ввести пароль к вашей учетной записи). Он также выполняет функцию управления рабочими сессиями в разных окружениях. Тем не менее он тоже потребляет определенные ресурсы компьютера, а осуществить вход в систему можно и без него, т.е. через tty, хоть вы и пожертвуете тем самым определенным уровнем удобства. Для автоматизации запуска любой DE/WM (кроме Wayland сессий) через tty вам понадобиться прописать в ваш .bash_profile или .zsh_profile следующее:

if [[ -z $DISPLAY && $(tty) == /dev/tty1 ]]; then
  XDG_SESSION_TYPE=x11 GDK_BACKEND=x11 exec startx
fi

Это запустит X-сервер сразу при входе в tty1 (терминал по умолчанию). Обязательным условием при этом является наличие установленного пакета xorg-xinit, и заранее настроенный файл ~/.xinitrc, в котором прописана команда запуска вашего DE/WM (например: exec gnome-session). Например: exec gnome-session # Запускает gnome сессию при запуске Xorg сервера.

GNOME 3.XX/42#

Сам по себе GNOME - наверное одна из самых тяжеловесных и требовательных к системным ресурсам оболочка из ныне существующих. Тем не менее у неё есть свои преимущества перед другими оболочками, за что её и любят пользователи. Но к сожалению низкое энергопотребление не в их числе, поэтому в этом разделе вы узнаете о том, как заставить похудеть ваш толстенький gnome-shell.

Удаление мусора GNOME#

sudo pacman -Rsn epiphany gnome-books gnome-boxes gnome-calculator gnome-calendar gnome-contacts gnome-maps gnome-music gnome-weather gnome-clocks gnome-photos gnome-software gnome-user-docs totem yelp gvfs-afc gvfs-goa gvfs-gphoto2 gvfs-mtp gvfs-nfs gvfs-smb gvfs-google vino gnome-user-share gnome-characters simple-scan eog tracker3-miners rygel nautilus evolution-data-server gnome-font-viewer gnome-remote-desktop gnome-logs orca

P.S. Удаляйте пакеты с осознанием того, что вы делайте. Несмотря на то, что здесь были собраны наиболее сомнительные по соотношению нужности/прожорливости пакеты, вы можете найти какой-либо из данных пакетов полезным и нужным.

Предупреждение

Некоторые пакеты из вышеприведенной команды могут быть не найдены в вашей системе. В таком случае просто выпишите их из команды.

Для совсем отчаянных парней, после окончательной настройки параметров GNOME, вы можете удалить самый "тяжелый" пакет gnome-control-center (Параметры GNOME 3/41).

По сути, это графическая обертка для gsettings, которая однако достаточно тяжеловесная, и тянет за собой кучу ненужных зависимостей.

sudo pacman -Rsn gnome-control-center

Отключение Tracker 3 в GNOME#

Tracker - это встроенный поисковик для GNOME, который индексирует все файлы на диске и не только. Как любой индексатор файловых систем, он призван кушать ресурсы и мощности вашего накопителя и висеть в оперативной памяти, хоть и в гораздо меньшей степени чем конкуренты (До Windows, с их 100% загруженности на диск, еще как до луны). Тем не менее, его отключение может положительно повлиять на жизненный цикл вашего HDD (в особенности) или SSD, поэтому его можно отключить в целях профилактики диска. Обратите внимание, что после отключения поиск файлов в GNOME может работать некорректно и не так быстро.

Инструкция по отключению

systemctl --user mask tracker-miner-apps tracker-miner-fs tracker-store

После перезагрузки системы выполните:

rm -rf ~/.cache/tracker ~/.local/share/tracker   # Чистим кэш tracker
tracker daemon -t                                # Проверяем, должно быть 0 PID

Отключение ненужных GSD служб GNOME#

Внимание

Способ отключения служб был обновлен. Крайне рекомендуется использовать именно новый способ через systemd взамен старого, опасного переименования библиотек.

GSD (gnome-settings-daemon) службы, это, как следует из названия, службы настройки GNOME и связанных приложений. Если отойти от строго определения, то это просто службы-настройки на все случаи жизни, которые просто висят у вас в оперативной памяти в ожидании когда вам, или другому приложению, к примеру, понадобиться настроить/интегрировать поддержку планшета Wacom или других устройств. И другие подобные вещи.

# Отключение служб интеграции GNOME с графическим планшетом Wacom. Если у вас такого нет - смело отключайте.

systemctl --user mask org.gnome.SettingsDaemon.Wacom.service

# Отключение службы уведомления о печати. Если нет принтера или вам просто не нужны эти постоянные уведомления - отключаем.

systemctl --user mask org.gnome.SettingsDaemon.PrintNotifications.service

# Отключение службы управления цветовыми профилями GNOME. Отключив её не будет работать тёплый режим экрана (Системный аналог Redshift).

systemctl --user mask org.gnome.SettingsDaemon.Color.service

# Отключение службы управления специальными возможностями системы. Не отключать людям с ограниченными возможностями!

systemctl --user mask org.gnome.SettingsDaemon.A11ySettings.service

# Отключает службу управления беспроводными интернет-соединениями. Не рекомендуется отключать для ноутбуков с активным использованием Wi-Fi.

systemctl --user mask org.gnome.SettingsDaemon.Wwan.service

# Отключение службы защиты от неавторизованных USB устройств при блокировке экрана. Можете оставить если у вас ноутбук.

systemctl --user mask org.gnome.SettingsDaemon.UsbProtection.service

# Отключаем службу настройки автоматической блокировки экрана. Можете оставить если у вас ноутбук.

systemctl --user mask org.gnome.SettingsDaemon.ScreensaverProxy.service

# Отключение службы настройки общего доступа к файлам и директориям.

systemctl --user mask org.gnome.SettingsDaemon.Sharing.service

# Отключение службы управления подсистемой rfkill, отвечающей за отключения любого радиопередатчика в системе (сюда же относятся Wi-Fi и Bluetooth, поэтому данная служба нужна, скорее всего, для так называемого режима в "самолете").

systemctl --user mask org.gnome.SettingsDaemon.Rfkill.service

# Отключение службы управления клавиатурой и раскладками GNOME. Можно смело отключать если уже настроили все раскладки и настройки клавиатуры заранее, ибо все предыдущие настройки сохраняются при отключении.

systemctl --user mask org.gnome.SettingsDaemon.Keyboard.service

# Отключаем службу управления звуком GNOME. Отключает ТОЛЬКО настройки звука GNOME, а не вообще всё управлением звуком в системе.

systemctl --user mask org.gnome.SettingsDaemon.Sound.service

# Отключение службы интеграции GNOME с карт-ридером.

systemctl --user mask org.gnome.SettingsDaemon.Smartcard.service

# Отключение службы слежения за свободным пространством на диске. Штука полезная, но если вы предпочитаете следить за этим самостоятельно, то вперед

systemctl --user mask org.gnome.SettingsDaemon.Housekeeping.service

# Отключение службы управления питанием в GNOME. Можете оставить эту службу включенной, в случае если у вас ноутбук.

systemctl --user mask org.gnome.SettingsDaemon.Power.service

# Отключение служб Evolution для синхронизации онлайн аккаунтов (Если вы конечно не удалили сам Evolution через команду чистки мусора выше)

systemctl --user mask evolution-addressbook-factory evolution-calendar-factory evolution-source-registry

Если после отключения какой-либо из вышеперечисленных служб что-то пошло не так, или просто какую-либо из них понадобилось снова включить, просто пропишите:

systemctl --user unmask --now СЛУЖБА

Служба вернется в строй после перезагрузки.

Внимание

Если вы по-прежнему использовали старый способ с переименованием библиотек, то настоятельно рекомендуется выполнить переустановку пакета gnome-settings-daemon, а затем выполнить отключение ненужных вам служб уже описанным выше способом.

gnome-shell-performance и mutter-performance#

Пакеты gnome-shell-performance и mutter-performance - это модифицированные версии пакетов GNOME, где упор сделан на плавность и отзывчивость благодаря включению большого количества патчей для повышения производительности DE.

Установка gnome-shell-performance

git clone https://aur.archlinux.org/gnome-shell-performance.git # Загружаем исходники
cd gnome-shell-performance                                      # Переход в директорию
makepkg -sric                                                   # Сборка и установка

Установка mutter-performance

git clone https://aur.archlinux.org/mutter-performance.git # Загружаем исходники
cd mutter-performance                                      # Переход в директорию
makepkg -sric                                              # Сборка и установка

Также можно выполнить нативную компиляцию пакетов при помощи Clang: Mesa (Только для оборудования Intel & AMD), Wayland, Wayland-protocols, Lib32-wayland, Egl-wayland, xorg-server и многих других.

Более подробную информацию вы можете найти в разделе "Общее ускорение системы".

Бонус: немного косметики#

С обновлением GNOME 42 некоторые приложения на GTK 4 стали использовать тему libadwaita, но из-за этого приложения на GTK 3 стали выглядить неоднородными, не говоря уж о Qt.

Чтобы это исправить, установите портированную тему libadwaita для GTK 3.

Установка

git clone https://aur.archlinux.org/adw-gtk3.git # Скачиваем исходники
cd adw-gtk3                                      # Переход в директорию
makepkg -sric                                    # Сборка и установка

# Устанавливаем как тему по умолчанию
gsettings set org.gnome.desktop.interface gtk-theme adw-gtk3

Результат#

По окончании всех оптимизаций мы получаем потребление на уровне современной XFCE, но в отличие от оной уже на современном GTK4, а также со всеми рабочими эффектами и анимациями.

https://codeberg.org/ventureo/ARU/raw/branch/main/archive/DE-Optimizations/images/image2.jpg

Видеоверсия

https://www.youtube.com/watch?v=YlViA-nOzsg

Демонстрация плавности

https://www.youtube.com/watch?v=1TjicRvrFbo

KDE Plasma 5#

Несмотря на то, что авторы ARU считают эту оболочку довольно перегруженной, она по прежнему остается лидером по меньшему энергопотреблению оперативной памяти среди других рабочих окружений. Однако, "бесконечность - не предел", поэтому в этом разделе мы сделаем так, чтобы ваша plasma-shell кушала еще меньше ресурсов, и применим на ней другие твики.

Удаление мусора из Plasma 5#

sudo pacman -Rsn kwayland-integration kwallet-pam plasma-thunderbolt plasma-vault powerdevil plasma-sdk kgamma5 drkonqi discover oxygen bluedevil plasma-browser-integration plasma-firewall
# Не удаляйте powerdevil если у вас  ноутбук, а bluedevil если используете bluetooth соответственно.

sudo pacman -Rsn plasma-pa     # Удаляем виджет управления звуком.
sudo pacman -S kmix            # Замена виджету plasma-pa, совместим с ALSA.

P.S. Удаляйте пакеты с осознанием того, что вы делайте. Несмотря на то, что здесь были собраны наиболее сомнительные по соотношению нужности/прожорливости пакеты, вы можете найти какой-либо из данных пакетов полезным и нужным.

Предупреждение

Некоторые пакеты из вышеприведенной команды могут быть не найдены в вашей системе. В таком случае просто выпишите их из команды.

Отключение Baloo в Plasma#

Baloo - это файловый индекстор в Plasma, аналог Tracker в GNOME, который однако ОЧЕНЬ прожорливый, и ест довольно много ресурсов процессора и памяти, вдобавок фоном нагружая ваш диск, в отличии от того же Tracker 3. Поэтому, мы рекомендуем отключать его в любом случае, HDD у вас, или SSD. Хоть разработчики и пытались исправить ситуацию с его непомерным потреблением ресурсов, по прежнему осталась проблема "утечки" оперативной памяти среди подпроцессов Baloo.

Инструкция по отключению:

systemctl --user mask kde-baloo.service           # Полное отключение
systemctl --user mask plasma-baloorunner.service

Или:

balooctl suspend                  # Усыпляем работу индексатора
balooctl disable                  # Отключаем Baloo
balooctl purge                    # Чистим кэш

Его точно так же можно отключить в графических настройках Plasma:

https://codeberg.org/ventureo/ARU/raw/branch/main/archive/DE-Optimizations/images/image9.png

Отключение отладочной информации в KDE 5#

Слышали о таких настройках отладки в KDE? Нет? Вот и мы не слышали, а они есть. Так как рядовой пользователь почти не видит этой самой "отладочной информации", мы считаем что лучше отключить её вывод и не тратить на это процессорное время. Чтобы это сделать, введите в терминал или меню запуска приложений команду kdebugdialog5. Перед вами появиться диалоговое окно, где вам нужно поставить галочку на пункте "Отключить вывод любой отладочной информации". Затем, просто нажимаете "Применить" и "ОК".

Сбор отладочной информации теперь отключен.

https://codeberg.org/ventureo/ARU/raw/branch/main/archive/DE-Optimizations/images/image5.png

Отключение ненужных служб Plasma#

По аналогии с GNOME, у Plasma тоже есть свои службы настройки, которые хоть и гораздо менее требовательны к ресурсам. Тем не менее, это по прежнему солянка из различных процессов, которые вам далеко не всегда пригодятся, а отключая ненужные из них вы можете чуть снизить потребление оперативной памяти вашей оболочкой, т.к. по умолчанию все службы включены.

Настройка служб происходит в графических настройках Plasma, в разделе "Запуск и завершение" -> "Управление службами"

https://codeberg.org/ventureo/ARU/raw/branch/main/archive/DE-Optimizations/images/image12.png

Список служб к отключению:

Монитор устройств Thunderbolt -> Отключаем, если вы не используйте Thunderbolt

Запуск системного монитора -> Отключаем, довольно бесполезная служба.

Напоминание, об установке расширения браузера -> Еще более бесполезная служба, отключаем.

Настройка прокси-серверов -> Отключайте если не используете прокси/системный VPN.

Bluetooth -> Отключайте если не используйте bluetooth (Если удален bluedevil, этого пункта может и не быть).

Учётные записи -> Нужна только если у вас больше одной учетной записи на компьютере.

Сенсорная панель -> Отключаем если её нет или вы ей не пользуйтесь.

KScreen 2 -> Нужна только мультимониторным конфигурациям, если у вас один монитор - отключайте.

Обновление местоположения для коррекции цвета -> Нужна для "теплого режима" экрана, аналог Redshift. Если не пользуетесь или в ваш монитор встроен этот режим - отключайте.

Модуль шифрования папок рабочей среды Plasma -> Нужна только если вы параноик. Впрочем, параноики используют более тяжёлые средства шифрования, поэтому отключаем.

Слежение за изменениями в URL -> Работает только в сетевых папках, если вы ими не часто пользуетесь - отключаем.

Слежение за свободным местом на диске -> Вещь полезная, но это вы можете сделать и самостоятельно через виджеты, поэтому Откл./Оставлять по желанию.

SMART -> Тоже довольно полезная служба, отключайте на свое усмотрение.

Диспетчер уведомлений о состоянии -> Нужна для правильной работы лотка и трея.

Служба синхронизации параметров GNOME/GTK -> Осуществляет смену GTK темы на лету. Если отключите, смена GTK темы будет применяться только после перезагрузки.

Фоновая служба клавиатуры -> Служба для отображения раскладки в системном лотке.

Служба локальных сообщений -> Следит в общении между терминалами через команды wall и write. Это очень специфично, поэтому отключаем.

Модуль для управления сетью -> Добавляет системный лоток виджет для управления сетевыми подключениями. Отключайте, если не используете NetworkManager.

Состояние сети -> Оповещает приложения в случае неработоспособности интернет-соединения. Тоже довольно нишевая служба, можно отключить.

Подключение внешних носителей -> Автоматически примонтирует внешние устройства при их подключении. Например, такие как USB-флешки. Отключайте на свое усмотрение.

Часовой пояс -> Информирует другие приложения об изменении системного часового пояса. Довольно редко применимо, можно отключить.

Обновление папок поиска -> Автоматически обновляет результат поиска файлов. Отключаем на свое усмотрение. Кроме того, судя по всему работает только в Dolphin.

Действия -> Обеспечивает работу специально назначенных действий в настройках. Если вы не используйте кастомные бинды, можете отключить.

Фоновая служба меню приложений -> Странная служба. По своей функции она осуществляет обновление Меню Приложений при появлении новых ярлыков, однако даже при её отключении этот функционал работает. Отключайте на свое усмотрение.

Настройка работы KWin для увеличения плавности#

До недавнего времени у Plasma были определенные проблемы с качеством отрисовки и работой композитора в целом. Были и серьёзные проблемы при работе с закрытым драйвером NVIDIA. Правда, начиная с версии плазмы 5.21, ситуация значительно улучшилась, но по прежнему довольно нестабильна. Напомним, что композитор, и одновременно оконный менеджер, в Plasma это kwin - и он отвечает за:

  1. Управление окнами, и все что с ними связано.

  2. Различные графические эффекты и визуальные "приблуды" (Прозрачность, тени, размытие и проч.)

  3. Плавность отрисовки и бесшовность отображаемой картинки, т. е. обеспечивает синхронизацию между кадрами (Vsync), предотвращает тиринг (разрывы экрана).

Вообщем, делает довольно много интересных вещей.

Но нас интересует только третья и немного вторая его функции.

Итак, чтобы обеспечить наилучшую плавность и визуальное качество отклика, нам нужно провести грамотную его (композитора) настройку. Для этого мы перейдем в соответствующий раздел настроек Plasma, т. е. в Экран -> Обеспечение Эффектов.

https://codeberg.org/ventureo/ARU/raw/branch/main/archive/DE-Optimizations/images/image4.png

Что-ж, давайте по порядку.

"Включать графические эффекты при входе в систему"

Данная опция отвечает за то, будет ли композитор брать на себя роль за отрисовку графических эффектов, и синхронизации кадров соответственно. Т. е. будет ли он выполнять свои две последние функции (См. выше) сразу после запуска оболочки. Вы можете отключить этот параметр, в случае крайней экономии аппаратных ресурсов, т.к. это снимет с композитора роль за граф. эффекты и вертикальную синхронизацию, то это также может уменьшить его потребление ресурсов компьютера вдвое, и он просто станет лишь менеджером управления окнами.

"Механизм отрисовки"

Отвечает за то, средствами какого API-бэкенда будет производиться отрисовка. OpenGL механизм дает больше возможностей для обеспечения различных графических эффектов, и лучшую синхронизацию кадров. Принципиальной разницы между OpenGL 2.0 и OpenGL 3.1 - нет. Поддержка OpenGL 2.0 нужна и остается только для работы со старыми видеокартами, у которых нет поддержки OpenGL 3.1. XRender механизм считается морально устаревшим, он не поддерживает такое же количество граф. эффектов как OpenGL, поэтому не удивляетесь что какие-то из них не будут работать на этом механизме отрисовки. Кроме того, с этим бэкендом не работает синхронизация кадров, т. е. Vsync автоматически отключается при выборе данного механизма, и может появиться тиринг. Тем не менее, XRender обеспечивает практически минимальное потребление оперативной памяти компьютера со стороны композитора, и полагается в основном на ресурсы центрального процессора, практически не задействуя видеокарту и не создавая задержки ввода. Поэтому он может эффективно использоваться в комбинации с включенной "Tearfree" опцией открытого драйвера AMD/Intel исправляющей тиринг, и "ForceCompostionPipeline" закрытого драйвера NVIDIA (Что, впрочем, не очень рекомендуется при наличии OpenGL бэкенда с поддержкой Vsync) или NVIDIA PRIME Sync (В таком случае даже рекомендуется его использовать, т.к. это может исправить проблему высокой задержки на ноутбуках с поддержкой NVIDIA PRIME, а проблема тиринга при этом будет решаться использованием самой технологии PRIME Sync). И конечно для AMD Freesync и Nvidia Gsync.

"Задержка отрисовки"

Параметр напрямую влияющий на плавность отрисовки и синхронизацию между кадрами. Он задает с какой задержкой композитор перейдет к композитингу и синхронизации следующего кадра. Соответственно, чем меньше задержка между этими событиями, тем быстрее композитор сможет нарисовать последующие кадры, благодаря чему и достигается такое расплывчатое понятие, как "плавность" картинки, отсутствие высокой задержки ввода (input lag) и в тоже время бесшовность картинки, т.е. отсутствие тиринга. Лучшим вариантом для закрытого драйвера NVIDIA будет, и настоятельно рекомендуется - "Принудительно низкая задержка". Для открытых драйверов Intel/AMD не все так однозначно, и с принудительно низкой задержкой могут возникать артефакты отрисовки. Тем не менее, все также рекомендуется "Предпочитать низкую задержку".

"Предотвращение разрывов (VSync)"

Здесь, мы выбираем метод с которым будут синхронизироваться наши кадры (VSync). Лучше всего отдать его предпочтение автоматическому выбору самого композитора под ваш видеодрайвер, т. е. "Автоматически". Можно также отдать предпочтение методу "При минимуме затрат", где следуя из названия, будут достигаться минимальные затраты на синхронизацию кадра. Однако, этот метод работает только при обновлении всего экрана, например при воспроизведении видео. Поэтому при его использовании может "проявляться" тиринг в некоторых местах при частичном обновлении экрана. Другие методы могут ухудшать производительность, либо в целом, либо для определенных видеодрайверов ("Повторное использование" ухудшает производительность при использовании с драйверами Mesa, т.е. на оборудовании с Intel/AMD).

"Разрешить приложениям блокировать режим с графическими эффектами"

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

"Метод масштабирования"

Из названия понятно, что это метод с которым у вас будет масштабироваться интерфейс.

"Простое растяжение пикселов" - Самый производительный метод, но в тоже время самый топорный по качеству.

"Со сглаживанием" - оптимальный вариант, и рекомендуется большинству конфигураций.

"Точное сглаживание" - Лучший вариант с точки зрения качества, но при этом жертвуете некоторой производительностью, и этот метод может работать не со всеми видеокартами и приводить к артефактам отрисовки.

Отключение композитинга для полноэкранных окон#

kwin-autocomposer - расширение для Kwin, которое позволяет полностью отключить композитинг для полноэкранных окон в X11 сессии Plasma. Это помогает исправить дрожание фреймтайма во время игры и понизить задержки.

Для Wayland сессий Plasma с версии 5.22 отключение композитинга полноэкранных окон происходит по умолчанию.

Установка

Зайдите в настройки, затем в раздел Диспетчер окон -> Сценарии Kwin.

../_images/kwin-autocomposer-1.png

Внизу найдите кнопку "Загрузить новые сценарии"

../_images/kwin-autocomposer-2.png

Найдите в представленном катологе "Autocomposer" выоплните его установку.

../_images/kwin-autocomposer-3.png

После этого перезагрузите рабочее окружение. Готово.

Отключение ненужных графических эффектов Plasma#

Plasma предоставляет возможность использовать много различных графических эффектов (С включенным методом отрисовки OpenGL естественно). Но далеко не все из них нужны, и, по сути, являются сугубо декоративным элементом, которые при этом потребляют некоторые мощности оперативной памяти и GPU на их отрисовку. Поэтому, если вы хотите минимизировать потребление этих ресурсов, рекомендуется либо полностью, либо частично отключить графические эффекты. Осуществить это можно, либо как уже говорилось выше, сняв галочку с "Включать графические эффекты при входе в систему" в настройках Plasma "Экран -> Обеспечение эффектов", либо можно частично отключить определенные граф. эффекты в настройках "Поведение рабочей среды" -> "Эффекты". Какие из них оставлять, а какие нет - решать только вам, но чем меньше эффектов будет включено, тем меньше потребление ресурсов.

Результат#

https://codeberg.org/ventureo/ARU/raw/branch/main/archive/DE-Optimizations/images/image1.jpg

Xfce4#

Xfce, или мышонок в простонародье, является примером "старой школы" среди всех рабочих окружений. Он до сих пор сохранил свою незамысловатость и простоту, однако с последними выпусками и переходом на GTK3 к сожалению потерял свою легковесность. Поэтому в этом разделе, мы поговорим об оптимизации Xfce.

Удаление потенциально ненужных компонентов Xfce#

Честно говоря, в Xfce довольно мало откровенно "ненужных" пакетов. И, по сути, все сводиться к личным предпочтениям, какие пакеты вам нужны, а какие нет. Поэтому рассматриваете указанные ниже инструкции по удалению на свой лад.

Удалит менеджер питания Xfce. Нужен только если у вас ноутбук и

нужно настроить энергосбережение. На ПК можно считать это лишним фоновым процессом который висит у вас в памяти.

sudo pacman -Rsn xfce4-power-manager

Пожалуй единственный, действительно мусорный пакет, который весит процессом на случай если вам нужно будет "найти приложение", которые вы можете и сами найти в соответствующем меню.

sudo pacman -Rsn xfce4-appfinder

Набор тем для Xfwm (Оконного менеджера по умолчанию в Xfce). Удаляйте по желанию.

sudo pacman -Rsn xfwm4-themes

Дополнение к Thunar, и фоновый процесс для удобного и скорого управления различными съемными устройствами при их подключении, например такими как USB-флешки, CD диски, камера и пр.. Если такими устройствами не пользуетесь, или делаете это не часто - можете удалять.

sudo pacman -Rsn thunar-volman

Создает превью изображений различных форматов для Thunar. Довольно прожорливая штука, поэтому если хотите можете его удалить.

sudo pacman -Rsn tumbler

Терминал по умолчанию для Xfce. Является довольно прожорливым, поэтому можете заменить его на менее энергозатратные аналоги.

sudo pacman -Rsn xfce4-terminal

Графическая обертка для главной панели настроек Xfce. По желанию можете удалить, и использовать вместо неё xfconf-query.

sudo pacman -Rsn xfce4-settings

Демон отображения уведомлений в Xfce. Можете удалить и заменить на более легковесные аналоги (например, dunst), не забудьте при этом добавить замену в автозагрузку.

sudo pacman -Rsn xfce4-notifyd

Отключение ненужных служб и приложений автозапуска#

В Xfce также не так много различных фоновых служб, скорее их очень мало. Тем не менее, они есть, и не все они лично вам могут быть нужны. Настроить их вы можете в настройках "Сеансы и запуск" -> "Автозапуск приложений". Отключить вы можете почти все, они не очень важны для работоспособности оболочки. Единственное, что вы можете оставить - это "PolicyKit Authentication Agent", для приложений требующих пароль на выполнение действий из под sudo/root. Служба "Tracker FIle System Miner" - это встроенный файловый индексатор Xfce, его можете либо включить для корректной работы поиска в оболочке и Thunar, либо отключить в целях экономии ресурсов компьютера.

https://codeberg.org/ventureo/ARU/raw/branch/main/archive/DE-Optimizations/images/image11.png

Настройка композитора Xfwm4#

Композитор по умолчанию в Xfce это Xfwm. К сожалению, порой он достаточно неэффективно выполняет функцию синхронизации кадров (Vsync), поэтому нужно выполнить самостоятельную настройку его работы для исправления проблем тиринга. Сделать это можно в "Редакторе Настроек" -> "xfwm4". Здесь нас интересуют три опции, а именно: "vblank_mode", "unredirect_overlays" и "use_compositing". Теперь подробнее.

xfconf-query -c xfwm4 -p /general/unredirect_overlays -s true # Параметр на отвязку полноэкранных окон от работы композитора. В разделе c Plasma эта тема освещалась более подробно. В основном, это применимо к полноэкранным видеоиграм, чтобы не создавать для них лишнюю задержку ввода и немного улучшить их производительность.

xfconf-query -c xfwm4 -p /general/use_compositing -s true # Параметр для переключения работы графических эффектов и вертикальной синхронизации композитора. Если отключите (false), то Xfwm больше не будет выполнять ни вертикальную синхронизацию, ни отрисовку граф. эффектов, и станет просто оконным менеджером. В целях уменьшения потребления ресурсов, это рекомендуется выключить, однако может снова возникнуть проблема тиринга. Как её решить без применения вертикальной синхронизации было указано ниже, но вы также можете использовать сторонний композитор для решения этой проблемы, например такой как Picom. Чтобы это сделать нужно отключить графические эффекты Xfwm, т.е. как раз выключить параметр use_compositing, и установить picom (sudo pacman -S picom). И затем добавить его в автозагрузку (См. приложение). Вот и все.

https://codeberg.org/ventureo/ARU/raw/branch/main/archive/DE-Optimizations/images/image13.png

vblank_mode задает через какие средства будет осуществляться вертикальная синхронизация кадров. Всего есть три возможных значения:

  1. xfconf-query -c xfwm4 -p /general/vblank_mode -s glx # Композитинг и синхронизация кадров при помощи OpenGL. Самый надежный вариант для исправления проблем тиринга, как для открытых драйверов, так и (в особенности) для закрытого драйвера NVIDIA. Может создавать некоторую задержку ввода.

  2. xfconf-query -c xfwm4 -p /general/vblank_mode -s xpresent # Морально устаревший бэкенд отрисовки, который почти не использует ресурсы видеокарты, и перекладывает основную нагрузку за отрисовку эффектов и синхронизации кадров на процессор. В целом, потребление ресурсов с ним меньше чем под glx, и он не создает лишней задержки ввода. И все же, он довольно плохо решает проблему тиринга, поэтому порой он может проявляться. С Закрытым драйвером NVIDIA вертикальная синхронизация при xpresent вообще не будет работать.

  3. xfconf-query -c xfwm4 -p /general/vblank_mode -s off # Отключение вертикальной синхронизации кадров. Этот вариант можно рассмотреть, в случае если вы компенсируете проблему тиринга через опции драйвера "Tearfree" для Intel/AMD, и "ForceCompistionPipiline" для закрытого драйвера NVIDIA или NVIDIA PRIME Sync (Что даже рекомендуется, т.к. NVIDIA PRIME Sync это единственный возможный способ полного исправления проблемы тиринга на ноутбуках с NVIDIA PRIME, и никакая дополнительная синхронизация обычно не нужна). Также эта опция настоятельно рекомендуется пользователям технологий AMD Freesync и Nvidia G-Sync.

Результат#

https://codeberg.org/ventureo/ARU/raw/branch/main/archive/DE-Optimizations/images/image8.png

Cinnamon#

Cinnamon, или дословно корица, это форк GNOME 3, который был создан разработчиками Linux Mint для исправления проблем своего родителя, когда последний был в крайне нестабильном состоянии. И отчасти им это удалось, но одну из главных проблем GNOME она (корица), к сожалению, унаследовала - это большое потребление оперативной памяти и других ресурсов компьютера. Поэтому здесь мы поговорим об оптимизации нашей булочки с корицей.

Отключение ненужных CSD служб (НОВЫЙ СПОСОБ)#

Будучи форком GNOME 3, Cinnamon также имеет свой аналог GSD служб, которые называются CSD службами (Cinnamon Settings Daemon). Принципиальных различий от GSD служб у них по сути нет, просто другое название и немного измененный состав.

cd ~/.config/autostart # Переходим в директорию автозагрузки
cp -v /etc/xdg/autostart/cinnamon-settings-daemon-*.desktop ./ # Копируем автозагрузку служб

# Отключение служб интеграции Cinnamon с графическим планшетом Wacom. Если у вас его нет - смело отключайте.

echo "Hidden=true" >> cinnamon-settings-daemon-wacom.desktop

# Отключение службы интеграции принтера в Cinnamon.

echo "Hidden=true" >> cinnamon-settings-daemon-print-notifications.desktop

# Отключение службы настройки цветовых профилей в Cinnamon.:

echo "Hidden=true" >> cinnamon-settings-daemon-color.desktop

# Отключение служб настройки "Специальных Возможностей" в Cinnamon. Не отключать людям с ограниченными возможностями!

echo "Hidden=true" >> cinnamon-settings-daemon-a11y-settings.desktop
echo "Hidden=true" >> cinnamon-settings-daemon-a11y-keyboard.desktop

# Отключение службы настройки автоматической блокировки экрана.

echo "Hidden=true" >> cinnamon-settings-daemon-screensaver-proxy.desktop

# Отключаем службу управления звуком Cinnamon. Отключает ТОЛЬКО настройки звука Cinnamon, а не вообще все управление звуком в системе.

echo "Hidden=true" >> cinnamon-settings-daemon-sound.desktop

# Отключение службы интеграции Cinnamon с картридером.

echo "Hidden=true" >> cinnamon-settings-daemon-smartcard.desktop

# Отключение службы настройки клавиатуры и раскладок Cinnamon. Можно смело выключать если вы уже настроили все раскладки и настройки клавиатуры.

echo "Hidden=true" >> cinnamon-settings-daemon-keyboard.desktop

# Выключаем службу настройки мониторов Cinnamon. Смело отключайте если у вас нет более одного монитора (ноутбук) и вы настроили герцовку уже имеющихся мониторов.

echo "Hidden=true" >> cinnamon-settings-daemon-xrandr.desktop

# Отключаем службу автоматического монтирования внешних, подключаемых устройств. Например таких как USB-флешки, CD диски и прочие внешние носители.

echo "Hidden=true" >> cinnamon-settings-daemon-automount.desktop

# Отключаем службу слежения за свободным пространством на диске.

echo "Hidden=true" >> cinnamon-settings-daemon-housekeeping.desktop

# Отключаем службу настройки ориентацией дисплея. Если у вас нет сенсорного экрана или поддержки переворота дисплея - отключайте.:

echo "Hidden=true" >> cinnamon-settings-daemon-orientation.desktop

# Отключение службы настройки мыши и тачпада Cinnamon.

echo "Hidden=true" >> cinnamon-settings-daemon-mouse.desktop

# Отключение службы настройки энергосбережения Cinnamon. Можете оставить эту службу если у вас НЕ ноутбук.:

echo "Hidden=true" >> cinnamon-settings-daemon-power.desktop

# Отключаем службу интеграции работы буфера обмена c Cinnamon.

echo "Hidden=true" >> cinnamon-settings-daemon-clipboard.desktop

Если после отключения какой-либо из вышеперечисленных служб что-то пошло не так, или просто какую-либо из них понадобилось снова включить, просто пропишите::

rm -rf ~/.config/autostart/cinnamon-settings-daemon-СЛУЖБА.desktop

Это вернет нужную службу в строй после перезагрузки.

Внимание

Если вы по-прежнему использовали старый способ с переименованием библиотек, то настоятельно рекомендуется выполнить переустановку пакета cinnamon-settings-daemon, а затем выполнить отключение ненужных вам служб уже новым способом.

Настройка композитора Muffin#

По традиции, настроим композитор оболочки. В случае с Cinnamon это Muffin. Он не содержит много настроек, и его нельзя заменить на другой композитор как мы это делали с Xfwm. По сути, вся настройка Muffin сводиться к двум банальным, и уже нам знакомым, параметрам: "Метод Vsync (Вертикальная Синхронизация)" и "Отключение композитора для полноэкранных окон".

https://codeberg.org/ventureo/ARU/raw/branch/main/archive/DE-Optimizations/images/image10.png

"Отключение композитора для полноэкранных окон" - Это уже знакомая вам опция, где из названия все понятно. Вкратце, нужна для уменьшения задержек в видеоиграх создаваемых композитором.

"Метод Vsync" - параметр задающий метод синхронизации кадров.

Впрочем, в случае с Muffin, скорее не метод, а ее поведение. Всего есть четыре возможных значения:

  1. "None" - Отключение вертикальной синхронизации. Более подробно мы рассматривали применимость этого значения в разделе с Plasma и Xfce. Наиболее рекомендуется пользователям ноутбуков с активированным NVIDIA PRIME Sync или обладателям AMD Freesync и NVIDIA G Sync. Помогает избегать высоких задержек и input lag’a.

  2. "Fallback / Classic" - Классический метод вертикальной синхронизации, используемый в ранних версиях Cinnamon.

  3. "Swap Throttling" - Обеспечивает вертикальную синхронизацию с учетом родной частоты обновления вашего монитора. Лучше всего совместим с не-дисплеями (т.е. мониторами).

  4. "Presentation Time" - Может осуществлять вертикальную синхронизацию сразу нескольких устройств с разной частотой обновления (Герцовкой). Рекомендуется включить, если вы используете более одного монитора или дисплея.

Отключение ненужных эффектов Muffin#

К сожалению, по умолчанию в Muffin отсутствует опция отключения сразу всех графических эффектов в оболочке (т.е. композитинга). Поэтому, нам нужно отключить их поочередно в соответствующем разделе настроек "Эффекты".

https://codeberg.org/ventureo/ARU/raw/branch/main/archive/DE-Optimizations/images/image6.png

Желательно, в целях максимальной экономии аппаратных ресурсов, отключить все имеющийся здесь эффекты. Но вы можете сделать это также и выборочно. И как обычно: Чем меньше эффектов включено -> Тем меньше потребление ресурсов ОЗУ и VRAM.

Результат#

https://codeberg.org/ventureo/ARU/raw/branch/main/archive/DE-Optimizations/images/image3.png