ठीक है, कुछ डीईएस यह दिखाते हैं जब आप किसी चीज़ के आइकन को बदलने की कोशिश करते हैं, लेकिन इसे स्वयं करना काफी आसान है। बस सभी आइकन ढूंढें, उन्हें किसी निर्देशिका में लिंक करें और निर्देशिका ब्राउज़ करें। विभिन्न प्रस्तावों के आइकन का एक ही नाम होगा, क्या परिवर्तन पथ है। उदाहरण के लिए:
$ find /usr/share/icons/ -name '*emacs.*'
/usr/share/icons/hicolor/16x16/apps/emacs.png
/usr/share/icons/hicolor/48x48/apps/emacs.png
/usr/share/icons/hicolor/scalable/apps/emacs.svg
/usr/share/icons/hicolor/128x128/apps/emacs.png
/usr/share/icons/hicolor/32x32/apps/emacs.png
/usr/share/icons/hicolor/24x24/apps/emacs.png
/usr/share/icons/Mint-X/apps/96/emacs.svg
/usr/share/icons/Mint-X/apps/16/emacs.png
/usr/share/icons/Mint-X/apps/24/emacs.png
/usr/share/icons/Mint-X/apps/48/emacs.png
/usr/share/icons/Mint-X/apps/32/emacs.png
/usr/share/icons/Mint-X/apps/22/emacs.png
जैसा कि आप ऊपर देख सकते हैं, सामान्य प्रारूप है /ParentDir/ThemeName/CLass/Resolution/IconName
। इसलिए, चूंकि आइकन का नाम समान है, इसलिए हम उसी नाम के किसी भी मौजूदा लिंक को अधिलेखित किए गए प्रत्येक लिंक को बनाकर आसानी से डुप्लिकेट से बच सकते हैं। हालाँकि, हम अलग-अलग थीम के आइकन्स को अलग-अलग करना चाहते हैं, ताकि थोड़ा और स्क्रिप्टिंग की आवश्यकता हो:
#!/usr/bin/env bash
## Create the target directory
mkdir -p ~/foo
## Iterate over all files/dirs in the target locations
for i in ~/.icons/* /usr/share/icons/* /usr/share/pixmaps/*; do
## find all icon files in this directory. If the current $i
## is not a directory, find will just print its path directly.
find "$i" -name '*xpm' -o -name '*.svg' -o -name '*png' |
## Iterate over find's results
while read ico; do
## Make the link. ${var##*/} will print the
## basename of $var, without the path. Here, I use
## it both to get the theme name (${i##*/}) and the
## icon's name (${ico##*/}).
ln -sf "$ico" "${i##*/}"_"${ico##*/}"
done
done
ऊपर की स्क्रिप्ट निर्देशिका बनाएगी ~/foo
जिसमें आपकी प्रत्येक अद्वितीय आइकन फ़ाइलों के लिंक होंगे। एक ही नाम से मौजूदा फ़ाइलों को अधिलेखित करने के लिए इसे बताने का -f
विकल्प ln
और, क्योंकि हम लिंक के नाम में थीम नाम का उपयोग कर रहे हैं, कोई डुप्लिकेट नहीं होना चाहिए। उदाहरण के लिए, emacs.png
ऊपर दिखाए गए आइकन को देखते हुए , यह बनाएगा:
hicolor_emacs.png -> /usr/share/icons/hicolor/48x48/apps/emacs.png
Mint-X_emacs.png -> /usr/share/icons/Mint-X/apps/22/emacs.png
अब आप देख सकते हैं, देख सकते हैं ~/foo
और देख सकते हैं :
फिर, स्रोत पैकेज पाने के लिए, आप चला सकते हैं:
for i in ~/foo/*; do dpkg -S $(readlink -f "$i"); done