Utilizo Ubuntu 24.04 con Vaapi para la decodificación de video de hardware en mis navegadores. Para habilitar la decodificación de hardware en Google Chrome y Microsoft Edge en Linux, debe agregar parámetros de línea de comandos ("--enable-feature = vaapivideodeDecoder, vaapivideoCoder, vaapivideodeDelinuxgl). Para cromo y valiente, puede hacer que los estén de forma permanente de los finales. Líneas que comienzan con "EXEC" en sus archivos .desktop
Esto es lo suficientemente sencillo, pero el problema es que cada vez que hay una actualización de software para cualquiera de estos navegadores, su archivo .desktop se sobrescribe, por lo que debe hacerlo nuevamente. Puede colocar los archivos de escritorio actualizados en ~/.local/share/aplicaciones donde anulan los originales y no se sobrescriben, pero de vez en cuando una actualización cambia la ruta al icono del navegador para que el botón del navegador desaparezca. Después de hares hares de esto, decidí escribir este guión.
Ejecutarlo y se asegurará de que cualquier línea EXEC en los archivos de escritorio enumerados que no terminen en los parámetros requeridos los tengan agregados, cualquiera que aún los tenga se quede solo. El archivo actualizado se copiará a ~/.local/compartir/aplicaciones donde anulará el archivo .desktop instalado originalmente. Como no se verá afectado por las actualizaciones posteriores, los parámetros VAAPI sobrevivirán, pero a veces las rutas de iconos, etc. se cambian en actualizaciones, lo que requeriría que este script se vuelva a ejecutar para tener en cuenta eso.
Las matrices de escritorio de escritorio deben tener parámetros de línea de comando correspondientes que se aplican a todos los archivos de escritorio enumerados en esa matriz. Las matrices deben contener las rutas completas de todos los archivos de escritorio del navegador que desea poder mantener los parámetros de línea de comandos correspondientes. Los míos son:-
Para navegadores basados en cromo> = versión 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 "Para navegadores basados en Chromium <versión 131
declare -a desktopFiles2=() # None now, all browsers upgraded to version 131
params2= " --enable-features=VaapiVideoDecoder,VaapiVideoEncoder,VaapiVideoDecodeLinuxGL "Las variables de parámetros se establecen en los parámetros que desea garantizar que se adhieran a las líneas EXEC en los archivos enumerados en la matriz correspondiente. La función ProcessDeskTopFiles se llama con los parámetros de línea EXEC requeridos como el primer argumento y la matriz de ruta de archivos de escritorio como la segunda, como se muestra a continuación:--
processDeskTopFiles $params " ${desktopFiles[@]} "
processDeskTopFiles $params2 " ${desktopFiles2[@]} " Ejecute el script usando su cuenta de usuario:-
./update-desktop-files.sh¡Eso es todo!