Thủ thuật chính là tìm ra chính xác vị trí của các biểu tượng thực tế.
Để xác định rằng hãy phân tích các biểu tượng HTML. Quy ước đặt tên cho các biểu tượng giống như kiểu MIME, chỉ /
được thay thế bằng -
và không được phép viết hoa. Tức là loại MIME, giả sử, text/x-changelog
sẽ có biểu tượng có tên text-x-changelog.svg
(hoặc png
). Loại MIME cho HTML là text/html
. Vì vậy, biểu tượng của nó sẽ là text-html.*
Nếu chúng ta chạy lệnh
find /usr/share/icons/ -type f | grep 'text-html\.'
chúng ta sẽ nhận được một vài nơi đặt các biểu tượng này:
/usr/share/icons/Humanity/mimes/
/usr/share/icons/gnome/NNxNN/mimetypes/
/usr/share/icons/HighContrast/scalable/mimetypes/
Nếu chúng tôi truy cập từng người trong số họ bằng Nautilus, chúng tôi sẽ thấy, Humanity/
thư mục đó chứa các biểu tượng hiện tại của chúng tôi gnome/
- một số biểu tượng cũ hơn. HighContrast/
không quan tâm đến chúng tôi. Vì vậy, để thay đổi một số biểu tượng, chúng ta nên thay thế các biểu tượng nằm trong Humanity/
thư mục.
Cũng lưu ý rằng text-html.svg
các biểu tượng có thể mở rộng và nên được đặt vào scalable
thư mục con (cần phải logic) được đặt vào các thư mục cho các kích thước khác nhau, giống như các tệp PNG raster.
Sau khi thay thế các biểu tượng (trong tất cả các thư mục con theo kích thước của chúng) bằng bộ đệm biểu tượng mong muốn sẽ được cập nhật:
sudo gtk-update-icon-cache /usr/share/icons/Humanity
Đó là nó.
Có một cách khác để xác định mức độ ưu tiên của các sơ đồ biểu tượng - để kiểm tra các index.theme
tệp của chúng . Nếu chúng ta nhìn vào bên trong /usr/share/icons/Humanity/index.theme
, chúng ta sẽ thấy:
Inherits=gnome,hicolor
Điều này có nghĩa là các biểu tượng từ gnome
và hicolor
thư mục sẽ có ít quyền ưu tiên hơn các biểu tượng từ đó Humanity
. Điều này được giải thích ở đây .
Thật kỳ lạ, Nautilus không tuân theo các quy tắc thừa kế này. Khi tôi thêm mới MIME-type, tôi đã cố gắng đặt các biểu tượng của nó vào /usr/share/icons/gnome/
, /usr/share/icons/hicolor
, ~/.local/share/icons/hicolor
, cơ sở dữ liệu cập nhật biểu tượng trên mỗi bước - tất cả trong vô vọng. Các biểu tượng này đã được hiển thị đúng trong assogiate
tab đầu tiên, nhưng không bao giờ trong Nautilus. Nhưng khi tôi đặt chúng vào Humanity
thư mục và cơ sở dữ liệu biểu tượng được cập nhật, chúng xuất hiện ngay lập tức.
NB Tất cả điều này áp dụng cho chủ đề biểu tượng mặc định. Nếu bạn sử dụng một số chủ đề biểu tượng tùy chỉnh, bạn nên kiểm tra vị trí của các biểu tượng thực tế và thay thế / thêm biểu tượng ở đó. Ngoài ra trong các bản phân phối mới hơn, các quy tắc thừa kế có thể thay đổi. Sau đó, bạn nên xác định vị trí thư mục mới lưu trữ các biểu tượng thực tế (nếu không Humanity
còn nữa) như đã giải thích trước đây.