| keyd-application-mapper(1) | General Commands Manual | keyd-application-mapper(1) |
نام (NAME)
keyd-application-mapper - نگاشت مجدد کلیدها هنگام تغییر فوکوس پنجره
خلاصه دستور (SYNOPSIS)
keyd-application-mapper [-d|--daemonize] [-v|--verbose]
گزینهها (OPTIONS)
-v, --verbose
-d, --daemonize
توضیحات (DESCRIPTION)
اسکریپتی که فایل ~/.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 پشتیبانی میشود.
نصب (INSTALLATION)
نصب این ابزار به سادگی با اجرای دستور keyd-application-mapper -d در جایی از منطق مقداردهی اولیهٔ کارساز نمایش شما (مانند ~/.xinitrc یا ~/.xsession) انجام میشود. اگر از گنوم (Gnome) استفاده میکنید، اجرای keyd-application-mapper برای نخستین بار افزونهای را نصب خواهد کرد که چرخهٔ حیات اسکریپت را مدیریت میکند.
برای این که این قابلیت به درستی کار کند، keyd باید در حال اجرا باشد و کاربر باید به /var/run/keyd.socket دسترسی داشته باشد (یعنی عضو گروه keyd باشد).
متغیرهای محیطی (ENVIRONMENT VARIABLES)
KEYD_DEBUG
نکتهای درباره امنیت (A NOTE ON SECURITY)
هر کاربری که بتواند با برنامهای که مستقیماً دستگاههای ورودی را کنترل میکند تعامل داشته باشد، باید دارای دسترسی کامل به سیستم فرض شود.
اگرچه keyd به دلیل میانجیگری دسترسی از طریق یک سازوکار IPC (به جای اعطای دسترسی کلی به کاربران برای /dev/input/* و /dev/uinput) جداسازی اندکی بهتری نسبت به سایر ابزارهای نگاشت کلید ارائه میدهد، اما هنوز فرصتی برای سوءاستفاده فراهم میکند و باید با احتیاط لازم با آن رفتار شود.
بهویژه، دسترسی به /var/run/keyd.socket فقط باید به کاربران مورد اعتماد اعطا شود و با گروه keyd باید با همان حساسیت و احترامی که برای wheel قائل میشوید برخورد گردد.
| 2025-09-11 |