آسام (مدیر پنجره)

آسام  یک مدیر پنجرهٔ پویا برای سیستم پنجره ایکس است که به زبان‌های سی و لوا نوشته شده‌است. توسعهٔ این پروژه با مشتق شدن از دی‌دابلیوام آغاز شد.
هدف آسام این است که تا حد ممکن کوچک و سریع، اما قابل شخصی‌سازی باشد و امکان مدیریت کارآمد پنجره‌ها توسط صفحه کلید را به کاربر بدهد.

در آغاز، پروژه  جی‌دی‌دابلیوام  نام‌گذاری شد، با 'jd' یادآور حروف اول اسم برنامه‌نویس آن، و با 'dwm' یادآور پروژه‌ای که از آن مشتق شده بود. اولین مخزن گیت این پروژه در سپتامبر ۲۰۰۷ به وجود آمد. جی‌دابلیودی‌ام به آسام تغییر نام پیدا کرد.
نام آسام از همین عبارت که در سریال آشنایی با مادر توسط شخصیت بارنی استینسون استفاده می‌شد، گرفته شده‌است. مدیر پنجرهٔ آسام به صورت رسمی در تاریخ ۲۰ سپتامبر ۲۰۰۷، از طریق لیست پستی دی‌دابلیوام معرفی شد.

هدف پروژه 

آسام با قابلیت شخصی‌سازی توسط یک فایل تنظیمات جداگانه، از پروژهٔ دی‌دابلیوام مشتق شده‌است (بخش تنظیم و شخصی‌سازی را در زیر ببینید). با اینکه بسیار قابل توسعه است، تنظیم پیش‌فرض این مدیر پنجره تا حد زیادی ساده شده‌است. برای رسیدن به این هدف، طراح چیزی را که به آن مدیر پنجرهٔ چارچوبی  می‌گوید، ایجاد کرده‌است، تا کاربران بتوانند آن را گسترش دهند و نیازهای خود را در آن بگنجانند.

ویژگی‌ها 

 قابل تنظیم توسط یک فایل تنظیمات لوا.
 همچون دی‌دابلیوام و دابلیوام‌آی‌آی، آسام از برچسب‌ها  به جای فضاهای کاری  استفاده می‌کند. پنجره‌ها می‌توانند به برچسب‌ها نسبت داده شوند و چندین برچسب می‌تواند در یک زمان انتخاب گردد.
 به عنوان یک مدیر پنجرهٔ پویا، آسام می‌تواند برای هر برچسب یک چیدمان صفحه داشته باشد. به عنوان مثال چیدمان شناور، چندین چیدمان پویای موزائیکی، بززگ شده (maximized) و درشت‌ساز (magnifier).
 چندین نوار وضعیت، قابل تنظیم جدا برای هر صفحهٔ نمایشگر، به همراه بسیاری از ویجت‌ها (جعبه‌های نوشتاری و تصویری، نمودارها، نوارهای پیشرفت و …
 همه‌چیز می‌تواند با صفحه کلید انجام گردد، بنابراین استفاده از موس اختیاری است.
 پشتیبانی Multihead (توسط XRandR، Xinerama یا Zaphod mode).
 مطابق با استاندارد freedesktop.org شامل EWMH، شاخهٔ اصلی XDG، XEmber، اطلاع‌رسان پیش‌خوان و System Tray.
 پشتیبانی از کامپوزیتینگ و شفافیت واقعی توسط یک کامپوزیتور خارجی همچون xcompmgr.
 کنترل از راه دور توسط دی‌باس (awesome-client).
 پشتیبانی از زبان نشانه‌گذاری pango

تنظیم و شخصی‌سازی 

از همان آغاز آسام یک اشتقاق از دی‌دابلیوام به همراه یک فایل تنظیمات خارجی در نظر گرفته شده بود. به همین دلیل، قالب این فایل و فرایند تنظیم آسام، مورد توجه ویژهٔ طراح آن بوده‌است.

قالب فایل تنظیمات در اوایل پروژه 

تا قبل از نسخهٔ سوم، یکی از ویژگی‌های آسام چیزی بود که دَنجو به آن «بدون تنظیمات پیچیده» می‌گفت. اولین نسخه‌های آسام (۱.x) تنها یک دی‌دابلیوام دستکاری شده به همراه یک فایل تنظیمات تخت بود که از libconfig استفاده می‌کرد. در شاخهٔ ۲.x، دَنجو کتابخانهٔ فایل تنظیمات را از libconfig به libconfuse تغییر داد. در جریان توسعهٔ نسخه‌های ۲.x، ویژگی‌های بسیاری به آسام اضافه شد، به عنوان مثال نوار عنوان و نمایش‌گر نشان.

قالب فایل تنظیمات جدید 

در ۲۰ می ۲۰۰۸، دَنجو در یک پست الکترونیکی به لیست پستی آسام
اعلام کرد که قالبی جدید برای فایل تنظیمات نسخهٔ ۳٫۰ استفاده خواهد شد. فرمت جدید در مسیر ~/.awesomerc.lua قرار داده شد، و بعدا به ~/.config/awesome/rc.lua منتقل شد. فایل جدید با استفاده از زبان لوا نوشته شده‌است. دَنجو ادعا کرد که قالب جدید و گنجاندن لوا، به کاربران آسام اجازه می‌دهد که آسام را به گونه‌ای تنظیم کنند که پیشتر غیرممکن تلقی می‌شد: استفاده از یک زبان برنامه‌نویسی برای تنظیمات، این امکان را به وجود آورد که به صورتی پویا گزینه‌های قابل تنظیم را مشخص کرد.

رابط برنامه‌نویسی نرم‌افزار  آسام هم‌اکنون در صفحهٔ خانگی این پروژه میزبانی می‌شود،
و یک مقالهٔ آموزشی برای تنظیم آسام در ویکی پروژه وجود دارد.

ویجت‌ها و پوسته‌ها 

با استفاده کتابخانهٔ Beautiful آسام، می‌توان برای آسام پوسته‌های مختلفی را اعمال کرد.
همچون فایل تنظیمات rc.lua، پوسته نیز به زبان لوا نوشته می‌شود و اجازهٔ ایجاد پوسته‌های پویا را به کاربر می‌دهد.

با اینکه تنظیمات اولیهٔ آسام از نسخهٔ ۳٫۲٫۱، هیچ نشانگر وضعیتی ندارد (مانند وضعیت شبکهٔ وایرلس، باتری و غیره) کاربران می‌توانند این موارد را با استفاده از ویجت‌ها به آسام اضافه کنند.
اطلاعات مورد استفادهٔ ویجت‌ها از طریق کد لوا تأمین می‌شوند، چرا که ویجت‌ها در فایل تنظیمات اصلی تعریف می‌گردند.

مهاجرت به XCB 

نسخهٔ ۳٫۰، که در ۱۸ سپتامبر ۲۰۰۸ منتشر شد، از کتابخانهٔ XCB برای ارتباز با سرور X استفاده می‌کند.
این مسئله آسام را به اولین مدیر پنجره‌ای که از این کتابخانه به جای Xlib استفاده می‌کند تبدیل کرده‌است. کار بر روی اعمال XCB توسط آرنود فونتین ، یکی از توسعه‌دهنده‌های کنونی آسام، در ژانویهٔ ۲۰۰۸ شروع شد.

آرنود فونتین انتقال به XCB را در ۹ آوریل ۲۰۰۸ در لیست پستی XCB اعلام کرد. در این پیام او این مسئله را به عنوان دلیل اصلی استفاده از XCB بیان کرد: «معماری ماژولار؛ دسترسی مستقیم به پروتکل‌ها؛ چندنخی؛ درخواست/پاسخ ناهمگام؛». ماه بعد انتقال به XCB کامل شد و دَنجو شاخهٔ جدیدی را بر اساس XCB به وجود آورد.

گنجاندن لوا 

به دلیل مشکلاتی که تا پیش از نسخهٔ ۳٫۰، تنظیم و توسعهٔ آسام را سخت می‌کرد، طراح تصمیم به گنجاندن تنظیم مبتنی بر لوا در آسام گرفت. نسخهٔ آمادهٔ انتشار این تغییرات در آگوست ۲۰۰۸ منتشر شد.
در سپتامبر ۲۰۰۸، اولین ورژن آسام به همراه رابط برنامه‌نویسی نرم‌افزار لوا به موازات انتقال به XCB منتشر شد.

دسترسی به بسته در توزیع‌ها 
بستهٔ آسام در بسیاری از سیستم‌عامل‌های شبه-یونیکس قابل نصب است. از جمله: آرچ لینوکس، دبیان، جنتو،، اوبونتو، فری‌بی‌اس‌دی، نت‌بی‌اس‌دی و اپن‌بی‌اس‌دی

نام انتشار 

ورژن ۱٫۰ تا ۱٫۳ آسام (سپتامبر-اکتبر ۲۰۰۹) نام‌گذاری نشده بود. از اولین نسخهٔ آمادهٔ انتشار ۲٫۰ (نوامبر ۲۰۰۷)، آسام از نام انتشار استفاده می‌کند. از  آخرین نسخهٔ آسام ۳٫۵٫۵ «کانزاس سیتی شافل»  می‌باشد.

جستارهای وابسته 

 اوپن‌باکس
 آیس‌دابلیوام
 جی‌دابلیوام

منابع

پیوند به بیرون 
 وب‌گاه رسمی
 صفحهٔ راهنما (Man Page)
 تصاویر محیط کاربری

سامانه پنجره‌ای اکس
نرم‌افزار آزاد
نرم‌افزار قابل برنامه نویسی با لوآ (زبان برنامه‌نویسی)
نرم‌افزارهای آزاد مدیر پنجره برای اکس
نرم‌افزارهای مرتبط با سیستم پنجره‌ای یونیکس
واسط گرافیکی کاربر
واسط‌های کاربر