Compose(5) File Formats Manual Compose(5)

Compose - جدول‌های توالی کلیدهای ترکیبی X

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

پروندهٔ Compose به ترتیب زیر جستجو می‌شود:

  • اگر متغیر محیطی $XCOMPOSEFILE تنظیم شده باشد، مقدار آن به عنوان نام پروندهٔ Compose استفاده می‌شود.
  • اگر دایرکتوری خانگی کاربر دارای پرونده‌ای به نام .XCompose باشد، به عنوان پروندهٔ Compose استفاده می‌شود.
  • پروندهٔ Compose ارائه‌شده توسط سیستم با نگاشت محلی (locale) به پروندهٔ Compose از فهرست موجود در /usr/share/X11/locale/compose.dir استفاده می‌شود.

پرونده‌های Compose می‌توانند از دستورالعمل "include" استفاده کنند. این امر امکان اعمال تغییرات محلی روی پرونده‌های Compose موجود را بدون نیاز به درج مستقیم تمام محتوای آن‌ها فراهم می‌کند. برای نمونه، پروندهٔ Compose مربوط به iso8859-1 سیستم می‌تواند با خطی مانند این گنجانده شود:

include "%S/iso8859-1/Compose"

چندین جایگزینی وجود دارد که می‌توان در نام پرونده برای دستورالعمل include انجام داد:

%H
به دایرکتوری خانگی کاربر (متغیر محیطی $HOME) گسترش می‌یابد.
%L
به نام پروندهٔ Compose مختص محلی (locale) جاری (یعنی "/usr/share/X11/locale/<localename>/Compose") گسترش می‌یابد.
%S
به نام دایرکتوری سیستمی برای پرونده‌های Compose (یعنی "/usr/share/X11/locale") گسترش می‌یابد.

برای نمونه، می‌توانید با استفاده از عبارت زیر، پروندهٔ پیش‌فرض Compose را در پروندهٔ خود بگنجانید:

include "%L"
و سپس فقط قواعد اندکی را که نیاز به تغییر دارند بازنویسی کنید. قواعد Compose جدید می‌توانند اضافه شوند و قواعد پیشین جایگزین گردند.

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

EVENT [EVENT...] : RESULT [# COMMENT]

هر رویداد از یک keysym ورودی مشخص و وضعیت‌های اختیاری کلیدهای تغییردهنده (modifier) تشکیل می‌شود:

[([!] ([~] MODIFIER)...) | None] <keysym>

اگر فهرست کلیدهای تغییردهنده با "!" شروع شود، باید تطابق دقیق وجود داشته باشد. MODIFIER می‌تواند یکی از موارد Ctrl، Lock، Caps، Shift، Alt یا Meta باشد. هر تغییردهنده می‌تواند با یک نویسهٔ "~" آغاز شود تا نشان دهد که آن تغییردهنده نباید وجود داشته باشد. اگر "None" مشخص شده باشد، هیچ کلید تغییردهنده‌ای نباید وجود داشته باشد.

نتیجه (result) یک رشته، keysym یا هر دو را مشخص می‌کند که کلاینت X هنگام ورود توالی رویدادها، به عنوان ورودی دریافت می‌کند:

"STRING" | keysym | "STRING" keysym

شناسه‌های Keysym بدون پیشوند XK_ مشخص می‌شوند.

رشته‌ها می‌توانند متنی مستقیم باشند که با کدگذاری محلی مورد استفاده برای پروندهٔ Compose کدگذاری شده‌اند، یا یک کد نویسهٔ هشت‌هشتی (octal) یا شانزده‌شانزدهی (hexadecimal) اسکیپ‌شده باشند. کدهای هشت‌هشتی به صورت "\123" و کدهای شانزده‌شانزدهی به صورت "\x3a" مشخص می‌شوند. نیازی نیست در بخش سمت راست یک قاعده، علاوه بر نام keysym، رشته‌ای با کدگذاری محلی نیز مشخص شود. اگر رشته حذف شود، Xlib بر اساس محلی جاری آن را از روی keysym تشخیص می‌دهد. برای مثال، اگر قاعده‌ای به این شکل باشد:

<dead_grave> <A> : "\300" Agrave
نتیجهٔ ترکیب همیشه حرفی با کد "\300" خواهد بود. اما اگر قاعده به این شکل باشد:
<dead_grave> <A> : Agrave
نتیجه به نحوهٔ نگاشت Agrave در محلی جاری بستگی خواهد داشت.

پرونده‌ای که برای توالی‌های Compose استفاده می‌شود.
دایرکتوری مورد استفاده برای ذخیرهٔ حافظهٔ موقت (کَش) پرونده‌های Compose کامپایل‌شده.

$HOME/.XCompose
پروندهٔ پیش‌فرض Compose کاربر در صورتی که XCOMPOSEFILE تنظیم نشده باشد.
/usr/share/X11/locale/compose.dir
پرونده‌ای که مسیر پروندهٔ Compose مورد استفاده برای هر locale را فهرست می‌کند.
/usr/share/X11/locale/<localemapping>/Compose
پروندهٔ پیش‌فرض Compose سیستم برای locale مربوطه که از طریق compose.dir نگاشت شده است.
/var/cache/libx11/compose/
دایرکتوری کش سراسری سیستم برای پرونده‌های Compose کامپایل‌شده.
$HOME/.compose-cache/
دایرکتوری کش ویژهٔ هر کاربر برای پرونده‌های Compose کامپایل‌شده.

XLookupString(3), XmbLookupString(3), XwcLookupString(3), Xutf8LookupString(3), mkcomposecache(1), locale(7).
Xlib - C Language X Interface

libX11 1.8.13 X Version 11