Skip to content

Repository files navigation

GT-IconScaler v2.2

أداة احترافية لتوليد وتحويل الأيقونات لجميع المنصات (CLI وGUI) — يدعم العربية والإنجليزية

License: GPL v3 Bash Linux Version

شعار نسخة الطرفية شعار نسخة الواجهة
نص بديل نص بديل

🆕 الجديد في v2.2

  • 🆕 وضع batch غير تفاعلي للـ CLI — 5 علامات تتخطى الواجهة التفاعلية (ممتاز لـ CI/CD والاستدعاء البرمجي).
  • 🆕 --json output — سطر JSON واحد على stdout لتسهيل القراءة من برامج خارجية.
  • 🆕 Hybrid fallback — أي علم batch مفقود يرجع تلقائياً لخطوته التفاعلية، لا يكسر استخدام v2.1.
  • 🆕 تثبيت بأمر واحد عبر curl (انظر أدناه).
  • 🆕 مثبّت ذكي: اختر CLI أو GUI أو كلاهما (تفاعلي أو بـ --cli/--gui/--all)، يكتشف مدير الحزم (apt/dnf/pacman/zypper/apk) ويُثبّت الاعتماديات الناقصة تلقائياً.
  • 🆕 CLI launcher متعدد البيئات: عند النقر من قائمة البرامج يكتشف terminal متاح من بين 14 emulator (KDE/GNOME/XFCE/MATE/Cinnamon/LXDE/LXQt/Deepin/elementary/sway/X11).
  • 🐛 إصلاح bug قديم: التوزيع على المنصات الفرعية كان يفشل بصمت في بعض البيئات بسبب IFS=$'\n\t' (kان ينتج 46 ملف بدلاً من 111). أُصلح في gt_distribute.

للقائمة الكاملة: CHANGELOG.md.


✨ المميزات

  • 38 حجم أيقونة (من 16px إلى 1024px) — يغطي 8 منصات
  • واجهتان (سطر الأوامر CLI والواجهة الرسومية GUI)
  • i18n: العربية والإنجليزية — كشف تلقائي من LANG أو --lang=ar|en
  • وضع batch + JSON للاستدعاء البرمجي والـ CI
  • تثبيت آلي مع اكتشاف مدير الحزم
  • توليد .ico متعدد الأحجام لـ Windows
  • توليد .icns لـ macOS (عند توفر الأدوات)
  • ملف README تلقائي داخل الحزمة المُصدَّرة
  • ضغط تلقائي (ZIP / tar.gz)

📦 المتطلبات

أساسية (مطلوبة)

  • ImageMagick – لمعالجة الصور وتحويل الأحجام

اختيارية

  • zenity – للواجهة الرسومية (GUI)
  • iconutil / icnsutils – لتوليد .icns (macOS)
  • git – لاستنساخ المستودع (للتثبيت اليدوي)

تثبيت المتطلبات حسب نظامك

نظام التشغيل الأوامر
Ubuntu/Debian sudo apt update && sudo apt install imagemagick zenity git
Fedora sudo dnf install ImageMagick zenity git
Arch Linux sudo pacman -S imagemagick zenity git
openSUSE sudo zypper install ImageMagick zenity git

ملاحظة: يمكنك استخدام الأداة بدون zenity إذا كنت تفضل واجهة سطر الأوامر فقط.


🚀 التثبيت السريع

الطريقة 1: أمر واحد عبر curl ⚡ (الأسهل)

تثبيت تفاعلي — يسألك أي نسخة تريد (CLI / GUI / كلاهما):

bash <(curl -sSL https://raw.githubusercontent.com/SalehGNUTUX/GT-IconScaler/main/install.sh)

اختيار صريح — لتثبيت غير تفاعلي بنسخة محددة:

# نسخة الطرفية فقط (CLI + batch + --json):
bash <(curl -sSL https://raw.githubusercontent.com/SalehGNUTUX/GT-IconScaler/main/install.sh) --cli -y

# نسخة Zenity الرسومية فقط:
bash <(curl -sSL https://raw.githubusercontent.com/SalehGNUTUX/GT-IconScaler/main/install.sh) --gui -y

# كلاهما (الافتراضي إن لم تختر):
bash <(curl -sSL https://raw.githubusercontent.com/SalehGNUTUX/GT-IconScaler/main/install.sh) --all -y

أضف sudo في البداية لتثبيت نظامي (لجميع المستخدمين). المثبّت يكتشف مدير الحزم (apt/dnf/pacman/zypper/apk) ويُثبّت الاعتماديات الناقصة تلقائياً.

الطريقة 2: من المستودع

git clone https://github.com/SalehGNUTUX/GT-IconScaler.git
cd GT-IconScaler
chmod +x install.sh
./install.sh          # للتثبيت المحلي (للمستخدم الحالي)
# أو
sudo ./install.sh     # للتثبيت النظامي (لجميع المستخدمين)

الطريقة 3: التشغيل المباشر (بدون تثبيت)

git clone https://github.com/SalehGNUTUX/GT-IconScaler.git
cd GT-IconScaler
chmod +x GT-IconScaler.sh GT-IconScaler-GUI.sh
./GT-IconScaler.sh    # للتشغيل المباشر

بعد التثبيت: إذا لم تظهر الأيقونات في قائمة البرامج فوراً، نفّذ gtk-update-icon-cache ~/.local/share/icons/hicolor أو سجّل خروج وعد للدخول.


💻 الاستخدام

🖥️ النسخة الطرفية (CLI)

gt-iconscaler                    # كشف تلقائي للغة من LANG
gt-iconscaler --lang=en          # فرض الإنجليزية
GT_LANG=ar gt-iconscaler         # عبر متغير البيئة
gt-iconscaler --help             # عرض المساعدة
gt-iconscaler --version          # عرض الإصدار

ستظهر لك واجهة تفاعلية تطلب:

  1. اختيار ملف الأيقونة (PNG, SVG, JPG, WebP)
  2. اختيار مجلد التصدير
  3. تحديد اسم الحزمة
  4. اختيار المنصات المطلوبة (Linux, PWA, Android, iOS, watchOS, Windows, Electron)
  5. اختيار نوع الضغط (ZIP, tar.gz, أو بدون ضغط)

🎨 النسخة الرسومية (GUI)

gt-iconscaler-gui                # كشف تلقائي للغة
gt-iconscaler-gui --lang=en      # فرض لغة

نافذة رسومية بـ zenity توجّهك عبر جميع الخطوات.

🌐 ترتيب كشف اللغة

الأولوية المصدر مثال
1 --lang= --lang=en
2 GT_LANG env GT_LANG=ar
3 LANG env LANG=ar_SA.UTF-8
4 الافتراضي en

⚙️ وضع batch (CLI فقط — جديد في v2.2)

تخطّى الواجهة التفاعلية بتمرير كل المعاملات مرة واحدة — مناسب للـ CI/CD والاستدعاء البرمجي.

gt-iconscaler \
  --icon=/path/logo.png \
  --output=/path/dist \
  --name=myapp-icons \
  --platforms=all \
  --compress=zip

القيم المدعومة:

  • --platforms= : all · linux-pwa · linux-pwa-android · linux-electron · mobile · windows
  • --compress= : zip · targz · both · none

--json يُخرج سطر JSON واحد (يكتم الديكور — مناسب للاستدعاء من برنامج):

$ gt-iconscaler --json --icon=logo.png --output=/tmp --name=app \
                --platforms=all --compress=zip
{"final_dir":"/tmp/app","done":38,"failed":0,"has_ico":true,"has_icns":true,"icns_method":"imagemagick","compress":"zip","archives":["/tmp/app.zip"]}

أي علم مفقود يرجع لخطوته التفاعلية تلقائياً — الوضع الهجين مدعوم.


🎯 المنصات المدعومة

المنصة المسار الاستخدام الأحجام المدعومة
Linux linux/ hicolor XDG Icon Theme 16, 22, 24, 32, 48, 64, 96, 128, 256, 512
PWA pwa/ Web Manifest + Apple Touch + Chrome Android 16, 32, 48, 72, 96, 128, 144, 152, 167, 180, 192, 196, 256, 384, 512
Android android/ mipmap-ldpi → mipmap-xxxhdpi 36, 48, 72, 96, 144, 192
iOS ios/ App Icon (iPhone, iPad, App Store) 20, 29, 40, 58, 60, 76, 80, 87, 100, 120, 152, 167, 180, 512, 1024
watchOS watchos/ Apple Watch (38mm/44mm) 48, 55, 58, 88, 100, 172, 196, 216
Windows Tiles windows/ MS Store + Win10/11 Tiles (PWA/MSIX) 44, 50, 70, 150, 310
Windows ICO .ico ملف ICO متعدد الأحجام 16, 24, 32, 48, 64, 128, 256
macOS .icns ملف ICNS (إذا توفرت الأدوات) 16, 32, 64, 128, 256, 512, 1024
Electron electron/ أيقونات تطبيقات Electron 16, 32, 64, 128, 256, 512, 1024
Favicon favicon/ أيقونات المتصفح 16, 32, 48

📁 هيكل المخرجات

بعد تشغيل الأداة، سيتم إنشاء مجلد به الهيكل التالي:

اسم_الحزمة-icons/
├── all/                      # جميع الأحجام (مصدر للمنصات الأخرى)
│   ├── 16x16/
│   ├── 32x32/
│   └── ... (جميع الأحجام)
├── linux/                    # أيقونات Linux (hicolor)
│   ├── 16x16/apps/
│   ├── 32x32/apps/
│   └── ...
├── pwa/                      # أيقونات تطبيقات الويب
│   ├── icon-16x16.png
│   ├── icon-32x32.png
│   └── ...
├── android/                  # أيقونات Android
│   ├── mipmap-ldpi/ic_launcher.png
│   ├── mipmap-mdpi/ic_launcher.png
│   └── ...
├── ios/                      # أيقونات iOS / iPadOS
│   ├── Icon-20.png
│   ├── Icon-29.png
│   └── ...
├── watchos/                  # أيقونات Apple Watch
│   ├── AppIcon-48.png
│   ├── AppIcon-88.png
│   └── ...
├── windows/                  # Microsoft Tiles (Win10/11)
│   ├── StoreLogo-44.png
│   ├── Square70x70Logo.png
│   ├── Square150x150Logo.png
│   └── Square310x310Logo.png
├── electron/                 # أيقونات Electron
│   └── icon.png
├── favicon/                  # أيقونات المتصفح
│   ├── favicon.ico
│   ├── favicon-16x16.png
│   └── favicon-32x32.png
├── اسم_الأيقونة.ico          # ملف Windows متعدد الأحجام
├── اسم_الأيقونة.icns         # ملف macOS (إن توفر)
└── README.md                 # ملف توضيحي للمخرجات

🛠️ حل المشاكل

❌ خطأ: "الدليل './src' غير موجود"

الحل: هذا الخطأ من السكربتات القديمة. المثبت الجديد يتعامل معه تلقائياً. إذا ظهر، نفّذ:

mkdir -p bin src include lib

❌ خطأ: "ImageMagick غير مثبت"

الحل: ثبّت ImageMagick باستخدام مدير الحزم الخاص بك:

# Ubuntu/Debian
sudo apt install imagemagick

# Fedora
sudo dnf install ImageMagick

# Arch
sudo pacman -S imagemagick

❌ خطأ: "command not found: gt-iconscaler"

الحل: أعد تشغيل الطرفية أو أضف المسار يدوياً:

export PATH="$HOME/.local/bin:$PATH"
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc

❌ خطأ: "zenity غير موجود"

الحل: ثبّت zenity أو استخدم النسخة الطرفية (CLI):

# تثبيت zenity
sudo apt install zenity   # Ubuntu/Debian
sudo dnf install zenity   # Fedora
sudo pacman -S zenity     # Arch

❌ خطأ: "لا توجد صلاحيات للتثبيت"

الحل: استخدم sudo للتثبيت النظامي:

sudo ./install.sh

❌ مشكلة: الأيقونات الناتجة ضبابية

الحل: استخدم أيقونة مصدر بدقة عالية (1024x1024 أو أكبر) بصيغة PNG مع خلفية شفافة.


🗑️ إزالة التثبيت

استخدم السكربت الجاهز — يحذف الملفات التنفيذية، وملفات .desktop، وجميع مقاسات الأيقونات، ثم يحدّث ذاكرة التخزين المؤقت:

./uninstall.sh        # لإزالة التثبيت المحلي
# أو
sudo ./uninstall.sh   # لإزالة التثبيت النظامي

🤝 المساهمة والتطوير

نرحب بمساهماتكم! يمكنكم المساعدة من خلال:

  1. الإبلاغ عن مشاكل – عبر Issues
  2. اقتراح تحسينات – عبر Pull Requests
  3. ترجمة الواجهات – إضافة دعم لغات جديدة
  4. تطوير المثبت – دعم المزيد من مديري الحزم

بيئة التطوير

git clone https://github.com/SalehGNUTUX/GT-IconScaler.git
cd GT-IconScaler
chmod +x *.sh
# عدّل السكربتات حسب الحاجة
./GT-IconScaler.sh  # للاختبار

📜 الترخيص

هذا المشروع مرخص تحت رخصة GNU General Public License v3.0 – انظر ملف LICENSE للتفاصيل.


👤 المطور

GNUtux (SalehGNUTUX)


⭐ إذا أعجبك المشروع، لا تنسَ وضع نجمة على GitHub!
شكراً لاستخدامك GT-IconScaler


آخر تحديث: 30 مايو 2026 — v2.2.0

About

أداة تحويل و توليد مختلف أحجام أيقوانات مشروعك.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages