منابع اکس

منابع اکس  پارامترهایی هستند که به برنامه‌های کلاینت اکس ارسال می‌شوند. این پارامترها معمولاً برای تغییر شکل ظاهری برنامه استفاده می‌شوند. مثلاً فونت‌هایی که برنامه برای دکمه‌ها استفاده می‌کند، رنگ پس‌زمینه منوها و دیگر قسمت‌های برنامه، مختصات پنجره و ... این پارامترها یا درهنگام اجرای برنامه از طریق خط فرمان به آن ارسال می‌شوند، یا اینکه در یک فایل پیکربندی نوشته می‌شوند و برنامه با خواندن این فایل آن‌ها را اعمال می‌کند. این فایل پیکربندی معمولاً در مسیر ~/.Xdefaults قرار دارد.

قالب 
در سطح پروتکل اکس، منابع رشته‌هایی هستند که در سرور ذخیره می‌شوند و معنای خاصی هم برای سرور ندارند. کتابخانه‌ها و برنامه‌های کلاینت اکس این پارامترها را از سرور دریافت کرده و آن‌ها را تفسیر می‌کنند. بنابراین نحو  و مفهوم این رشته‌ها توسط کلاینتهای اکس مشخص می‌شود. هر منبع اکس ، مشخص‌کننده یک پارامتر برای خود برنامه یا یکی از مؤلفه‌های  آن برنامه است. قالب کلی یک منبع به شکل زیر است:

application.component.subcomponent.subcomponent.attribute: value

منبع بالا، مقدار یک ویژگی به نام attribute را برای مؤلفه‌ای به نام component.subcomponent.subcomponent در برنامه‌ای به نام application مشخص می‌کند. منابع معمولاً برای مشخص کردن پارامترهای ویجت‌ها استفاده می‌شوند. از آنجا که این ویجت‌ها در یک درخت چیده می‌شوند، دنبالهٔ اسامیِ مؤلفه/زیرمولفه برای شناسایی یک ویجت خاص در درخت استفاده می‌شود. به عبارت دیگر، دنبالهٔ اسامیِ مؤلفه/زیرمولفه همان مسیر ویجت مورد نظر در درخت است. مقدار یک منبع، (در مثال بالا کلمه value) به یکی از صفت‌های ویجت مورد نظر منتسب می‌شود. مثل فونت، رنگ پس‌زمینه و ...

با استفاده از یک منبع، می‌توان پارامترهای یکسانی را برای چند برنامه یا چند مؤلفه در یک برنامه ارسال کرد. این کار با استفاده از wildcardها انجام می‌شود. کاراکتر ? برای مشخص کردن نام یک برنامه یا نام یکی از مؤلفه‌های آن برنامه استفاده می‌شود. از کاراکتر * برای مشخص کردن تعداد دلخواهی از برنامه‌ها یا مؤلفه‌ها استفاده می‌شود. از این کاراکترها می‌توان در هر جایی به غیر از آخرین قسمت استفاده کرد. به عبارت دیگر یک صفت (در مثال بالا کلمه attribute) نمی‌تواند؟ یا * باشد.

در حالی که منابع می‌توانند به شکل آزادانه با استفاده از wildcardها مشخص شوند، پرس‌وجو برای مقدار آن منبع باید به شکل صریح باشد. برای مثال، یک منبع می‌تواند رنگ پس‌زمینه تمام مؤلفه‌های برنامه xmail را به صورت زیر مشخص کند:

xmail*background: red

با این حال وقتی که یک برنامه (برای مثال برنامه xmail، وقتی که می‌خواهد رنگ پس‌زمینه را بخواند) از طریق کتابخانه اکس به بانک اطلاعاتی منابع دسترسی پیدا می‌کند، تنها می‌تواند مقدار یک منبع خاص را درخواست دهد. برخلاف اکثر پایگاه داده‌ها، داده‌های می‌توانند به کمک wildcardها به شکل آزادانه ذخیره شوند، اما پرس و جو نمی‌تواند اینگونه باشد. به عنوان مثالی دیگر، یک برنامه می‌تواند مقدار  xmail.main.background یا xmail.toc.buttons.background را پرس‌وجو کند، اما نمی‌تواند مقدار چند مؤلفه را به صورت یکجا و با استفاده از wildcardهای؟ و * پرس‌وجو کند. (مثلاً xmail*background غیر مجاز است)

منابع 

سامانه پنجره‌ای اکس