Saya menggunakan Ubuntu 24.04 dengan Vaapi untuk decoding video perangkat keras di browser saya. To enable hardware decoding in Google Chrome and Microsoft Edge on Linux, you need to add command line parameters ("--enable-features=VaapiVideoDecoder,VaapiVideoEncoder,VaapiVideoDecodeLinuxGL). For Chromium and Brave, it's --enable-features=AcceleratedVideoDecodeLinuxGL. To make these permanent, you can put them at the end of baris dimulai dengan "exec" di file .desktop mereka
Ini cukup mudah, tetapi masalahnya adalah, setiap kali ada pembaruan perangkat lunak untuk salah satu browser ini, file .desktop -nya ditimpa sehingga Anda harus melakukannya lagi. Anda dapat meletakkan file desktop yang diperbarui di ~/.local/share/aplikasi di mana mereka mengesampingkan aslinya dan tidak ditimpa, tetapi kadang -kadang pembaruan mengubah jalur ke ikon browser sehingga tombol browser menghilang! Setelah muak dengan ini, saya memutuskan untuk menulis skrip ini.
Jalankan dan itu akan memastikan bahwa setiap baris eksekutif dalam file desktop yang terdaftar yang tidak berakhir pada parameter yang diperlukan akan membuatnya ditambahkan, apa pun yang masih memilikinya akan dibiarkan sendiri. File yang diperbarui akan disalin ke ~/.local/share/aplikasi di mana ia akan mengesampingkan file .desktop yang semula diinstal. Karena tidak akan terpengaruh oleh pembaruan selanjutnya, parameter VAAPI akan bertahan, tetapi kadang-kadang jalur ikon dll diubah dalam pembaruan, yang akan mengharuskan skrip ini untuk menjalankan kembali untuk memperhitungkannya.
Array desktopfiles harus memiliki parameter baris perintah yang sesuai yang diterapkan pada semua file desktop yang tercantum dalam array itu. Array harus berisi jalur lengkap dari semua file desktop browser yang Anda inginkan untuk menjaga parameter baris perintah yang sesuai tetap. Punyaku adalah:-
Untuk browser berdasarkan Chromium> = Versi 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 "Untuk browser berdasarkan Chromium <Versi 131
declare -a desktopFiles2=() # None now, all browsers upgraded to version 131
params2= " --enable-features=VaapiVideoDecoder,VaapiVideoEncoder,VaapiVideoDecodeLinuxGL "Variabel params diatur ke parameter yang ingin Anda pastikan ditambahkan ke baris exec di file yang tercantum dalam array yang sesuai. Fungsi ProcessDesKtopFiles dipanggil dengan parameter garis EXEC yang diperlukan sebagai argumen pertama dan array jalur file desktop sebagai yang kedua, seperti di bawah ini:-
processDeskTopFiles $params " ${desktopFiles[@]} "
processDeskTopFiles $params2 " ${desktopFiles2[@]} " Jalankan skrip menggunakan akun pengguna Anda:-
./update-desktop-files.shItu saja!