Google Chrome или Chromium в Arch Linux

2023-03-12T17:10:47+05:00

linux

Внимание: Я не рекомендую пользоваться Гугл Хромом на Арче по нескольким причинам:

  • Возникают мелкие графические артефакты, в определённых местах, пока не знаю с чем это связано (пикча)
  • Возникают проблемы с открытием “Настройка и управление Chrome”, которая совсем не открывается, фиксится сменой раб. столов

Поэтому как замену google-chrome рекомендуется использовать chromium или ungoogled-chromium

image

Необходимо установить шрифты для корректной работы данных браузеров

sudo pacman -S ttf-dejavu noto-fonts noto-fonts-emoji

Устанавливаем на выбор браузер

# AUR пакет Google Chrome
yay -S google-chrome
# Стандартный Chromium
sudo pacman -S chromium

#  Включение Аппаратного Декодирования (Hardware Decode)

Для проверки наличия VA-API

vainfo

При такой ошибке необходим пакет libva-mesa-driver

vaInitialize failed with error code -1 (unknown libva error),exit

Для проверки наличия VDPAU

vdpauinfo

При такой ошибки необходим пакет mesa-vdpau

display: :0 screen: 0 Failed to open VDPAU backend libvdpau_radeonsi.so: cannot open shared object file: No such file or directory Error creating VDPAU device: 1

Скачиваем эти пакеты для AMD

sudo pacman -S libva-mesa-driver mesa-vdpau

Также очень рекомендуется установить расширение enhanced-h264ify чтобы принудительно ставить аппаратный рендер видео в H264 вместо vp8/vp9/AV1 (без него в консоли показывается что аппаратный видеодекодер отключен)

С включёнными флагами описанными ниже удалось заставить google chrome и chromium/ungoogled-chromium работать на аппаратном декодировании

Включаем любое видео в ютубе, жмём F12 - три точки - More tools - Media. Далее жмём на вкладку Media и видим название видоса в списке, жмём на него и видим всю инфу о декодировании, в данном случае работает VDAVideoDecoder

image

#  Необходимые и полезные флаги

Все флаги которые у вас включены в браузер: chrome://version/

Повзаимствованые флаги

  • https://github.com/dreammjow/ChromiumHardening
  • https://github.com/GoogleChrome/chrome-launcher/blob/main/docs/chrome-flags-for-tools.md

Настройка флагов для подобных браузеров идентична, кроме разве что названия конфига

Для Chromium / Ungoogled-Chromium: Вводим параметры конфига по данному пути ~/.config/chromium-flags.conf

Для Google Chrome (НЕ ТЕСТИРОВАЛ): Вводим параметры конфига по данному пути ~/.config/chrome-flags.conf

Для Brave: Вводим параметры конфига по данному пути ~/.config/brave-flags.conf

  1. Описание:
  • WebUIDarkMode - Включает тёмную тему
  • ScrollableTabStrip - (Рекомендуется для Arch Linux) Отключает скролл вкладок
  • DownloadBubble - Новый вид загрузок как в Edge

--enable-features=WebUIDarkMode,ScrollableTabStrip,DownloadBubble

  1. Описание: Принудительная тёмная тема браузера

--force-dark-mode

  1. Описание: Убираем уведомление "Сделать хром браузером по умолчанию"

--no-default-browser-check

  1. Описание: Отключить автоматическое добавление поисковых систем с веб-страниц

--disable-search-engine-collection

  1. Описание: Включает параллельную закачку для ускорение скорости скачивания

--enable-parallel-downloading

  1. Описание: Убирает панель "Список для чтения"

--hide-sidepanel-button

  1. Описание: Убирает в newtab самые посещаемые сайты

--disable-top-sites

  1. Описание: Отключает ненужную иконку профиля

--show-avatar-button=never

  1. Описание: Автоматический отклоняет любые уведомления разрешения браузера

--deny-permission-prompts

  1. Описание: Восстанавливает последнюю сессию

--restore-last-session

  1. Описание: Улучшаем производительность путём включения Hardware Acceleration (Аппаратное ускорение)
--ignore-gpu-blocklist
--enable-gpu-rasterization
--enable-zero-copy
--use-vulkan
  1. Описание: Включаем 144hz, вставляете любую т.к обе команды одинаково действуют и работают

На выбор:

  1. VA-API для xwayland (wayland)

--use-gl=desktop

  1. VA-API для Xorg

--use-gl=egl

  1. Описание: Дополнительно прописываем вот это, чтобы отключить сообщения о ошибках

--disable-gpu-driver-bug-workarounds

UPD (17.03.22): Обнаружил такую проблему при обновленном google-chrome/chromium

Problems Detected
Accelerated video decode/encode has been disabled, either via blocklist, about:flags or the command line.
Disabled Features: video_decode/video_encode

Решение: Вводим в *-flags.conf внутри данной секции

--enable-features=....VaapiVideoEncoder,VaapiVideoDecoder,CanvasOopRasterization..
--disable-features=UseChromeOSDirectVideoDecoder

Проверить на поддержку Hardware Acceleration, введите chrome://gpu

image

UPD (11.06.22): Следующая ошибка при обновлённом chromium'e/chrome

Problems Detected
WebGPU has been disabled via blocklist or the command line.
Disabled Features: webgpu

Это экспериментальная опция, может нарушить работу браузера. Но чуть увеличивает плавность рендера 3D объектов

--enable-unsafe-webgpu

Описание: Браузер будет подхватывать pac прокси от antizapret (не используя расширения)

--proxy-pac-url=https://antizapret.prostovpn.org/proxy.pac

Совет: Raw Draw игнорьте и не включайте, будут проблемы в отображениях шрифтов

#  Решаем проблему медленного скролла мыши Chromium Based браузеров (Исправлено в 109.0.5414.74)

Это не проблема Linux а проблема браузеров на основе electron/chromium об этом упоминается в Arch Wiki + способы решения

Самым простым решением будет использовать расширение SmoothScroll

Есть вариант с использование инструмента imwheel который умеет настраивать ход колеса мыши к любому софту. Однако работает оно с некоторыми раздражающими ПРОБЛЕМАМИ.

Устанавливаем пакет

sudo pacman -S imwheel

Создаём конфиг в $HOME директории и вставляем

nvim .imwheelrc
"^(chromium|google-chrome|brave-browser)$"
	# Фикс scroll
	None, Up, Button4, 2.8
	None, Down, Button5, 2.8
	# Без изменений для zoom'а страниц
	Control_L, Up,   Control_L|Button4
	Control_L, Down, Control_L|Button5

# vim:ts=4:shiftwidth=4:syntax=sh

Для меня нормальное значение скролла будет 2.8, вы же можете играться с этими значениями если вас не устраивает мои

Далее для теста запустим данный инструмент командой

imwheel -b "45" -k

Описание опций:

  • -b "45" - боковые кнопки мыши не будут затрагиваться при запуске этой команды, без этой опции боковые вообще не будут работать
  • -k - перезагружает процесс imwheel

Если видите такой выхлоп в терминале значит инструмент запущен

INFO: imwheel started (pid=6604)

Убить данный процесс командой

pkill imwheel

Для автозапуска imwheel при запуске системы прописываем в автозапуск файла ~/.xprofile (Для DM) или ~/.xinitrc (запуск с TTY)

# Исправление скролла мыши
imwheel -b "45"

#  Установка удалённых расширений

Папка с расширениями находится по такому пути

Chrome: ~/.config/google-chrome/Default/Extensions

Chromium: ~/.config/chromium/Default/Extensions

Для примера я установлю удалённый из магазина расширений chrome, open source торрент поисковик

Скачиваем данное расширение в формате zip

Открываем окно расширения chrome - "Загрузить распакованное расширение". И открываем папку с распакованным расширением, имя которого начинается с ngcldk...

У вас в списке появится данное расширение