آسام (مدیر پنجره)
آسام (به انگلیسی: awesome) یک مدیر پنجرهٔ پویا برای سیستم پنجره ایکس است که به زبانهای سی و لوا نوشته شدهاست. توسعهٔ این پروژه با مشتق شدن از دیدابلیوام آغاز شد.[1] هدف آسام این است که تا حد ممکن کوچک و سریع، اما قابل شخصیسازی باشد و امکان مدیریت کارآمد پنجرهها توسط صفحه کلید را به کاربر بدهد.
نویسنده(های) اصلی | جولین دَنجو (به انگلیسی: Julien Danjou) |
---|---|
انتشار پایدار | 4.3
January 2019 |
مخزن | |
نوشتهشده با | سی و لوا |
سیستمعامل | شبه یونیکس |
گونه | مدیر پنجره |
پروانه | گنو جیپیال نسخهٔ ۲+ |
وبگاه |
در آغاز، پروژه جیدیدابلیوام (به انگلیسی: jdwm) نامگذاری شد، با 'jd' یادآور حروف اول اسم برنامهنویس آن، و با 'dwm' یادآور پروژهای که از آن مشتق شده بود. اولین مخزن گیت این پروژه در سپتامبر ۲۰۰۷ به وجود آمد. جیدابلیودیام به آسام تغییر نام پیدا کرد.[2] نام آسام از همین عبارت که در سریال آشنایی با مادر توسط شخصیت بارنی استینسون استفاده میشد، گرفته شدهاست. مدیر پنجرهٔ آسام به صورت رسمی در تاریخ ۲۰ سپتامبر ۲۰۰۷، از طریق لیست پستی دیدابلیوام معرفی شد.[1]
هدف پروژه
مدیر پنجره احتمالا یکی از پرکاربردترین برنامههایی است که برای انجام کارهای روزانهٔ خود، به همراه مرورگر وب، مرورگر پست الکترونیکی و ویرایشگر متنتان استفاده میکنید. کاربران قدرتمند(پاور یوزر ها) و برنامهنویسان چندین گزینه برای انتخاب ابزارهای روزانهشان دارند. بعضی از آنها به مراتب قابل تنظیم و توسعهسازیاند
مدیر پنجرهٔ آسام سعی دارد این ابزارها را با ابزاری که به آن «یک مدیر پنجرهٔ بسیار قابل تنظیم و توسعهپذیر» میگوید، کامل کند.
برای رسیدن به این هدف، آسام به عنوان یک مدیرپنجرهٔ چارچوبی طراحی شدهاست. بسیار سریع، کوچک و پویا است و تا حد زیادی با استفاده از زبان برنامهنویسی لوا قابل توسعه است.[3]
آسام با قابلیت شخصیسازی توسط یک فایل تنظیمات جداگانه، از پروژهٔ دیدابلیوام مشتق شدهاست (بخش تنظیم و شخصیسازی را در زیر ببینید). با اینکه بسیار قابل توسعه است، تنظیم پیشفرض این مدیر پنجره تا حد زیادی ساده شدهاست. برای رسیدن به این هدف، طراح چیزی را که به آن مدیر پنجرهٔ چارچوبی (به انگلیسی: framework window manager) میگوید،[2] ایجاد کردهاست، تا کاربران بتوانند آن را گسترش دهند و نیازهای خود را در آن بگنجانند.
ویژگیها
- قابل تنظیم توسط یک فایل تنظیمات لوا.
- همچون دیدابلیوام و دابلیوامآیآی، آسام از برچسبها (به انگلیسی: tags) به جای فضاهای کاری (به انگلیسی: workspace) استفاده میکند. پنجرهها میتوانند به برچسبها نسبت داده شوند و چندین برچسب میتواند در یک زمان انتخاب گردد.
- به عنوان یک مدیر پنجرهٔ پویا، آسام میتواند برای هر برچسب یک چیدمان صفحه داشته باشد. به عنوان مثال چیدمان شناور، چندین چیدمان پویای موزائیکی، بززگ شده (maximized) و درشتساز (magnifier).
- چندین نوار وضعیت، قابل تنظیم جدا برای هر صفحهٔ نمایشگر، به همراه بسیاری از ویجتها (جعبههای نوشتاری و تصویری، نمودارها، نوارهای پیشرفت و …
- همهچیز میتواند با صفحه کلید انجام گردد، بنابراین استفاده از موس اختیاری است.
- پشتیبانی Multihead (توسط XRandR، Xinerama یا Zaphod mode).
- مطابق با استاندارد freedesktop.org شامل EWMH، شاخهٔ اصلی XDG، XEmber، اطلاعرسان پیشخوان و System Tray.
- پشتیبانی از کامپوزیتینگ و شفافیت واقعی توسط یک کامپوزیتور خارجی همچون xcompmgr.
- کنترل از راه دور توسط دیباس (awesome-client).
- پشتیبانی از زبان نشانهگذاری pango
تنظیم و شخصیسازی
از همان آغاز آسام یک اشتقاق از دیدابلیوام به همراه یک فایل تنظیمات خارجی در نظر گرفته شده بود.[2] به همین دلیل، قالب این فایل و فرایند تنظیم آسام، مورد توجه ویژهٔ طراح آن بودهاست.
قالب فایل تنظیمات در اوایل پروژه
تا قبل از نسخهٔ سوم، یکی از ویژگیهای آسام چیزی بود که دَنجو به آن «بدون تنظیمات پیچیده» میگفت. اولین نسخههای آسام (۱.x) تنها یک دیدابلیوام دستکاری شده به همراه یک فایل تنظیمات تخت بود که از libconfig استفاده میکرد. در شاخهٔ ۲.x، دَنجو کتابخانهٔ فایل تنظیمات را از libconfig به libconfuse تغییر داد. در جریان توسعهٔ نسخههای ۲.x، ویژگیهای بسیاری به آسام اضافه شد، به عنوان مثال نوار عنوان و نمایشگر نشان.[2]
قالب فایل تنظیمات جدید
در ۲۰ می ۲۰۰۸، دَنجو در یک پست الکترونیکی به لیست پستی آسام[4] اعلام کرد که قالبی جدید برای فایل تنظیمات نسخهٔ ۳٫۰ استفاده خواهد شد. فرمت جدید در مسیر ~/.awesomerc.lua قرار داده شد، و بعدا به ~/.config/awesome/rc.lua منتقل شد. فایل جدید با استفاده از زبان لوا نوشته شدهاست. دَنجو ادعا کرد که قالب جدید و گنجاندن لوا، به کاربران آسام اجازه میدهد که آسام را به گونهای تنظیم کنند که پیشتر غیرممکن تلقی میشد: استفاده از یک زبان برنامهنویسی برای تنظیمات، این امکان را به وجود آورد که به صورتی پویا گزینههای قابل تنظیم را مشخص کرد.[4]
رابط برنامهنویسی نرمافزار (مخفف انگلیسی: API) آسام هماکنون در صفحهٔ خانگی این پروژه میزبانی میشود،[5] و یک مقالهٔ آموزشی برای تنظیم آسام در ویکی پروژه وجود دارد.[6]
ویجتها و پوستهها
با استفاده کتابخانهٔ Beautiful آسام، میتوان برای آسام پوستههای مختلفی را اعمال کرد.[7] همچون فایل تنظیمات rc.lua، پوسته نیز به زبان لوا نوشته میشود و اجازهٔ ایجاد پوستههای پویا را به کاربر میدهد.
با اینکه تنظیمات اولیهٔ آسام از نسخهٔ ۳٫۲٫۱، هیچ نشانگر وضعیتی ندارد (مانند وضعیت شبکهٔ وایرلس، باتری و غیره) کاربران میتوانند این موارد را با استفاده از ویجتها به آسام اضافه کنند.[8] اطلاعات مورد استفادهٔ ویجتها از طریق کد لوا تأمین میشوند، چرا که ویجتها در فایل تنظیمات اصلی تعریف میگردند.
مهاجرت به XCB
نسخهٔ ۳٫۰، که در ۱۸ سپتامبر ۲۰۰۸ منتشر شد، از کتابخانهٔ XCB برای ارتباز با سرور X استفاده میکند.[9] این مسئله آسام را به اولین مدیر پنجرهای که از این کتابخانه به جای Xlib استفاده میکند تبدیل کردهاست. کار بر روی اعمال XCB توسط آرنود فونتین (به انگلیسی: Arnaud Fontaine)، یکی از توسعهدهندههای کنونی آسام، در ژانویهٔ ۲۰۰۸ شروع شد.[2]
آرنود فونتین انتقال به XCB را در ۹ آوریل ۲۰۰۸ در لیست پستی XCB اعلام کرد.[9] در این پیام او این مسئله را به عنوان دلیل اصلی استفاده از XCB بیان کرد: «معماری ماژولار؛ دسترسی مستقیم به پروتکلها؛ چندنخی؛ درخواست/پاسخ ناهمگام؛». ماه بعد انتقال به XCB کامل شد و دَنجو شاخهٔ جدیدی را بر اساس XCB به وجود آورد.[2]
گنجاندن لوا
به دلیل مشکلاتی که تا پیش از نسخهٔ ۳٫۰، تنظیم و توسعهٔ آسام را سخت میکرد، طراح تصمیم به گنجاندن تنظیم مبتنی بر لوا در آسام گرفت. نسخهٔ آمادهٔ انتشار این تغییرات در آگوست ۲۰۰۸ منتشر شد.[10] در سپتامبر ۲۰۰۸، اولین ورژن آسام به همراه رابط برنامهنویسی نرمافزار لوا به موازات انتقال به XCB منتشر شد.
دسترسی به بسته در توزیعها
بستهٔ آسام در بسیاری از سیستمعاملهای شبه-یونیکس قابل نصب است. از جمله: آرچ لینوکس،[11] دبیان،[12] جنتو،،[13] اوبونتو،[14] فریبیاسدی، نتبیاسدی و اپنبیاسدی
نام انتشار
ورژن ۱٫۰ تا ۱٫۳ آسام (سپتامبر-اکتبر ۲۰۰۹) نامگذاری نشده بود. از اولین نسخهٔ آمادهٔ انتشار ۲٫۰ (نوامبر ۲۰۰۷)، آسام از نام انتشار استفاده میکند. از ۱۱ آوریل ۲۰۱۴ آخرین نسخهٔ آسام ۳٫۵٫۵ «کانزاس سیتی شافل» (به انگلیسی: Kansas City Shuffle) میباشد.[15]
جستارهای وابسته
منابع
- "Project announcement from dwm mailing list" [معرفی پروژه از طریق لیست پستی دیدابلیوام.]. 20 September 2007. Archived from the original on 6 April 2009. Retrieved 28 June 2012.
- Danjou, Julien. "Taking the other direction" [حرکت به سویی دیگر]. Retrieved 29 June 2012.
- "awesome window manager - about" [مدیر پنجرهٔ آسام - درباره]. Archived from the original on 1 February 2011. Retrieved 29 June 2012.
- Danjou, Julien (20 May 2008). "News on awesome-3 and about latest commits" [اخبار آسام ۳ و آخرین تغییرات]. Archived from the original on 1 February 2011. Retrieved 29 June 2012.
- "awesome API documentation" [رابط برنامهنویسی نرمافزار آسام]. Archived from the original on 1 February 2011. Retrieved 29 June 2012.
- "Awesome 3 configuration" [تنظیم آسام ۳]. Archived from the original on 1 February 2011. Retrieved 29 June 2012.
- "awesome Wiki: Beautiful" [ویکی آسام: Beautiful]. Archived from the original on 1 February 2011. Retrieved 29 June 2012.
- "awesome Wiki: Widgets in awesome" [ویکی آسام: ویجتها در آسام]. Archived from the original on 1 February 2011. Retrieved 29 June 2012.
- "XCB transition announcement from XCB mailing list" [اعلام انتقال به XCB در لیست پستی XCB]. Archived from the original on 1 February 2011. Retrieved 29 June 2012.
- "3.0-rc1 announcement on awesome mailing list" [اعلام نسخهٔ آمادهٔ انتشار در لیست پستی آسام-۳٫۰]. Archived from 3.0-rc1 the original Check
|نشانی=
value (help) on 1 February 2011. Retrieved 29 June 2012. - «Arch Linux - awesome 3.4.12-1 (i686)». بایگانیشده از اصلی در ۱۸ اکتبر ۲۰۱۳. دریافتشده در ۲۹ ژوئن ۲۰۱۲.
- Debian - Details of package awesome in squeeze
- Gentoo Packages /package/x11-wm/awesome
- Ubuntu - Details of package awesome in natty
- "awesome Wiki: List of awesome releases" [ویکی آسام: لیست انتشارهای آسام]. Archived from the original on 5 June 2009. Retrieved 29 June 2012.
- مشارکتکنندگان ویکیپدیا. «awesome (window manager)». در دانشنامهٔ ویکیپدیای انگلیسی، بازبینیشده در ۸ تیر ۱۳۹۱.