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

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

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

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

if [ -z "$DISPLAY" ] && [ "$XDG_VTNR" = 1 ]; then
  startx
fi

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

10.2. GNOME 4X.X#

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

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

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

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

systemctl --user mask tracker-extract-3 tracker-miner-fs-3 tracker-miner-fs-control-3 tracker-miner-rss-3 tracker-writeback-3 tracker-xdg-portal-3

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

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

10.2.2. Отключение ненужных 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, а затем выполнить отключение ненужных вам служб уже описанным выше способом.

10.2.3. 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 и многих других.

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

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

С обновлением 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

10.2.5. Исправление размытия шрифтов в GTK 4#

С обновлением многих приложений и их переходом на GTK 4 многие заметили "размытие" шрифтов в приложениях.

Чтобы это исправить нужно отредактировать конфиг GTK 4:

nano ~/.config/gtk-4.0/settings.ini

# Добавьте ниже к уже имеющимся настройкам
[Settings]
gtk-hint-font-metrics=1

10.3. KDE Plasma 6#

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

10.3.1. Отключение 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

10.4. Cinnamon#

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

10.4.1. Отключение ненужных 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-a11y-settings.desktop
echo "Hidden=true" >> cinnamon-settings-daemon-a11y-keyboard.desktop

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

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

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

echo "Hidden=true" >> cinnamon-settings-daemon-smartcard.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, а затем выполнить отключение ненужных вам служб уже новым способом.

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

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

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

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