.\" Generated by scdoc 1.11.2 .\" Complete documentation for this program is not available as a GNU info page .ie \n(.g .ds Aq \(aq .el .ds Aq ' .nh .ad l .\" Begin generated content: .TH "keyd-application-mapper" "1" "2025-09-11" .P .SH "نام (NAME)" .P keyd-application-mapper \- نگاشت مجدد کلیدها هنگام تغییر فوکوس پنجره .P .SH "خلاصه دستور (SYNOPSIS)" .P \fBkeyd-application-mapper\fR [\fB-d\fR|\fB--daemonize\fR] [\fB-v\fR|\fB--verbose\fR] .P .SH "گزینه‌ها (OPTIONS)" .P \fB-v, --verbose\fR .RS 4 نوشتن خروجی پرجزئیات.\& این گزینه شامل چاپ رویدادهای شناسایی‌شدهٔ تغییر فوکوس پنجره است.\& می‌توانید از این خروجی برای تعیین کلاس و عنوان پنجره به منظور تنظیم نگاشت‌های آن پنجره در فایل پیکربندی استفاده کنید.\& .P .RE \fB-d, --daemonize\fR .RS 4 اجرا به صورت دیمن (در پس‌زمینه)، نوشتن خروجی در \fI~/.\&config/keyd/app.\&log\fR به جای خروجی استاندارد.\& .P .RE .SH "توضیحات (DESCRIPTION)" .P اسکریپتی که فایل \fI~/.\&config/keyd/app.\&conf\fR را می‌خواند و هر زمان که پنجره‌ای با یک کلاس منطبق در کانون توجه (فوکوس) قرار گیرد، کلیدهای مقید شدهٔ ارائه‌شده را اعمال می‌کند.\& .P می‌توانید هر بخش را به عنوان مجموعه‌ای از ماسک‌های ویژهٔ برنامه در نظر بگیرید که بر روی قوانین سراسری تعریف‌شده در \fI/etc/keyd/*.\&conf\fR اعمال می‌شوند.\& .P فایل پیکربندی ساختار زیر را دارد: .P .nf .RS 4 [] \&.\&.\&. .fi .RE .P که در آن \fI\fR دارای یکی از شکل‌های زیر است: .P .nf .RS 4 [] # Match by window class [|] # Match by class and title .fi .RE .P و هر \fI<expression>\fR یک آرگومان معتبر برای \fIkeyd bind\fR است (بخش \fBBindings\fR را ببینید).\& .P مفاهیم \fI<class exp>\fR و \fI<title exp>\fR رشته‌هایی هستند که نام‌های کلاس و عنوان پنجره را برای تطبیق توصیف می‌کنند، و می‌توانند به صورت اختیاری شامل نویسه‌های عمومی یونیکس (*) باشند.\& برای نمونه، \fI[gnome|*find*]\fR با هر پنجره‌ای با کلاس \fIgnome\fR و عنوانی که حاوی زیررشتهٔ \fIfind\fR باشد مطابقت خواهد داشت.\& .P برای مثال: .P .nf .RS 4 [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 .fi .RE .P هنگامی که پنجره‌ای با کلاسی که با '\&st-'\& شروع می‌شود (مانند st-256color) فعال باشد، \fIA-1\fR را به رشتهٔ '\&Inside st'\& نگاشت مجدد خواهد کرد.\& .P در صورتی که برنامه با گزینهٔ \fI-v, --verbose\fR راه‌اندازی شده باشد، می‌توان نام‌های کلاس و عنوان پنجره را با بررسی خروجی به دست آورد.\& اگر برنامه به صورت دیمن اجرا شده باشد، می‌توانید خروجی فایل گزارش را با فرمانی مانند \fItail -f ~/.\&config/keyd/app.\&log\fR بخوانید.\& همچنین بارگذاری مجدد می‌تواند با ارسال یک سیگنال USR1 به اسکریپت آغاز شود.\& .P در حال حاضر از X، Sway و Gnome پشتیبانی می‌شود.\& .P .SH "نصب (INSTALLATION)" .P نصب این ابزار به سادگی با اجرای دستور \fIkeyd-application-mapper -d\fR در جایی از منطق مقداردهی اولیهٔ کارساز نمایش شما (مانند \fI~/.\&xinitrc\fR یا \fI~/.\&xsession\fR) انجام می‌شود.\& اگر از گنوم (Gnome) استفاده می‌کنید، اجرای \fIkeyd-application-mapper\fR برای نخستین بار افزونه‌ای را نصب خواهد کرد که چرخهٔ حیات اسکریپت را مدیریت می‌کند.\& .P برای این که این قابلیت به درستی کار کند، keyd باید در حال اجرا باشد و کاربر باید به \fB/var/run/keyd.\&socket\fR دسترسی داشته باشد (یعنی عضو گروه \fBkeyd\fR باشد).\& .P .SH "متغیرهای محیطی (ENVIRONMENT VARIABLES)" .P \fBKEYD_DEBUG\fR .RS 4 سطح گزارش اشکال‌زدایی.\& مقادیر \fI0\fR و \fI1\fR می‌توانند مشخص شوند (پیش‌فرض: 0).\& .P .RE .SH "نکته‌ای درباره امنیت (A NOTE ON SECURITY)" .P \fBهر کاربری که بتواند با برنامه‌ای که مستقیماً دستگاه‌های ورودی را کنترل می‌کند تعامل داشته باشد، باید دارای دسترسی کامل به سیستم فرض شود.\&\fR .P اگرچه keyd به دلیل میانجی‌گری دسترسی از طریق یک سازوکار IPC (به جای اعطای دسترسی کلی به کاربران برای /dev/input/* و /dev/uinput) جداسازی اندکی بهتری نسبت به سایر ابزارهای نگاشت کلید ارائه می‌دهد، اما هنوز فرصتی برای سوءاستفاده فراهم می‌کند و باید با احتیاط لازم با آن رفتار شود.\& .P به‌ویژه، دسترسی به \fB/var/run/keyd.\&socket\fR فقط باید به کاربران مورد اعتماد اعطا شود و با گروه \fIkeyd\fR باید با همان حساسیت و احترامی که برای \fIwheel\fR قائل می‌شوید برخورد گردد.\& .P