ฉันใช้ Ubuntu 24.04 กับ VAAPI สำหรับการถอดรหัสวิดีโอฮาร์ดแวร์บนเบราว์เซอร์ของฉัน ในการเปิดใช้งานการถอดรหัสฮาร์ดแวร์ใน Google Chrome และ Microsoft Edge บน Linux คุณจะต้องเพิ่มพารามิเตอร์บรรทัดคำสั่ง ("-คุณสมบัติที่เหมาะสม = vaapivideodecoder, vaapivideoencoder, vaapivideodelinuxgl. บรรทัดเริ่มต้นด้วย "exec" ในไฟล์. desktop ของพวกเขา
สิ่งนี้ตรงไปตรงมาเพียงพอ แต่ปัญหาคือเมื่อใดก็ตามที่มีการอัปเดตซอฟต์แวร์สำหรับเบราว์เซอร์เหล่านี้ไฟล์. desktop จะถูกเขียนทับดังนั้นคุณต้องทำอีกครั้ง คุณสามารถใส่ไฟล์เดสก์ท็อปที่อัปเดตได้ที่ ~/.local/แชร์/แอปพลิเคชันที่พวกเขาแทนที่ต้นฉบับและไม่ได้เขียนทับ แต่ทุกครั้งที่อัปเดตเปลี่ยนเส้นทางไปยังไอคอนเบราว์เซอร์เพื่อให้ปุ่มเบราว์เซอร์หายไป! หลังจากเบื่อหน่ายกับสิ่งนี้ฉันตัดสินใจที่จะเขียนสคริปต์นี้
เรียกใช้และจะทำให้มั่นใจได้ว่าบรรทัด EXEC ใด ๆ ในไฟล์เดสก์ท็อปที่ระบุไว้ซึ่งไม่ได้สิ้นสุดในพารามิเตอร์ที่ต้องการจะมีพวกเขาต่อท้ายสิ่งใดก็ตามที่ยังคงมีพวกเขาจะถูกทิ้งไว้ตามลำพัง ไฟล์ที่อัปเดตจะถูกคัดลอกไปยัง ~/.local/Share/Applications ซึ่งจะแทนที่ไฟล์. desktop ที่ติดตั้งเดิม เนื่องจากจะไม่ได้รับผลกระทบจากการอัปเดตที่ตามมาพารามิเตอร์ VAAPI จะอยู่รอดได้ แต่บางครั้งเส้นทางไอคอน ฯลฯ จะเปลี่ยนไปในการอัปเดตซึ่งจะต้องใช้สคริปต์นี้อีกครั้งเพื่อพิจารณาสิ่งนั้น
อาร์เรย์เดสก์ท็อปฟิลควรมีพารามิเตอร์บรรทัดคำสั่งที่สอดคล้องกันซึ่งใช้กับไฟล์เดสก์ท็อปทั้งหมดที่แสดงในอาร์เรย์นั้น อาร์เรย์ควรมีเส้นทางเต็มรูปแบบของไฟล์เดสก์ท็อปเบราว์เซอร์ทั้งหมดที่คุณต้องการให้สามารถเก็บพารามิเตอร์บรรทัดคำสั่งที่สอดคล้องกันได้ ของฉันคือ:-
สำหรับเบราว์เซอร์ตาม Chromium> = เวอร์ชัน 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 "ตัวแปรพารามิเตอร์ถูกตั้งค่าเป็นพารามิเตอร์ที่คุณต้องการให้แน่ใจว่าจะถูกผนวกเข้ากับบรรทัด EXEC ในไฟล์ที่แสดงในอาร์เรย์ที่เกี่ยวข้อง ฟังก์ชั่น ProcessDeskTopFiles ถูกเรียกด้วยพารามิเตอร์ EXEC Line ที่ต้องการเป็นอาร์กิวเมนต์แรกและอาร์เรย์พา ธ ไฟล์เดสก์ท็อปเป็นที่สองดังนี้ด้านล่าง:-
processDeskTopFiles $params " ${desktopFiles[@]} "
processDeskTopFiles $params2 " ${desktopFiles2[@]} " เรียกใช้สคริปต์โดยใช้บัญชีผู้ใช้ของคุณ:-
./update-desktop-files.shแค่ไหน!