چطور یک افزونه برای گنوم بنویسیم؟

گنوم شل با استفاده از جاوااسکریپت و Gjs بستری قدرتمند برای اسکریپتنویسی و ساخت افزونه فراهم کرده است. خوشبختانه فرآیند توسعه افزونهها ساده است و پیچیدگی خاصی ندارد. تقریباً تمام افزونههای گنوم توسط جامعه کاربری توسعه داده شدهاند و کاملاً متنباز هستند. این یعنی شما میتوانید کد افزونههای دیگر را مطالعه کرده، ایده بگیرید و حتی از قطعات کد آنها در پروژههای خود استفاده کنید.
افزونههای گنوم دقیقاً چه کاری انجام میدهند؟
افزونه در اصل یک اسکریپت است که با API رسمی گنوم شل ارتباط دارد و به کمک آن فعال یا غیرفعال میشود. اتفاق اصلی در Gjs رخ میدهد. با Gjs میتوانید رفتار و ظاهر پوسته گنوم را به دلخواه تغییر دهید. نمونههایی از کارهایی که میتوانید با افزونهها انجام دهید:
- افزودن منوهای جدید به پنل بالای گنوم
- خودکارسازی کارهای پرتکرار مثل تغییر DNS یا مدیریت VPN
- ساخت ویجتهای کاربردی (مثلاً نمایش وضعیت شبکه، تقویم خاص، یادآورها و…)
- تغییر جلوههای بصری (انیمیشنها، سایز پنجرهها، رنگبندی)
- بهبود تجربه کاربری نرمافزارهای نصبشده روی سیستم
ساختار کلی یک افزونه
هر افزونه گنوم معمولاً شامل چند فایل کلیدی است:
metadata.json: شامل اطلاعات پایه مثل نام افزونه، نسخه، پشتیبانی از نسخههای گنوم، و لینک مخزن.extension.js: قلب افزونه؛ جایی که کد اصلی شما نوشته میشود.stylesheet.css(اختیاری): برای اضافه کردن یا تغییر استایلهای گرافیکی.schemas/(اختیاری): تعریف تنظیمات قابلپیکربندی افزونه.
این ساختار ساده باعث میشود یادگیری توسعه افزونه سریع باشد. برای جزئیات بیشتر به آناتومی افزونهها مراجعه کنید.
چرخه انتشار افزونهها
بعد از توسعه افزونه:
- فایل
metadata.jsonرا تکمیل کنید تا مشخصات افزونهتان مشخص باشد. - افزونه را بستهبندی (pack) کرده و در extensions.gnome.org بارگذاری کنید.
- سپس، افزونه شما توسط تیم بازبینی بررسی میشود تا از نظر امنیتی و کارکرد مشکلی نداشته باشد.
- پس از تأیید، افزونه روی وبگاه قرار میگیرد و همه کاربران میتوانند نصبش کنند.
ابزارها و منابع کاربردی
برای نوشتن و تست افزونه، این ابزارها به کارتان میآیند:
-
gnome-extensions CLI: برای فعال/غیرفعال کردن سریع افزونهها از خط فرمان. Looking Glass (lg): یک ابزار اشکالزدایی داخلی در گنوم برای بررسی خطاها و اجرای دستورات JS.Gjs REPL: اجرای تعاملی دستورات Gjs برای تست سریع کد.
نکات پایانی
- شروع کار را با مطالعه و تغییر افزونههای موجود آغاز کنید؛ یادگیری از نمونههای واقعی بهترین راه است.
- از
gitبرای مدیریت نسخهها استفاده کنید تا در صورت بروز مشکل بتوانید به نسخههای قبل برگردید. - سعی کنید افزونهها را ساده، ایمن و سبک طراحی کنید تا باعث کندی محیط گرافیکی نشوند.
- مشارکت در جامعه گنوم علاوه بر یادگیری بیشتر، به دیگر کاربران هم کمک خواهد کرد.