Làm cách nào để lập trình thay đổi biểu tượng của tệp?


16

Nếu tôi chọn một biểu tượng trong Nautilus và chọn Thuộc tính, tôi có thể nhấp vào biểu tượng được trình bày ở đó. Điều này cho tôi một hộp thoại chọn tệp để chọn một hình ảnh biểu tượng mới.

Tôi muốn thực hiện điều này thông qua một tập lệnh nào đó để tôi có thể gán cùng một biểu tượng cho nhiều tệp cùng một lúc. Hoặc lấy danh sách các biểu tượng và danh sách các tệp và gán chúng cho nhau.

Có một số cách tôi có thể thực hiện điều này? Một cái gì đó trong bash hoặc Python sẽ rất tuyệt, nhưng tôi sẽ lấy những gì tôi có thể nhận được.

Xin lưu ý:

  • Tôi không hỏi làm thế nào để thay đổi biểu tượng cho một loại tập tin.
  • Tôi không hỏi làm thế nào để thay đổi một biểu tượng trên launcher.

nhập mô tả hình ảnh ở đây

Câu trả lời:


25


Để thay đổi các biểu tượng đó từ dòng lệnh, bạn có thể sử dụng lệnh sau:

gvfs-set-attribute -t string /path/to/your/file metadata::custom-icon file:///path/to/your/icon.png

Bạn có thể sử dụng lệnh này trong một tập lệnh bash theo nhu cầu của bạn.

Nếu bạn chạy lệnh và biểu tượng không thay đổi ngay lập tức, bạn có thể cài đặt gói xautomation với:

sudo apt-get install xautomation

Và cuối cùng, sử dụng lệnh "xte" để "sendkey" trong bash như "F5" để làm mới ..
Một ví dụ nhỏ sẽ là:

#!/bin/bash
gvfs-set-attribute -t string /home/hermes/testicon metadata::custom-icon file:///home/hermes/Desktop/applet_blank.png
sleep 3
xte "key F5"  

Tôi hy vọng điều này hữu ích cho bạn.


3

Câu trả lời của Roman có vẻ lý tưởng. Có một cách khác ít thanh lịch hơn. Tôi không chắc chắn các biểu tượng sống ở đâu trong phần còn lại của hệ thống, nhưng các biểu tượng trên Bàn làm việc của bạn chỉ là các tệp văn bản đơn giản trong $ HOME / Desktop. Họ thường (nhưng không phải) có phần mở rộng của .desktop. Một trong các trường trong các tệp này là Icon = .... Bạn có thể sử dụng chương trình để thay đổi bất cứ trường nào được đặt thành giá trị bạn chọn. (Bạn có thể phải làm mới sau khi làm điều này đúng như Roman gợi ý.)

Khi tôi muốn sử dụng một biểu tượng cho một thứ khác hoặc trên một hệ thống khác, đôi khi tôi tìm trong các tệp .desktop này để tìm hiểu xem biểu tượng được sử dụng được đặt tên là gì.

Thông số kỹ thuật cho các tệp này trực tiếp tại: http://www.freedesktop.org/wiki/Specutions/desktop-entry-spec

Joe

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.