เคล็ดลับหลักคือการค้นหาอย่างถูกต้องในตำแหน่งที่ไอคอนจริง
เพื่อที่จะพิจารณาว่ามาวิเคราะห์ไอคอน HTML กันดีกว่า ระเบียบการตั้งชื่อสำหรับไอคอนนั้นเหมือนกับ MIME-type เท่านั้น/จะถูกแทนที่ด้วย-และไม่อนุญาตให้ใช้ตัวพิมพ์ใหญ่ เช่นประเภท MIME พูดtext/x-changelogจะมีไอคอนชื่อtext-x-changelog.svg(หรือpng) ไมม์ชนิดสำหรับ HTML text/htmlคือ ดังนั้นไอคอนจะเป็นtext-html.*ถ้าเราเรียกใช้คำสั่ง
find /usr/share/icons/ -type f | grep 'text-html\.'
เราจะได้สถานที่หลายแห่งที่มีไอคอนเหล่านี้:
/usr/share/icons/Humanity/mimes/
/usr/share/icons/gnome/NNxNN/mimetypes/
/usr/share/icons/HighContrast/scalable/mimetypes/
หากเราเยี่ยมชมแต่ละรายการด้วย Nautilus เราจะเห็นHumanity/โฟลเดอร์นั้นมีไอคอนปัจจุบันของเราgnome/- บางอันที่เก่ากว่า HighContrast/ไม่สนใจเรา ดังนั้นในการเปลี่ยนไอคอนเราควรเปลี่ยนไอคอนที่อยู่ในHumanity/โฟลเดอร์
นอกจากนี้โปรดสังเกตว่าtext-html.svgไอคอนที่สามารถปรับขนาดได้และควรวางไว้ในscalableโฟลเดอร์ย่อย (ที่ควรเป็นแบบลอจิคัล) จะถูกวางลงในโฟลเดอร์ที่มีขนาดแตกต่างกันแทนในลักษณะเดียวกับไฟล์ PNG แรสเตอร์
หลังจากแทนที่ไอคอน (ในโฟลเดอร์ย่อยทั้งหมดตามขนาด) ด้วยแคชไอคอนที่ต้องการควรได้รับการอัปเดต:
sudo gtk-update-icon-cache /usr/share/icons/Humanity
แค่นั้นแหละ.
มีวิธีอื่นในการกำหนดลำดับความสำคัญของชุดไอคอน - เพื่อตรวจสอบindex.themeไฟล์ของพวกเขา หากเรามองเข้าไปข้างใน/usr/share/icons/Humanity/index.themeเราจะเห็น:
Inherits=gnome,hicolor
ซึ่งหมายความว่าไอคอนจากgnomeและโฟลเดอร์จะมีความสำคัญน้อยกว่าคนจากhicolor Humanityนี่คือคำอธิบายที่นี่
น่าแปลกที่ Nautilus ไม่เชื่อฟังกฎเหล่านี้ เมื่อฉันเพิ่มใหม่ชนิด MIME ผมพยายามวางไอคอนของมันเข้าไป/usr/share/icons/gnome/, /usr/share/icons/hicolor, ~/.local/share/icons/hicolor, ปรับปรุงฐานข้อมูลไอคอนบนแต่ละขั้นตอน - ทั้งหมดในไร้สาระ ไอคอนเหล่านี้แสดงอย่างถูกต้องในassogiateแท็บแรก แต่ไม่มีใน Nautilus แต่เมื่อฉันวางมันลงในHumanityโฟลเดอร์และอัปเดตฐานข้อมูลไอคอนมันจะปรากฏขึ้นพร้อมกัน
NBทั้งหมดนี้นำไปใช้กับชุดไอคอนเริ่มต้น หากคุณใช้ชุดไอคอนแบบกำหนดเองคุณควรตรวจสอบว่ามีไอคอนตัวจริงอยู่ที่ใดและเพิ่ม / เปลี่ยนไอคอนที่นั่นแทน กฎการสืบทอดเหล่านี้อาจเปลี่ยนแปลงได้เช่นกัน จากนั้นคุณควรค้นหาโฟลเดอร์ใหม่ที่จัดเก็บไอคอนจริง (หากไม่ใช่Humanityอีกต่อไป) ตามที่อธิบายไว้ก่อนหน้า