آسام (مدیر پنجره)
آسام یک مدیر پنجرهٔ پویا برای سیستم پنجره ایکس است که به زبان‌های سی و لوا نوشته شده‌است. توسعهٔ این پروژه با مشتق شدن از دی‌دابلیوام آغاز شد. هدف آسام این است که تا حد ممکن کوچک و سریع، اما قابل شخصی‌سازی باشد و امکان مدیریت کارآمد پنجره‌ها توسط صفحه کلید را به کاربر بدهد.
در آغاز، پروژه جی‌دی‌دابلیوام نام‌گذاری شد، با 'jd' یادآور حروف اول اسم برنامه‌نویس آن، و با 'dwm' یادآور پروژه‌ای که از آن مشتق شده بود. اولین مخزن گیت این پروژه در سپتامبر ۲۰۰۷ به وجود آمد. جی‌دابلیودی‌ام به آسام تغییر نام پیدا کرد. نام آسام از همین عبارت که در سریال "آشنایی با مادر" توسط شخصیت بارنی استینسون استفاده می‌شد، گرفته شده‌است. مدیر پنجرهٔ آسام به صورت رسمی در تاریخ ۲۰ سپتامبر ۲۰۰۷، از طریق لیست پستی دی‌دابلیوام معرفی شد.
آسام با قابلیت شخصی‌سازی توسط یک فایل تنظیمات جداگانه، از پروژهٔ دی‌دابلیوام مشتق شده‌است (بخش تنظیم و شخصی‌سازی را در زیر ببینید). با اینکه بسیار قابل توسعه است، تنظیم پیش‌فرض این مدیر پنجره تا حد زیادی ساده شده‌است. برای رسیدن به این هدف، طراح چیزی را که به آن "مدیر پنجرهٔ چارچوبی" می‌گوید، ایجاد کرده‌است، تا کاربران بتوانند آن را گسترش دهند و نیازهای خود را در آن بگنجانند.از همان آغاز آسام یک اشتقاق از دی‌دابلیوام به همراه یک فایل تنظیمات خارجی در نظر گرفته شده بود. به همین دلیل، قالب این فایل و فرایند تنظیم آسام، مورد توجه ویژهٔ طراح آن بوده‌است.
تا قبل از نسخهٔ سوم، یکی از ویژگی‌های آسام چیزی بود که دَنجو به آن «بدون تنظیمات پیچیده» می‌گفت. اولین نسخه‌های آسام (۱.x) تنها یک دی‌دابلیوام دستکاری شده به همراه یک فایل تنظیمات تخت بود که از libconfig استفاده می‌کرد. در شاخهٔ ۲.x، دَنجو کتابخانهٔ فایل تنظیمات را از libconfig به libconfuse تغییر داد. در جریان توسعهٔ نسخه‌های ۲.x، ویژگی‌های بسیاری به آسام اضافه شد، به عنوان مثال نوار عنوان و نمایش‌گر نشان.
در ۲۰ می ۲۰۰۸، دَنجو در یک پست الکترونیکی به لیست پستی آسام اعلام کرد که قالبی جدید برای فایل تنظیمات نسخهٔ ۳٫۰ استفاده خواهد شد. فرمت جدید در مسیر ~/.awesomerc.lua قرار داده شد، و بعدا به ~/.config/awesome/rc.lua منتقل شد. فایل جدید با استفاده از زبان لوا نوشته شده‌است. دَنجو ادعا کرد که قالب جدید و گنجاندن لوا، به کاربران آسام اجازه می‌دهد که آسام را به گونه‌ای تنظیم کنند که پیشتر غیرممکن تلقی می‌شد: استفاده از یک زبان برنامه‌نویسی برای تنظیمات، این امکان را به وجود آورد که به صورتی پویا گزینه‌های قابل تنظیم را مشخص کرد.
رابط برنامه‌نویسی نرم‌افزار آسام هم‌اکنون در صفحهٔ خانگی این پروژه میزبانی می‌شود، و یک مقالهٔ آموزشی برای تنظیم آسام در ویکی پروژه وجود دارد.
با استفاده کتابخانهٔ Beautiful آسام، می‌توان برای آسام پوسته‌های مختلفی را اعمال کرد. همچون فایل تنظیمات rc.lua، پوسته نیز به زبان لوا نوشته می‌شود و اجازهٔ ایجاد پوسته‌های پویا را به کاربر می‌دهد.
با اینکه تنظیمات اولیهٔ آسام از نسخهٔ ۳٫۲٫۱، هیچ نشانگر وضعیتی ندارد (مانند وضعیت شبکهٔ وایرلس، باتری و غیره) کاربران می‌توانند این موارد را با استفاده از ویجت‌ها به آسام اضافه کنند. اطلاعات مورد استفادهٔ ویجت‌ها از طریق کد لوا تأمین می‌شوند، چرا که ویجت‌ها در فایل تنظیمات اصلی تعریف می‌گردند.
نسخهٔ ۳٫۰، که در ۱۸ سپتامبر ۲۰۰۸ منتشر شد، از کتابخانهٔ XCB برای ارتباز با سرور X استفاده می‌کند. این مسئله آسام را به اولین مدیر پنجره‌ای که از این کتابخانه به جای Xlib استفاده می‌کند تبدیل کرده‌است. کار بر روی اعمال XCB توسط آرنود فونتین ، یکی از توسعه‌دهنده‌های کنونی آسام، در ژانویهٔ ۲۰۰۸ شروع شد.
آرنود فونتین انتقال به XCB را در ۹ آوریل ۲۰۰۸ در لیست پستی XCB اعلام کرد. در این پیام او این مسئله را به عنوان دلیل اصلی استفاده از XCB بیان کرد: «معماری ماژولار؛ دسترسی مستقیم به پروتکل‌ها؛ چندنخی؛ درخواست/پاسخ ناهمگام؛». ماه بعد انتقال به XCB کامل شد و دَنجو شاخهٔ جدیدی را بر اساس XCB به وجود آورد.
به دلیل مشکلاتی که تا پیش از نسخهٔ ۳٫۰، تنظیم و توسعهٔ آسام را سخت می‌کرد، طراح تصمیم به گنجاندن تنظیم مبتنی بر لوا در آسام گرفت. نسخهٔ آمادهٔ انتشار این تغییرات در آگوست ۲۰۰۸ منتشر شد. در سپتامبر ۲۰۰۸، اولین ورژن آسام به همراه رابط برنامه‌نویسی نرم‌افزار لوا به موازات انتقال به XCB منتشر شد.
بستهٔ آسام در بسیاری از سیستم‌عامل‌های شبه-یونیکس قابل نصب است. از جمله: آرچ لینوکس، دبیان، جنتو،، اوبونتو، فری‌بی‌اس‌دی، نت‌بی‌اس‌دی و اپن‌بی‌اس‌دی
ورژن ۱٫۰ تا ۱٫۳ آسام (سپتامبر-اکتبر ۲۰۰۹) نام‌گذاری نشده بود. از اولین نسخهٔ آمادهٔ انتشار ۲٫۰ (نوامبر ۲۰۰۷)، آسام از نام انتشار استفاده می‌کند. از آخرین نسخهٔ آسام ۳٫۵٫۵ «کانزاس سیتی شافل» می‌باشد.