keyd-application-mapper(1) General Commands Manual keyd-application-mapper(1)

keyd-application-mapper - نگاشت مجدد کلیدها هنگام تغییر فوکوس پنجره

keyd-application-mapper [-d|--daemonize] [-v|--verbose]

-v, --verbose

نوشتن خروجی پرجزئیات. این گزینه شامل چاپ رویدادهای شناسایی‌شدهٔ تغییر فوکوس پنجره است. می‌توانید از این خروجی برای تعیین کلاس و عنوان پنجره به منظور تنظیم نگاشت‌های آن پنجره در فایل پیکربندی استفاده کنید.

-d, --daemonize

اجرا به صورت دیمن (در پس‌زمینه)، نوشتن خروجی در ~/.config/keyd/app.log به جای خروجی استاندارد.

اسکریپتی که فایل ~/.config/keyd/app.conf را می‌خواند و هر زمان که پنجره‌ای با یک کلاس منطبق در کانون توجه (فوکوس) قرار گیرد، کلیدهای مقید شدهٔ ارائه‌شده را اعمال می‌کند.

می‌توانید هر بخش را به عنوان مجموعه‌ای از ماسک‌های ویژهٔ برنامه در نظر بگیرید که بر روی قوانین سراسری تعریف‌شده در /etc/keyd/*.conf اعمال می‌شوند.

فایل پیکربندی ساختار زیر را دارد:

[<filter>]
<expression 1>
<expression 2>
...

که در آن <filter> دارای یکی از شکل‌های زیر است:

[<class exp>]              # Match by window class
[<class exp>|<title exp>]  # Match by class and title

و هر <expression> یک آرگومان معتبر برای keyd bind است (بخش Bindings را ببینید).

مفاهیم <class exp> و <title exp> رشته‌هایی هستند که نام‌های کلاس و عنوان پنجره را برای تطبیق توصیف می‌کنند، و می‌توانند به صورت اختیاری شامل نویسه‌های عمومی یونیکس (*) باشند. برای نمونه، [gnome|*find*] با هر پنجره‌ای با کلاس gnome و عنوانی که حاوی زیررشتهٔ find باشد مطابقت خواهد داشت.

برای مثال:

[kitty]
alt.] = C-tab
alt.[ = C-S-tab
alt.t = C-S-t
[st-*]
alt.1  = macro(Inside space st)
[chromium]
control.1 = macro(Inside space chrome!)
alt.] = C-tab
alt.[ = C-S-tab
alt.t = C-t

هنگامی که پنجره‌ای با کلاسی که با 'st-' شروع می‌شود (مانند st-256color) فعال باشد، A-1 را به رشتهٔ 'Inside st' نگاشت مجدد خواهد کرد.

در صورتی که برنامه با گزینهٔ -v, --verbose راه‌اندازی شده باشد، می‌توان نام‌های کلاس و عنوان پنجره را با بررسی خروجی به دست آورد. اگر برنامه به صورت دیمن اجرا شده باشد، می‌توانید خروجی فایل گزارش را با فرمانی مانند tail -f ~/.config/keyd/app.log بخوانید. همچنین بارگذاری مجدد می‌تواند با ارسال یک سیگنال USR1 به اسکریپت آغاز شود.

در حال حاضر از X، Sway و Gnome پشتیبانی می‌شود.

نصب این ابزار به سادگی با اجرای دستور keyd-application-mapper -d در جایی از منطق مقداردهی اولیهٔ کارساز نمایش شما (مانند ~/.xinitrc یا ~/.xsession) انجام می‌شود. اگر از گنوم (Gnome) استفاده می‌کنید، اجرای keyd-application-mapper برای نخستین بار افزونه‌ای را نصب خواهد کرد که چرخهٔ حیات اسکریپت را مدیریت می‌کند.

برای این که این قابلیت به درستی کار کند، keyd باید در حال اجرا باشد و کاربر باید به /var/run/keyd.socket دسترسی داشته باشد (یعنی عضو گروه keyd باشد).

KEYD_DEBUG

سطح گزارش اشکال‌زدایی. مقادیر 0 و 1 می‌توانند مشخص شوند (پیش‌فرض: 0).

هر کاربری که بتواند با برنامه‌ای که مستقیماً دستگاه‌های ورودی را کنترل می‌کند تعامل داشته باشد، باید دارای دسترسی کامل به سیستم فرض شود.

اگرچه keyd به دلیل میانجی‌گری دسترسی از طریق یک سازوکار IPC (به جای اعطای دسترسی کلی به کاربران برای /dev/input/* و /dev/uinput) جداسازی اندکی بهتری نسبت به سایر ابزارهای نگاشت کلید ارائه می‌دهد، اما هنوز فرصتی برای سوءاستفاده فراهم می‌کند و باید با احتیاط لازم با آن رفتار شود.

به‌ویژه، دسترسی به /var/run/keyd.socket فقط باید به کاربران مورد اعتماد اعطا شود و با گروه keyd باید با همان حساسیت و احترامی که برای wheel قائل می‌شوید برخورد گردد.

2025-09-11