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

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

10.1. Запуск любой 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 сервера.

10.2. Ускорение плавности любых DE#

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

Установите значения как показано на изображении.

../_images/vsyncoff.jpg

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

Использовать с осторожностью, особенно, если у вас мощная видеокарта.

10.3. GNOME 4X.X#

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

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

sudo pacman -Rsn epiphany gnome-calculator gnome-calendar gnome-contacts gnome-maps gnome-music gnome-weather gnome-clocks gnome-photos gnome-software gnome-user-docs totem yelp gnome-user-share gnome-characters simple-scan eog tracker3-miners rygel evolution-data-server gnome-font-viewer gnome-remote-desktop gnome-logs orca malcontent

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

Можете удалить Nautilus и GVFS если хотите заменить более легковесным аналогом (например PCManFM):

sudo pacman -Rsn gvfs-afc gvfs-goa gvfs-gphoto2 gvfs-mtp gvfs-nfs gvfs-smb gvfs-google nautilus

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

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

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

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

sudo pacman -Rsn gnome-control-center

10.3.2. Отключение 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.3.3. Отключение ненужных 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.3.4. 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.3.5. Бонус: немного косметики#

С обновлением 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.3.6. Исправление размытия шрифтов в GTK 4#

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

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

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

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

10.3.7. Результат#

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

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

10.4. KDE Plasma 6#

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

10.4.1. Удаление мусора из Plasma 6#

sudo pacman -Rsn kwallet-pam plasma-thunderbolt plasma-vault plasma-sdk kgamma drkonqi discover oxygen oxygen-sounds plasma-browser-integration milou flatpak-kcm plymouth-kcm kde-cli-tools kinfocenter wacomtablet qqc2-breeze-style plasma-welcome kwrited

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

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

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

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

10.4.2. Отключение 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.4.3. Отключение ненужных служб 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.4. Результат#

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

10.5. Cinnamon#

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

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

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

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

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

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

10.5.3. Результат#

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