Ich benutze Ubuntu 24.04 mit VAAPI für Hardware -Video -Dekodierung auf meinen Browsern. Um die Hardware-Dekodierung in Google Chrome und Microsoft Edge auf Linux zu ermöglichen, müssen Sie Befehlszeilenparameter hinzufügen ("-Entzündungen = Vaapivideodecoder, Vaapivideoencoder, Vaapividedekodelinuxgl). Für Chromium und Brave, IT-IT-IT-IT-Mischung, markieren Sie das Makel. Zeilen beginnen mit "Exec" in ihren .Desktop -Dateien
Dies ist unkompliziert genug, aber das Problem ist, dass eine dieser Browser eine Software -Update vorhanden ist. Die .Desktop -Datei ist überschrieben, sodass Sie es erneut tun müssen. Sie können die aktualisierten Desktop -Dateien auf ~/.local/Share/Anwendungen einstellen, wo sie die Originale überschreiben und nicht überschrieben werden, aber hin und wieder ändert ein Update den Pfad zum Browser -Symbol, sodass die Browser -Taste verschwindet! Nachdem ich das satt hatte, beschloss ich, dieses Skript zu schreiben.
Führen Sie es aus und es wird sicherstellen, dass alle EXEC -Zeilen in den aufgelisteten Desktop -Dateien, die nicht in den erforderlichen Parametern enden, angehängt werden. Alle, die sie noch haben, werden in Ruhe gelassen. Die aktualisierte Datei wird in ~/.Local/Share/Anwendungen kopiert, wo sie die ursprünglich installierte .desktop -Datei überschreibt. Da es von nachfolgenden Aktualisierungen nicht beeinflusst wird, überleben die VAAPI-Parameter sie, aber manchmal werden Icon-Pfade usw. in Aktualisierungen geändert, wodurch dieses Skript erneut ausgeführt wird, um dies zu berücksichtigen.
Die Desktopfiles -Arrays sollten entsprechende Befehlszeilenparameter verfügen, die auf alle in diesem Array aufgeführten Desktop -Dateien angewendet werden. Die Arrays sollten die vollständigen Pfade aller Browser -Desktop -Dateien enthalten, die die entsprechenden Befehlszeilenparameter einhalten können. Meins sind:-
Für Browser basierend auf Chromium> = Version 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 "Für Browser basierend auf Chromium <Version 131
declare -a desktopFiles2=() # None now, all browsers upgraded to version 131
params2= " --enable-features=VaapiVideoDecoder,VaapiVideoEncoder,VaapiVideoDecodeLinuxGL "Die Params -Variablen werden auf die Parameter eingestellt, die Sie sicherstellen möchten, dass sie in den im entsprechenden Array aufgeführten Dateien an die EXEC -Zeilen angehängt werden. Die Funktion "ProcessDesktOPFiles" wird mit den erforderlichen EXEC-Zeilenparametern als erstes Argument und das Desktop-Dateien-Pfad-Array als zweites aufgerufen, wie unten:-
processDeskTopFiles $params " ${desktopFiles[@]} "
processDeskTopFiles $params2 " ${desktopFiles2[@]} " Führen Sie das Skript mit Ihrem Benutzerkonto aus:-
./update-desktop-files.shDas war's!