.. ARU (c) 2018 - 2021, Pavel Priluckiy, Vasiliy Stelmachenok and contributors

   ARU is licensed under a
   Creative Commons Attribution-ShareAlike 4.0 International License.

   You should have received a copy of the license along with this
   work. If not, see <https://creativecommons.org/licenses/by-sa/4.0/>.

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

.. contents:: Содержание:
  :depth: 3

.. role:: bash(code)
  :language: shell

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

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

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

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

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

====================
GNOME 3.XX/40/41/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-documents gnome-photos gnome-software gnome-user-docs totem malcontent yelp gnome-getting-started-docs 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 gnome-software gnome-boxes orca

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

Для совсем отчаяных парней, после окончательной настройки параметров GNOME,
вы можете удалить самый "тяжелый" пакет `gnome-control-center <https://archlinux.org/packages/extra/x86_64/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 (НОВЫЙ СПОСОБ)
---------------------------------------------------

.. attention:: Способ отключения служб был обновлен.
  Крайне рекомендуется использовать именно новый способ через 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 3.
Отключает **ТОЛЬКО** настройки звука GNOME 3, а не вообще все управлением звуком в системе.::

  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-shell-performance и mutter-performance
------------------------------------------------

Пакеты `gnome-shell-performance <https://aur.archlinux.org/packages/gnome-shell-performance>`_
и `mutter-performance <https://aur.archlinux.org/packages/mutter-performance/>`_ -
это модифицированные версии пакетов с соответствующими названиями и назначением,
в которых был сделан общий упор на плавность и отзывчивость GNOME 41.
Они содержат большое количество патчей на улучшение общей производительности оболочки.

**Установка 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

----------
Результат
----------

.. image:: https://raw.githubusercontent.com/ventureoo/ARU/main/archive/DE-Optimizations/images/image2.jpg

===============
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, который однако
`ОЧЕНЬ прожорливый <https://sun9-71.userapi.com/impg/BfaY4aziS81VH2i839oSLOx87oezAyryVyeBRA/Jpv5mJGJ7X4.jpg>`_,
и ест довольно много ресурсов процессора и памяти, вдобавок фоном нагружая ваш диск, в отличии от того же Tracker 3.
Поэтому, мы рекомендуем отключать его в любом случае, HDD у вас, или SSD.
Хоть разработчики и пытались исправить ситуацию с его непомерным потребление ресурсов,
по прежнему `осталась проблема <https://sun9-23.userapi.com/impg/dREwZKZRK80G5sASKacn7mLpQ00-9I1KUncXWg/SDEoiKFoS4M.jpg>`_
"утечки" оперативной памяти среди подпроцессов Baloo.

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

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

Или:::

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

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

.. image:: https://raw.githubusercontent.com/ventureoo/ARU/main/archive/DE-Optimizations/images/image9.png

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

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

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

.. image:: https://raw.githubusercontent.com/ventureoo/ARU/main/archive/DE-Optimizations/images/image5.png

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

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

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

.. image:: https://raw.githubusercontent.com/ventureoo/ARU/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, т. е. в *Экран* -> *Обеспечение Эффектов*.

.. image:: https://raw.githubusercontent.com/ventureoo/ARU/main/archive/DE-Optimizations/images/image4.png

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

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

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

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

Отвечает за то, средствами какого 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 <https://store.kde.org/p/1502826/>`_.
Установить его вы можете через соответствующую кнопку в правом верхнем углу страницы *"Install"*.
После его установки никаких дополнительных действий производить не нужно.

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

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

----------
Результат
----------

.. image:: https://raw.githubusercontent.com/ventureoo/ARU/main/archive/DE-Optimizations/images/image1.jpg

========
Xfce4
========

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

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

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

  # Удалит менеджер питания Xfce. Нужен только если у вас ноутбук и нужно настроить энергосбережение. На ПК можно считать это лишним фоновым процессом который висит у вас в памяти.
  sudo pacman -Rn 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,
либо отключить в целях экономии ресурсов компьютера.

.. image:: https://raw.githubusercontent.com/ventureoo/ARU/main/archive/DE-Optimizations/images/image11.png

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

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

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

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

.. image:: https://raw.githubusercontent.com/ventureoo/ARU/main/archive/DE-Optimizations/images/image13.png

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

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

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

3. :bash:`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.

---------
Результат
---------

.. image:: https://raw.githubusercontent.com/ventureoo/ARU/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

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

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

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

.. image:: https://raw.githubusercontent.com/ventureoo/ARU/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 отсутствует опция отключения сразу всех графических эффектов в оболочке (т.е. композитинга).
Поэтому, нам нужно отключить их поочередно в соответствующем разделе настроек *"Эффекты"*.

.. image:: https://raw.githubusercontent.com/ventureoo/ARU/main/archive/DE-Optimizations/images/image6.png

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

-----------
Результат
-----------

.. image:: https://raw.githubusercontent.com/ventureoo/ARU/main/archive/DE-Optimizations/images/image3.png
