ওয়েল, আপনি কোনও আইকন পরিবর্তন করার চেষ্টা করার সময় কিছু ডিইগুলি এটি দেখায় তবে এটি নিজেই করা বেশ সহজ। সমস্ত আইকন সন্ধান করুন, কিছু ডিরেক্টরিতে তাদের লিঙ্ক তৈরি করুন এবং ডিরেক্টরিটি ব্রাউজ করুন। বিভিন্ন রেজোলিউশনের আইকনগুলির একই নাম থাকবে, কী কী পরিবর্তন হবে। উদাহরণ স্বরূপ:
$ 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