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

هدف پروژه

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

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

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

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

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

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

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

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

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

مهاجرت به XCB

نسخهٔ ۳٫۰، که در ۱۸ سپتامبر ۲۰۰۸ منتشر شد، از کتابخانهٔ XCB برای ارتباز با سرور X استفاده می‌کند.
این مسئله آسام را به اولین مدیر پنجره‌ای که از این کتابخانه به جای Xlib استفاده می‌کند تبدیل کرده‌است. کار بر روی اعمال XCB توسط آرنود فونتین (به انگلیسی: Arnaud Fontaine)، یکی از توسعه‌دهنده‌های کنونی آسام، در ژانویهٔ ۲۰۰۸ شروع شد.
آرنود فونتین انتقال به XCB را در ۹ آوریل ۲۰۰۸ در لیست پستی XCB اعلام کرد. در این پیام او این مسئله را به عنوان دلیل اصلی استفاده از XCB بیان کرد: «معماری ماژولار؛ دسترسی مستقیم به پروتکل‌ها؛ چندنخی؛ درخواست/پاسخ ناهمگام؛». ماه بعد انتقال به XCB کامل شد و دَنجو شاخهٔ جدیدی را بر اساس XCB به وجود آورد.

گنجاندن لوا

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

دسترسی به بسته در توزیع‌ها

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

نام انتشار

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