Eu uso o Ubuntu 24.04 com o VAAPI para decodificar vídeos de hardware nos meus navegadores. Para ativar o decodificação de hardware no Google Chrome e Microsoft Edge no Linux, você precisa adicionar parâmetros da linha de comando ("--enable-features = Vaapivideodecoder, VaapivideoEncoder, Vaapivideodecodeluxuxg). "Exec" em seus arquivos .Desktop
Isso é direto o suficiente, mas o problema é que, sempre que há uma atualização de software para qualquer um desses navegadores, seu arquivo .desktop é substituído, então você precisa fazê -lo novamente. Você pode colocar os arquivos de desktop atualizados em ~/.local/share/aplicativos onde eles substituem os originais e não são substituídos, mas de vez em quando uma atualização altera o caminho para o ícone do navegador para que o botão do navegador desapareça! Depois de me cansar disso, decidi escrever este script.
Execute -o e garantirá que quaisquer linhas executivas nos arquivos de desktop listados que não terminem nos parâmetros necessários os anexem, qualquer que ainda os tenha que será deixado sozinho. O arquivo atualizado será copiado para ~/.local/share/aplicativos, onde substituirá o arquivo .desktop originalmente instalado. Como não será afetado pelas atualizações subsequentes, os parâmetros VAAPI sobreviverão a eles, mas às vezes os caminhos dos ícones etc são alterados em atualizações, o que exigiria que esse script fosse reencontrado para levar em consideração isso.
As matrizes do DesktopFiles devem ter parâmetros de linha de comando correspondentes aplicados a todos os arquivos de desktop listados nessa matriz. As matrizes devem conter os caminhos completos de todos os arquivos da área de trabalho do navegador que você deseja manter os parâmetros da linha de comando correspondentes. Os meus são:-
Para navegadores baseados no cromo> = versão 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 baseados no cromo <versão 131
declare -a desktopFiles2=() # None now, all browsers upgraded to version 131
params2= " --enable-features=VaapiVideoDecoder,VaapiVideoEncoder,VaapiVideoDecodeLinuxGL "As variáveis dos parâmetros são definidas para os parâmetros que você deseja garantir que sejam anexados às linhas EXEC nos arquivos listados na matriz correspondente. A função ProcessDeskTopfiles é chamada com os parâmetros de linha Exec necessários como o primeiro argumento e o caminho do caminho dos arquivos da área de trabalho como o segundo, como abaixo:-
processDeskTopFiles $params " ${desktopFiles[@]} "
processDeskTopFiles $params2 " ${desktopFiles2[@]} " Execute o script usando sua conta de usuário:-
./update-desktop-files.shÉ isso!