जवाबों:
नीचे दी गई पाइथन लिपि एक डायरेक्टरी के अंदर सभी फोल्डर के आइकन को बदल देगी (पुनरावर्ती रूप से) फोल्डर के अंदर पहले पाए गए वैध इमेज फाइल में।
#!/usr/bin/env python3
import subprocess
import os
import sys
# --- set the list of valid extensions below (lowercase)
# --- use quotes, *don't* include the dot!
ext = ["jpg", "jpeg", "png", "gif","icns", "ico"]
# ---
dr = sys.argv[1]
for root, dirs, files in os.walk(dr):
for directory in dirs:
folder = os.path.join(root, directory)
try:
first = min(p for p in os.listdir(folder)
if p.split(".")[-1].lower() in ext)
except ValueError:
pass
else:
subprocess.Popen([
"gvfs-set-attribute", "-t", "string",
os.path.abspath(folder), "metadata::custom-icon",
"file://"+os.path.abspath(os.path.join(folder, first))
])
change_icon.py
इसे एक तर्क के रूप में लक्षित निर्देशिका के साथ चलाएँ:
python3 /path/to/change_icon.py <targeted_directory>
बस!
... इसे नॉटिलस में राइट-क्लिक का विकल्प बनाना है:
स्क्रिप्ट फिर थोड़ी अलग है:
#!/usr/bin/env python3
import subprocess
import os
# --- set the list of valid extensions below (lowercase)
# --- use quotes, *don't* include the dot!
ext = ["jpg", "jpeg", "png", "gif", "icns", "ico"]
# ---
# retrieve the path of the targeted folder
current = os.getenv("NAUTILUS_SCRIPT_CURRENT_URI").replace("file://", "").replace("%20", " ")
dr = os.path.realpath(current)
for root, dirs, files in os.walk(dr):
for directory in dirs:
folder = os.path.join(root, directory)
try:
first = min(p for p in os.listdir(folder)
if p.split(".")[-1].lower() in ext)
except ValueError:
pass
else:
subprocess.Popen([
"gvfs-set-attribute", "-t", "string",
os.path.abspath(folder), "metadata::custom-icon",
"file://"+os.path.abspath(os.path.join(folder, first))
])
बनाएँ, अगर यह अभी तक मौजूद नहीं है, तो निर्देशिका
~/.local/share/nautilus/scripts
एक खाली फ़ाइल में स्क्रिप्ट की प्रतिलिपि बनाएँ, इसे (कोई एक्सटेंशन नहीं!) के ~/.local/share/nautilus/scripts
रूप में सहेजें set_foldericons
और इसे निष्पादन योग्य बनाएं ।
os.path.realpath()
उपयोग किया जाता है, यह भी काम करता है यदि लक्षित फ़ोल्डर एक लिंक है।यदि, किसी कारण से आप किसी फ़ोल्डर के अंदर के आइकन को अपने डिफ़ॉल्ट आइकन (ओं) पर रीसेट करना चाहते हैं, तो नीचे दी गई स्क्रिप्ट का उपयोग करें। सीधे शब्दों में:
reset_icons.py
इसे कमांड द्वारा चलाएं:
python3 /path/to/reset_icons.py <target_directory>
#!/usr/bin/env python3
import subprocess
import os
import sys
dr = sys.argv[1]
for root, dirs, files in os.walk(dr):
for directory in dirs:
folder = os.path.join(root, directory)
subprocess.Popen([
"gvfs-set-attribute", os.path.abspath(folder),
"-t", "unset", "metadata::custom-icon"
])
.folder.png
हर फ़ोल्डर में। यह एक से अधिक छवि वाले निर्देशिकाओं के लिए वास्तव में मददगार है। मैं इस स्क्रिप्ट का उपयोग किया गया है और है कि एक सुधार है कि मैं उस में देखने के लिए अच्छा लगेगा है askubuntu.com/questions/900785/...