Я использую Ubuntu 24.04 с VAAPI для оборудования видео декодирования в своих браузерах. Чтобы включить аппаратное декодирование в Google Chrome и Microsoft Edge на Linux, вам необходимо добавить параметры командной строки («-enable-features = vaapivideodecoder, vaapivideoencoder, vaapivideodecodelinuxgl). Для Chromium и Brave, это выпускает, на самом деле, на самом деле. строки, начиная с «EXEC» в их файлах .Desktop
Это достаточно просто, но проблема в том, что всякий раз, когда есть обновление программного обеспечения для любого из этих браузеров, его файл .desktop перезаписан, поэтому вы должны сделать это снова. Вы можете поместить обновленные файлы рабочего стола в ~/.local/share/приложения, где они переопределяют оригиналы и не перезаписываются, но время от времени обновление меняет путь на значок браузера, чтобы кнопка браузера исчезала! После того, как я сыт по горло этим, я решил написать этот сценарий.
Запустите его, и это гарантирует, что любые строки EXEC в указанных файлах настольных компьютеров, которые не заканчиваются в необходимых параметрах, будут добавлены их, любые, которые все еще имеют их, останутся в покое. Обновленный файл будет скопирован в ~/.local/share/приложения, где он будет переопределять первоначально установленный файл .desktop. Поскольку последующие обновления не будут затронуты, параметры VAAPI будут пережить их, но иногда пути значков и т. Д. Изменяются в обновлениях, что потребует повторного запуска этого сценария.
Массивы начинчатыхфонов должны иметь соответствующие параметры командной строки, которые применяются ко всем файлам настольных компьютеров, перечисленных в этом массиве. Массивы должны содержать полные пути всех файлов рабочего стола браузера, которые вы хотите иметь в состоянии сохранить соответствующие параметры командной строки. Мои:-
Для браузеров на основе хрома> = версия 131
declare -a desktopFiles=( " /var/lib/snapd/desktop/applications/brave_brave.desktop "
" /var/lib/snapd/desktop/applications/chromium_chromium.desktop "
" /usr/share/applications/microsoft-edge.desktop "
" /usr/share/applications/google-chrome.desktop " )
params= " --enable-features=AcceleratedVideoDecodeLinuxZeroCopyGL,AcceleratedVideoDecodeLinuxGL,AcceleratedVideoEncoder "Для браузеров на основе хрома <версия 131
declare -a desktopFiles2=() # None now, all browsers upgraded to version 131
params2= " --enable-features=VaapiVideoDecoder,VaapiVideoEncoder,VaapiVideoDecodeLinuxGL "Переменные Params устанавливаются на параметры, которые вы хотите убедиться, что добавляются в строки EXEC в файлах, перечисленных в соответствующем массиве. Функция ProcessDeskTopFiles вызывается с необходимыми параметрами строки EXEC в качестве первого аргумента и массива пути файлов рабочего стола в качестве второго, как ниже:-
processDeskTopFiles $params " ${desktopFiles[@]} "
processDeskTopFiles $params2 " ${desktopFiles2[@]} " Запустите скрипт, используя свою учетную запись пользователя:-
./update-desktop-files.shВот и все!