Подытожу свою возню с picom. У меня он хорошо устраняет разрывы при прокрутке, если также сменить видеодрайвер с nouveau на nvidia. С nouveau наблюдаю либо постоянную загрузку процессора до 60% процессом kworker, либо, если отключить vsync и использовать refresh-rate и sw-opti, прокрутку с сильным дребезгом.
Так что советую
Код:
sudo apt install nvidia-driver-510
и перезагрузиться. Скрипт из пакета astra-nvidia для этого лучше не использовать -- он устарел.
Описание picom и инструкция:
https://www.linuxfordevices.com/tutorials/linux/picom
Установить зависимости:
Код:
sudo apt install cmake meson git pkg-config asciidoc libxext-dev libxcb1-dev libxcb-damage0-dev libxcb-xfixes0-dev libxcb-shape0-dev libxcb-render-util0-dev libxcb-render0-dev libxcb-randr0-dev libxcb-composite0-dev libxcb-image0-dev libxcb-present-dev libxcb-xinerama0-dev libxcb-glx0-dev libpixman-1-dev libdbus-1-dev libconfig-dev libgl1-mesa-dev libpcre3-dev libevdev-dev uthash-dev libev-dev libx11-xcb-dev
Вместо libpcre2-dev, как в инструкции, устанавливается libpcre3-dev, т.к. picom использует более старую библиотеку, а она, как ни странно, в пакете с большим номером.
Получить исходники:
Код:
git clone --recursive https://github.com/yshui/picom <dir>
Сборка и установка:
Код:
cd <dir>
meson -Dwith_docs=true --buildtype=release . build
ninja -C build
sudo ninja -C build install
Meson жалуется, что не нашёл пакет libev, хотя библиотеки присутствуют в /usr/lib/x86_64-linux-gnu. Но это не мешает сборке, т.к., по-видимому, используется найденная библиотека ev (см. src/meson.build).
Исполняемый файл будет лежать по адресу /usr/local/bin/picom. Прописать его в автозагрузку можно без параметров -- их удобнее держать в файле конфигурации. Этот файл отслеживается запущенным picom, так что если там менять настройки, то при сохранении файла они подхватываются на лету.
Файл конфигурации (~/.config/picom/picom.conf):
Код:
shadow = false
fading = false
corner-radius = 0
blur-background = false
blur-background-frame = false
backend = "glx"
glx-no-stencil = true
glx-no-rebind-pixmap = true
use-damage = true
xrender-sync-fence = true
unredir-if-possible = true
use-ewmh-active-win = true
vsync = true
log-level = "error"
log-file = "/home/user/.config/picom/picom.log"
Мне кроме устранения разрывов никакие эффекты не нужны, поэтому постарался всё отключить, чтобы снизить нагрузку. В настройках оформления fly отключил композит-менеджер. Видимо, он теперь встроенный, но какой-то беспонтовый -- по крайней мере что касается вертикальной синхронизации. Что включи её там, что выключи -- никакого эффекта нет.