Xorg.conf

xorg.conf فایل پیکربندی اصلی سامانه پنجره اکس است. این فایل معمولا در مسیر /etc/X11/xorg.conf قرار دارد اما مسیر آن می‌تواند در سیستم‌عامل‌های مختلف فرق داشته باشد. این فایل دربرگیرنده تنظیمات مربوط به ماژول‌ها، فونت‌ها، دستگاه‌های ورودی/خروجی مثل نمایشگر، کارت گرافیک، ماوس و صفحه کلید و … است. پیکربندی سخت و قالب پیچیده این فایل در میان کاربران معروف است. ابزارهایی گرافیکی برای تنظیم و پیکربندی ایجاد شده‌اند که کاربر را تا حدود زیادی از ویرایش مستقیم این فایل معاف می‌کنند. اگر این فایل وجود نداشته باشد، سرور اکس سعی می‌کند به صورت خودکار پارامترهای سیستم را شناسایی کند.
قالب این فایل به صورت زیر است:
کلیه خطوط خالی نادیده گرفته می‌شوند.
کاراکترهای فضای خالی (کاراکترهای tab و space) که در ابتدای خطوط قرار دارند، نادیده گرفته می‌شوند. بنابراین می‌توان با قرار دادن تعدادی کاراکتر فضای خالی در ابتدای خطوط، فایل پیکربندی را دندانه گذاری کرده و خوانایی آن را بالا برد
کاراکتر # به معنای آغاز یک توضیح (برنامه‌نویسی) است. به این ترتیب می‌توان توضیحات دلخواه را در فایل پیکربندی درج کرده تا خواندن فایل برای دیگران راحت‌تر شود. هر کاراکتری که بعد از # بیاید نادیده گرفته می‌شود.
فایل xorg.conf از چند بخش مختلف تشکیل می‌شود. هر بخش از قالبی به شکل زیر تشکیل می‌شود:
Section "SectionName"
SectionEntry
EndSection
بخش SectionName می‌تواند یکی از مقادیر زیر باشد:
Files
ServerFlags
Module
InputDevice
Device
Monitor
Screen
ServerLayout
یک X server با دستگاه‌های مختلفی مانند ماوس، کیبورد، کارت گرافیک، صفحه نمایش و … سر و کار دارد. تعدادی از این دستگاه‌ها، دستگاه‌های ورودی هستند (مانند ماوس و کیبورد) و تعدادی دیگر هم دستگاههای خروجی (مانند کارت گرافیک و صفحه نمایش) اطلاعات از دستگاهای ورودی دریافت شده، پردازش می‌شوند و نتیجه آن در دستگاه‌های خروجی نمایش می‌یابد. یک رایانه ممکن است چندین صفحه‌نمایش، چندین صفحه‌کلید و … داشته باشد.
بخش ServerLayout در بالاترین سطح قرار دارد. این بخش دستگاه‌های ورودی و خروجی را با یکدیگر ترکیب می‌کند. دستگاه‌های ورودی در بخش InputDevice تشریح می‌شوند. اما یک دستگاه خروجی خود از ترکیب یک کارت گرافیک و یک مانیتور تشکیل می‌شود. کارت گرافیک در بخش Device تشریح می‌شود و مانیتور هم در بخش Monitor تشریح می‌شود. سپس کارت گرافیک و مانیتور توسط بخش Screen با یکدیگر ترکیب می‌شوند. در نتیجه بخش ServerLayout بخش‌های Screen و InputDevice را با هم ترکیب می‌کند. البته به غیر از این بخش‌ها، بخش‌های دیگری هم وجود دارد.
بخش Module
بعضی از قابلیتها و ویژگی‌ها به صورت ماژول در دسترس هستند و در صورت نیاز به این ویژگی‌ها باید ماژول مورد نظر را هم فعال کرد. این کار از طریق بخش Module صورت می‌گیرد. ماژولهای فایل‌هایی با پسوند .so، .o، .a و … هستند و معمولا در مسیر /usr/local/lib/xorg/modules قرار دارند. با استفاده از کلمه کلیدی Load می‌توان یک ماژول را بارگذاری کرد. به این صورت:
Load "modulename"
بخش Files
این بخش به سرور می‌گوید که کجا می‌تواند فایل‌های مورد نیازش را پیدا کند. مثلا برای اینکه سرور بتواند از فونتها استفاده کند، باید بداند که فونتها در کجا قرار دارند.
بخش InputDevice
دستگاه‌های ورودی توسط بخش InputDevice تشریح می‌شوند. یک رایانه ممکن است چند دستگاه ورودی داشته باشد. بنابراین می‌توان چند بخش InputDevice در یک فایل پیکربندی داشت. حداقل دو بخش InputDevice باید وجود داشته باشد: یکی برای کیبورد و دیگری برای ماوس. اگر این بخش‌ها ذکر نشود، از مقادیر و تنظیمات پیشفرض برای آن دستگاه استفاده خواهد شد. قالب کلی بخش InputDevice به شکل زیر است:
Section "InputDevice"
Identifier "name"
Driver "inputdriver"
options
EndSection
بخش Device
این بخش برای پیکربندی کارت گرافیک استفاده می‌شود. بنابراین یکی از بخش‌های مهم فایل پیکربندی است. قالب کلی این بخش بدین صورت است:
Section "Device"
Identifier "name"
Driver "driver"
entries
EndSection
پارامترهای Identifier و Driver اجباری هستند و حتما باید ذکر شوند. پارامتر Identifier مشخص کننده یک نام منحصربه‌فرد برای کارت گرافیک است. پارامتر Driver هم درایوری که باید برای این کارت گرافیک استفاده شود را مشخص می‌کند. درایورهای مختلف، پارامترهای مختلفی دارند.
بخش Monitor
همانطور که از نام آن پیداست، این بخش مربوط به تنظیمات صفحه نمایش است. یک رایانه می‌تواند چند صفحه نمایش داشته باشد. بنابراین می‌توان چند بخش Monitor در فایل پیکربندی داشت. این بخش مشخصاتی مانند مدل مانیتور، شرکت سازنده آن، طول و عرض صفحه نمایش و … را در بر می‌گیرد.
بخش Screen
این قسمت مشخصات یک دستگاه خروجی را تشریح می‌کند. یک دستگاه خروجی، از ترکیب یک کارت گرافیک و یک مانیتور تشکیل می‌شود. بنابراین در این بخش باید کارت گرافیک و مانیتور را هم مشخص کنید. قالب کلی این بخش به شکل زیر است:
Section "Screen"
Identifier "name"
Device "devid"
Monitor "monid"
entries
SubSection "Display"
entries
EndSubSection
EndSection
بخش ServerLayout
یک ”server layout” از ترکیب یک بخش Screen و یک بخش InputDevice تشکیل می‌شود. به عبارتی دیگر، این بخش دستگاه‌های ورودی و دستگاههای خروجی را با یکدیگر ترکیب می‌کند. به همین دلیل این بخش در بالاترین سطح قرار می‌گیرد. پارامترهای این بخش با بخش ServerFlags یکسان است.