.\" Generated by scdoc 1.11.4 .\" 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 "RIVERCTL" "1" "2026-05-07" .PP .SH "نام (NAME)" .PP riverctl \- رابط خط فرمان برای کنترل و پیکربندی ریور (river) .PP .SH "خلاصه دستور (SYNOPSIS)" .PP \fBriverctl\fR [\fIگزینه‌ها\fR] \fIcommand\fR [\fIآرگومان‌های ویژه دستور\fR] .PP .SH "توضیحات (DESCRIPTION)" .PP ابزار \fBriverctl\fR یک ابزار خط فرمانی است که برای کنترل و پیکربندی river از طریق پروتکل وی‌لند (Wayland) به کار می‌رود.\& .PP .SH "گزینه‌ها (OPTIONS)" .PP \fB-h\fR .RS 4 نمایش پیام راهنما و خروج.\& .PP .RE \fB-version\fR .RS 4 نمایش شماره نسخه و خروج.\& .PP .RE .SH "اصطلاحات (TERMINOLOGY)" .PP این صفحه راهنما از اصطلاحاتی استفاده می‌کند که ممکن است برای برخی گیج‌کننده باشد، چرا که بیشتر از کاربرد آن‌ها در سایر پروژه‌های وی‌لند سرچشمه می‌گیرند.\& .PP واژه‌های \fBکامپوزیتور (compositor)\fR، کارساز نمایش (display server)، کارساز وی‌لند (Wayland server) و غیره روش‌هایی برای اشاره به خود river هستند.\& .PP یک \fBنما (view)\fR (یا \fBtoplevel\fR) چیزی است که بیشتر افراد آن را پنجره می‌نامند.\& .PP یک \fBخروجی (output)\fR مترادفی برای یک صفحه‌نمایش یا نمایشگر (مانیتور) است.\& .PP \fBبرچسب‌ها (Tags)\fR روش river برای تقسیم نماهای یک خروجی به گروه‌ها (نه لزوماً مجزا) هستند که مشابه‌ میزکارهای مجازی (workspaces) عمل می‌کنند.\& .PP .SH "دستورات (COMMANDS)" .PP .SS "عملیات (ACTIONS)" .PP \fBclose\fR .RS 4 بستن نمای دارای فوکوس.\& .PP .RE \fBexit\fR .RS 4 خروج از کامپوزیتور و خاتمه دادن به نشست وی‌لند.\& .PP .RE \fBfocus-output\fR \fBnext\fR|\fBprevious\fR|\fBup\fR|\fBright\fR|\fBdown\fR|\fBleft\fR|\fIname\fR .RS 4 انتقال فوکوس به خروجی بعدی یا قبلی، نزدیک‌ترین خروجی در هر جهت، یا خروجی مشخص‌شده بر اساس نام.\& .PP .RE \fBfocus-view\fR [\fB-skip-floating\fR] \fBnext\fR|\fBprevious\fR|\fBup\fR|\fBdown\fR|\fBleft\fR|\fBright\fR .RS 4 انتقال فوکوس به نمای بعدی یا قبلی در پشته، یا نزدیک‌ترین نما در هر جهت.\& .PP .PD 0 .IP \(bu 4 \fB-skip-floating\fR: نادیده گرفتن نماهای شناور و انتقال فوکوس فقط به نماهای کاشی‌شده (tiled).\& .PD .PP .RE \fBmove\fR \fBup\fR|\fBdown\fR|\fBleft\fR|\fBright\fR \fIdelta\fR .RS 4 جابه‌جا کردن نمای دارای فوکوس در جهت مشخص‌شده به میزان \fIdelta\fR پیکسل منطقی.\& وضعیت نما به شناور تغییر خواهد کرد.\& .PP .RE \fBresize\fR \fBhorizontal\fR|\fBvertical\fR \fIdelta\fR .RS 4 تغییر اندازه نمای دارای فوکوس در امتداد محور مشخص‌شده به میزان \fIdelta\fR پیکسل منطقی.\& وضعیت نما به شناور تغییر خواهد کرد.\& .PP .RE \fBsnap\fR \fBup\fR|\fBdown\fR|\fBleft\fR|\fBright\fR .RS 4 چسباندن نمای دارای فوکوس به لبه صفحه‌نمایش مشخص‌شده.\& وضعیت نما به شناور تغییر خواهد کرد.\& .PP .RE \fBsend-to-output\fR [\fB-current-tags\fR] \fBnext\fR|\fBprevious\fR|\fBup\fR|\fBright\fR|\fBdown\fR|\fBleft\fR|\fIname\fR .RS 4 ارسال نمای دارای فوکوس به خروجی بعدی یا قبلی، نزدیک‌ترین خروجی در هر جهت، یا خروجی مشخص‌شده بر اساس نام.\& .PP .PD 0 .IP \(bu 4 \fB-current-tags\fR: اختصاص برچسب‌های دارای فوکوس فعلی خروجی مقصد به نما.\& .PD .PP .RE \fBspawn\fR \fIshell_command\fR .RS 4 اجرای \fIshell_command\fR با استفاده از `/bin/sh -c \fIshell_command\fR`.\& توجه داشته باشید که \fBspawn\fR فقط یک آرگومان می‌گیرد.\& برای اجرای دستوری که چند آرگومان دارد، قرار دادن دستور در گیومه توصیه می‌شود.\& .PP .RE \fBswap\fR \fBnext\fR|\fBprevious\fR|\fBup\fR|\fBdown\fR|\fBleft\fR|\fBright\fR .RS 4 جابه‌جا کردن (تعویض جایگاه) نمای دارای فوکوس با نمای غیرشناور بعدی یا قبلی در پشته، یا نزدیک‌ترین نمای غیرشناور در هر جهت.\& .PP .RE \fBtoggle-float\fR .RS 4 تغییر وضعیت شناور بودن نمای دارای فوکوس (فعال/غیرفعال).\& .PP .RE \fBtoggle-fullscreen\fR .RS 4 تغییر وضعیت تمام‌صفحه نمای دارای فوکوس (فعال/غیرفعال).\& .PP .RE \fBzoom\fR .RS 4 انتقال نمای دارای فوکوس به بالاترین سطح پشته چیدمان.\& اگر بالاترین نما در پشته از قبل فوکوس داشته باشد، نمای دوم ارتقا می‌یابد.\& .PP .RE \fBdefault-layout\fR \fInamespace\fR .RS 4 تنظیم فضای نام چیدمان (layout namespace) پیش‌فرض برای استفاده توسط تمام خروجی‌ها.\& .PP .RE \fBoutput-layout\fR \fInamespace\fR .RS 4 تنظیم فضای نام چیدمان خروجی دارای فوکوس فعلی، که بر مقدار تنظیم‌شده توسط \fBdefault-layout\fR (در صورت وجود) مقدم خواهد بود.\& .PP .RE \fBsend-layout-cmd\fR \fInamespace\fR \fIcommand\fR .RS 4 ارسال \fIcommand\fR به تولیدکننده چیدمان (layout generator) روی خروجی دارای فوکوس فعلی با \fInamespace\fR داده‌شده، در صورت وجود.\& دستورات قابل فهم برای هر تولیدکننده چیدمان به خود آن بستگی دارد.\& برای rivertile، مستندات موجود در صفحه راهنمای \fBrivertile\fR(1) را ببینید.\& .PP .RE .SS "مدیریت برچسب‌ها (TAG MANAGEMENT)" .PP برچسب‌ها شبیه به فضاهای کاری (workspaces) هستند اما انعطاف‌پذیری بیشتری دارند.\& شما می‌توانید چند برچسب را به یک نما اختصاص دهید و همزمان چند برچسب را فوکوس کنید.\& هنگام تعامل با river، از فیلدهای بیتی (bitfields) برای توصیف مجموعه‌ای از برچسب‌ها استفاده می‌شود.\& بنابراین دستورات زیر یک عدد معمولی در مبنای ۱۰ را به عنوان آرگومان دریافت می‌کنند، اما معنای آن‌ها در قالب دودویی (باینری) به بهترین شکل فهمیده می‌شود.\& عدد دودویی 000000001 نمایانگر مجموعه‌ای است که فقط شامل برچسب ۱ است، در حالی که 100001101 مجموعه‌ای شامل برچسب‌های ۱، ۳، ۴ و ۹ را نشان می‌دهد.\& .PP هنگامی که یک نما ایجاد می‌شود، برچسب‌های دارای فوکوس فعلی خروجی به آن اختصاص می‌یابد.\& .PP همواره باید حداقل یک برچسب فوکوس داشته باشد و به هر نما باید حداقل یک برچسب اختصاص داده شود.\& عملیاتی که هر یک از این شرایط را نقض کند توسط river نادیده گرفته می‌شود.\& .PP \fBset-focused-tags\fR \fItags\fR .RS 4 نمایش نماهای دارای برچسب‌های متناظر با بیت‌های ۱ شده‌ی \fItags\fR روی خروجی دارای فوکوس فعلی.\& .PP .RE \fBset-view-tags\fR \fItags\fR .RS 4 اختصاص برچسب‌های متناظر با بیت‌های ۱ شده‌ی \fItags\fR به نمای دارای فوکوس فعلی.\& .PP .RE \fBtoggle-focused-tags\fR \fItags\fR .RS 4 تغییر وضعیت نمایانی نماهای دارای برچسب‌های متناظر با بیت‌های ۱ شده‌ی \fItags\fR روی خروجی دارای فوکوس فعلی.\& .PP .RE \fBtoggle-view-tags\fR \fItags\fR .RS 4 تغییر وضعیت برچسب‌های متناظر با بیت‌های ۱ شده‌ی \fItags\fR برای نمای دارای فوکوس فعلی.\& .PP .RE \fBspawn-tagmask\fR \fItagmask\fR .RS 4 تنظیم یک \fItagmask\fR برای فیلتر کردن برچسب‌های اختصاص‌یافته به نماهای تازه ایجادشده.\& این ماسک با عملگر AND بیتی روی برچسب‌های نماهای جدید اعمال می‌شود.\& به عنوان مثال اگر برچسب‌های 000011111 فوکوس باشند و مقدار \fItagmask\fR برابر 111110001 باشد، به نمای جدید برچسب‌های 000010001 اختصاص داده خواهد شد.\& اگر پس از فیلتر کردن هیچ برچسبی باقی نماند، \fItagmask\fR نادیده گرفته می‌شود.\& .PP .RE \fBfocus-previous-tags\fR .RS 4 تنظیم برچسب‌ها به مقدار پیشین آن‌ها در خروجی دارای فوکوس فعلی، که امکان جابه‌جایی رفت‌وبرگشتی بین ۲ چینش برچسب را فراهم می‌سازد.\& .PP .RE \fBsend-to-previous-tags\fR .RS 4 اختصاص برچسب‌های قبلی خروجی دارای فوکوس فعلی به نمای دارای فوکوس فعلی.\& .PP .RE .SS "نگاشت کلیدها و رویدادها (MAPPINGS)" .PP نگاشت‌ها در river حالتی (modal) هستند.\& هر نگاشت با یک حالت (mode) پیوند دارد و تنها زمانی فعال است که در آن حالت باشید.\& دو حالت ویژه وجود دارد: "normal" و "locked".\& حالت normal حالت اولیه هنگام راه‌اندازی است.\& حالت locked هنگام قفل شدن نشست (مثلاً به دلیل فعال شدن قفل صفحه) به طور خودکار وارد می‌شود.\& ورود یا خروج دستی از این حالت امکان‌پذیر نیست.\& .PP کلیدهای تغییردهنده (modifiers) زیر برای استفاده در نگاشت‌ها در دسترس هستند: .PP .RS 4 .PD 0 .IP \(bu 4 Shift .IP \(bu 4 Control .IP \(bu 4 Mod1 (Alt) .IP \(bu 4 Mod3 .IP \(bu 4 Mod4 (Super) .IP \(bu 4 Mod5 .IP \(bu 4 None .PD .PP .RE کلیدهای Alt و Super به ترتیب نام‌های مستعار برای Mod1 و Mod4 هستند.\& کلید None امکان ایجاد نگاشت بدون کلید تغییردهنده را فراهم می‌آورد.\& .PP کلیدها بر اساس نام keysym در XKB مشخص می‌شوند.\& برای مشاهده فهرست کامل به \fI/usr/include/xkbcommon/xkbcommon-keysyms.\&h\fR مراجعه کنید.\& .PP دکمه‌های ماوس با نام‌های کدهای رویداد ورودی لینوکس (Linux input event code) مشخص می‌شوند.\& پرکاربردترین مقادیر عبارتند از: .PP .RS 4 .PD 0 .IP \(bu 4 BTN_LEFT \- دکمه چپ ماوس .IP \(bu 4 BTN_RIGHT \- دکمه راست ماوس .IP \(bu 4 BTN_MIDDLE \- دکمه وسط ماوس .PD .PP .RE فهرست کامل را می‌توانید در \fI/usr/include/linux/input-event-codes.\&h\fR بیابید.\& .PP \fBdeclare-mode\fR \fIname\fR .RS 4 ایجاد یک حالت جدید با نام \fIname\fR.\& .PP .RE \fBenter-mode\fR \fIname\fR .RS 4 تغییر به حالت مشخص‌شده در صورت وجود.\& .PP .RE \fBmap\fR [\fB-release\fR|\fB-repeat\fR|\fB-layout\fR \fIindex\fR] \fImode\fR \fImodifiers\fR \fIkey\fR \fIcommand\fR .RS 4 اجرای \fIcommand\fR هنگام فشرده شدن \fIkey\fR در حالی که کلیدهای \fImodifiers\fR نگه داشته شده‌اند و در \fImode\fR مشخص‌شده قرار دارید.\& .PP .PD 0 .IP \(bu 4 \fB-release\fR: در صورت ارسال، فعال‌سازی با رها کردن کلید به جای فشردن آن انجام می‌شود .IP \(bu 4 \fB-repeat\fR: در صورت ارسال، فعال‌سازی مکرر تا زمان رها کردن کلید ادامه می‌یابد؛ نمی‌توان آن را همراه با \fB-release\fR استفاده کرد .IP \(bu 4 \fB-layout\fR: در صورت ارسال، یک چیدمان خاص به این نگاشت سنجاق می‌شود.\& هنگامی که نگاشت با کلید فشرده‌شده مقایسه می‌شود، این چیدمان برای ترجمه کلید صرف‌نظر از چیدمان فعال به کار می‌رود .RS 4 .IP \(bu 4 \fIindex\fR: نمایه برمبنای صفر از یک چیدمان که با دستور \fBkeyboard-layout\fR تنظیم شده است.\& اگر نمایه خارج از محدوده باشد، گزینه \fB-layout\fR هیچ تأثیری نخواهد داشت .RE .IP \(bu 4 \fImode\fR: نام حالتی که نگاشت برای آن ایجاد می‌شود .IP \(bu 4 \fImodifiers\fR: یک یا چند کلید تغییردهنده از فهرست بالا که با علامت جمع (+) از هم جدا شده‌اند.\& .IP \(bu 4 \fIkey\fR: نام keysym مربوط به XKB همان‌گونه که در بالا شرح داده شد .IP \(bu 4 \fIcommand\fR: هر دستوری که قابلیت اجرا با riverctl را داشته باشد .PD .PP .RE \fBmap-pointer\fR \fImode\fR \fImodifiers\fR \fIbutton\fR \fIaction\fR|\fIcommand\fR .RS 4 جابه‌جا کردن یا تغییر اندازه نماها یا اجرای \fIcommand\fR هنگامی که \fIbutton\fR و \fImodifiers\fR در \fImode\fR مشخص‌شده پایین نگه داشته شده‌اند.\& نمای زیر مکان‌نما فوکوس را دریافت خواهد کرد.\& .PP .PD 0 .IP \(bu 4 \fImode\fR: نام حالتی که نگاشت برای آن ایجاد می‌شود .IP \(bu 4 \fImodifiers\fR: یک یا چند کلید تغییردهنده از موارد فهرست‌شده در بالا، جداشده با علامت جمع (+).\& .IP \(bu 4 \fIbutton\fR: نام یک کد رویداد ورودی لینوکس همان‌گونه که در بالا شرح داده شد .IP \(bu 4 \fIaction\fR: یکی از مقادیر زیر: .RS 4 .IP \(bu 4 move-view .IP \(bu 4 resize-view .RE .IP \(bu 4 \fIcommand\fR: هر دستوری که قابلیت اجرا با riverctl را داشته باشد .PD .PP .RE \fBmap-switch\fR \fImode\fR \fBlid\fR|\fBtablet\fR \fIstate\fR \fIcommand\fR .RS 4 اجرای \fIcommand\fR هنگامی که river یک رویداد سوییچ خاص را دریافت می‌کند.\& .PP .PD 0 .IP \(bu 4 \fImode\fR: نام حالتی که نگاشت برای آن ایجاد می‌شود .IP \(bu 4 \fIlid\fR|\fItablet\fR: کلیدهای '\&lid switch'\& (سوییچ درب لپ‌تاپ) و '\&tablet mode switch'\& (سوییچ حالت تبلت) پشتیبانی می‌شوند .IP \(bu 4 \fIstate\fR: .RS 4 .IP \(bu 4 حالت‌های ممکن برای \fIlid\fR: .RS 4 .IP \(bu 4 close .IP \(bu 4 open .RE .IP \(bu 4 حالت‌های ممکن برای \fItablet\fR: .RS 4 .IP \(bu 4 on .IP \(bu 4 off .RE .RE .IP \(bu 4 \fIcommand\fR: هر دستوری که قابلیت اجرا با riverctl را داشته باشد .PD .PP .RE \fBunmap\fR [\fB-release\fR] \fImode\fR \fImodifiers\fR \fIkey\fR .RS 4 حذف نگاشت تعریف‌شده بر اساس آرگومان‌ها: .PP .PD 0 .IP \(bu 4 \fB-release\fR: در صورت ارسال، لغو نگاشت رها کردن کلید به جای فشردن آن انجام می‌شود .IP \(bu 4 \fImode\fR: نام حالتی که نگاشت از آن حذف می‌شود .IP \(bu 4 \fImodifiers\fR: یک یا چند کلید تغییردهنده از موارد ذکرشده در بالا، جداشده با علامت جمع (+).\& .IP \(bu 4 \fIkey\fR: نام keysym مربوط به XKB همان‌گونه که در بالا شرح داده شد .PD .PP .RE \fBunmap-pointer\fR \fImode\fR \fImodifiers\fR \fIbutton\fR .RS 4 حذف نگاشت اشاره‌گر تعریف‌شده با آرگومان‌ها: .PP .PD 0 .IP \(bu 4 \fImode\fR: نام حالتی که نگاشت از آن حذف می‌شود .IP \(bu 4 \fImodifiers\fR: یک یا چند کلید تغییردهنده از موارد ذکرشده در بالا، جداشده با علامت جمع (+).\& .IP \(bu 4 \fIbutton\fR: نام یک کد رویداد ورودی لینوکس همان‌گونه که در بالا شرح داده شد .PD .PP .RE \fBunmap-switch\fR \fImode\fR \fBlid\fR|\fBtablet\fR \fIstate\fR .RS 4 حذف نگاشت سوییچ تعریف‌شده با آرگومان‌ها: .PP .PD 0 .IP \(bu 4 \fImode\fR: نام حالتی که نگاشت از آن حذف می‌شود .IP \(bu 4 \fIlid\fR|\fItablet\fR: سوییچی که نگاشت آن باید حذف شود .IP \(bu 4 \fIstate\fR: حالتی مطابق موارد ذکرشده در بالا .PD .PP .RE .SS "قوانین (RULES)" .PP قوانین، app-id و عنوان (title) نماها را با یک الگوی \fIglob\fR تطبیق می‌دهند.\& یک \fIglob\fR رشته‌ای است که می‌تواند به طور اختیاری دارای علامت \fI*\fR در ابتدا و/یا انتها باشد.\& یک \fI*\fR در یک \fIglob\fR با صفر یا چند نویسه دلخواه در app-id یا عنوان تطبیق می‌یابد.\& .PP برای نمونه، \fIabc\fR با الگوهای \fIa*\fR، \fI*a*\fR، \fI*b*\fR، \fI*c\fR، \fIabc\fR و \fI*\fR تطبیق دارد اما با \fI*a\fR، \fIb*\fR، \fI*b\fR، \fIc*\fR یا \fIab\fR تطبیق نمی‌یابد.\& توجه داشته باشید که \fI*\fR با همه‌چیز تطبیق دارد در حالی که \fI**\fR و رشته خالی نامعتبر هستند.\& .PP \fBrule-add\fR [\fB-app-id\fR \fIglob\fR|\fB-title\fR \fIglob\fR] \fIaction\fR [\fIarguments\fR] .RS 4 افزودن قانونی که یک \fIaction\fR را روی نماهایی اعمال می‌کند که \fBapp-id\fR و \fBtitle\fR آن‌ها با الگوی \fIglob\fR متناظر تطبیق یابد.\& حذف \fB-app-id\fR یا \fB-title\fR معادل ارسال \fB-app-id\fR \fI*\fR یا \fB-title\fR \fI*\fR است.\& برخی از عملیات نیازمند یک یا چند \fIarguments\fR هستند.\& .PP انواع \fIaction\fR پشتیبانی‌شده عبارتند از: .PP .PD 0 .IP \(bu 4 \fBfloat\fR: شناور کردن نما.\& تنها بر نماهای جدید اعمال می‌شود.\& .IP \(bu 4 \fBno-float\fR: عدم شناور کردن نما.\& تنها بر نماهای جدید اعمال می‌شود.\& .IP \(bu 4 \fBssd\fR: استفاده از تزئینات سمت کارساز (server-side decorations) برای نما.\& بر نماهای جدید و موجود اعمال می‌شود.\& .IP \(bu 4 \fBcsd\fR: استفاده از تزئینات سمت کلاینت (client-side decorations) برای نما.\& بر نماهای جدید و موجود اعمال می‌شود.\& .IP \(bu 4 \fBtags\fR: تنظیم برچسب‌های اولیه نما.\& نیازمند برچسب‌ها به عنوان آرگومان است.\& تنها بر نماهای جدید اعمال می‌شود.\& .IP \(bu 4 \fBoutput\fR: تنظیم خروجی اولیه نما.\& نیازمند خروجی به عنوان آرگومان است.\& تنها بر نماهای جدید اعمال می‌شود.\& خروجی می‌تواند از طریق نام اتصال‌دهنده (مانند \fIHDMI-A-1\fR یا \fIDP-2\fR) یا از طریق شناسه به فرمت \fIMAKE MODEL SERIAL\fR مشخص شود؛ به عنوان مثال برای خروجی با سازنده: \fIHP Inc.\&\fR، مدل: \fIHP 22w\fR و سریال: \fICNC93720WF\fR، شناسه برابر خواهد بود با: \fIHP Inc.\& HP 22w CNC93720WF\fR.\& اگر سازنده، مدل یا سریال نامشخص باشد، واژه "Unknown" به جای آن استفاده می‌شود.\& .IP \(bu 4 \fBposition\fR: تنظیم موقعیت مکانی اولیه نما، با محدود شدن به کادر خروجی.\& نیازمند مختصات x و y نما به عنوان آرگومان است که هر دو باید نامنفی باشند.\& تنها بر نماهای جدید اعمال می‌شود.\& .IP \(bu 4 \fBdimensions\fR: تنظیم ابعاد اولیه نما، با رعایت محدودیت‌های نما.\& نیازمند عرض و ارتفاع نما به عنوان آرگومان است که هر دو باید نامنفی باشند.\& تنها بر نماهای جدید اعمال می‌شود.\& .IP \(bu 4 \fBfullscreen\fR: تمام‌صفحه کردن نما.\& تنها بر نماهای جدید اعمال می‌شود.\& .IP \(bu 4 \fBno-fullscreen\fR: عدم تمام‌صفحه کردن نما.\& تنها بر نماهای جدید اعمال می‌شود.\& .IP \(bu 4 \fBtearing\fR: مجاز دانستن پارگی تصویر (tearing) برای نما در حالت تمام‌صفحه، صرف‌نظر از ترجیح خود نما.\& بر نماهای جدید و موجود اعمال می‌شود.\& .IP \(bu 4 \fBno-tearing\fR: غیرفعال کردن پارگی تصویر برای نما، صرف‌نظر از ترجیح خود نما.\& بر نماهای جدید و موجود اعمال می‌شود.\& .PD .PP هر دو قانون \fBfloat\fR و \fBno-float\fR به یک فهرست افزوده می‌شوند، به این معنی که افزودن یک قانون \fBno-float\fR با آرگومان‌های یکسان با یک قانون \fBfloat\fR، آن را بازنویسی می‌کند.\& همین اصل برای قوانین \fBssd\fR و \fBcsd\fR، \fBfullscreen\fR و \fBno-fullscreen\fR، و همچنین \fBtearing\fR و \fBno-tearing\fR نیز صادق است.\& .PP اگر چندین قانون در یک فهرست با یک نمای مشخص تطبیق یابند، خاص‌ترین (دقیق‌ترین) قانون اعمال خواهد شد.\& برای نمونه در قوانین زیر .nf .RS 4 app-id title action foo bar ssd foo * csd * bar csd * baz ssd .fi .RE نمایی با app-id برابر '\&foo'\& و عنوان '\&bar'\& با وجود تطبیق با دو قانون csd، مقدار ssd را دریافت می‌کند چرا که قانون نخست خاص‌ترین است.\& افزون بر این، نمایی با app-id برابر '\&foo'\& و عنوان '\&baz'\& با وجود تطبیق با آخرین قانون در فهرست، مقدار csd را دریافت می‌کند زیرا ویژگی خاص بودن app-id بر خاص بودن عنوان اولویت دارد.\& .PP اگر یک نما با هیچ قانونی تطبیق نیابد، river به خواسته‌های csd/ssd کلاینت احترام می‌گذارد و ممکن است بر اساس روش‌های مکاشفه‌ای (heuristics) ساده که برای تشخیص نماهای شبه-پاپ‌آپ طراحی شده‌اند، نما را در وضعیت شناور آغاز کند.\& .PP اگر یک نما به صورت تمام‌صفحه آغاز شود یا شناور نباشد، قوانین \fBposition\fR و \fBdimensions\fR هیچ تأثیری نخواهند داشت.\& برای اثرگذاری آن‌ها، نما باید حتماً با یک قانون \fBfloat\fR تطبیق داده شود.\& .PP .RE \fBrule-del\fR [\fB-app-id\fR \fIglob\fR|\fB-title\fR \fIglob\fR] \fIaction\fR .RS 4 حذف قانونی که با استفاده از \fBrule-add\fR با آرگومان‌های داده‌شده ایجاد شده است.\& .PP .RE \fBlist-rules\fR \fBfloat\fR|\fBssd\fR|\fBtags\fR|\fBposition\fR|\fBdimensions\fR|\fBfullscreen\fR .RS 4 چاپ فهرست قوانین مشخص‌شده.\& خروجی از خاص‌ترین به عام‌ترین مرتب می‌شود؛ همان ترتیبی که هنگام جستجو برای یافتن تطبیق، نماها بر اساس آن بررسی می‌شوند.\& تنها نخستین قانون منطبق در فهرست بر نمای مورد نظر اثر می‌گذارد.\& .PP .RE .SS "پیکربندی (CONFIGURATION)" .PP \fBdefault-attach-mode\fR \fBtop\fR|\fBbottom\fR|\fBabove\fR|\fBbelow\fR|\fBafter \fR .RS 4 تنظیم حالت پیوست (attach mode) پیش‌فرض برای استفاده توسط همه خروجی‌ها.\& .PP مقادیر ممکن: .PD 0 .IP \(bu 4 top: افزودن نمای جدید به بالای پشته.\& .IP \(bu 4 bottom: افزودن نمای جدید به انتهای پشته.\& .IP \(bu 4 above: درج نمای جدید بالای نمای دارای فوکوس فعلی.\& .IP \(bu 4 below: درج نمای جدید زیر نمای دارای فوکوس فعلی.\& .IP \(bu 4 after : درج نمای جدید پس از N نما در پشته.\& .PD .PP توجه داشته باشید که دستور منسوخ‌شده \fBattach-mode\fR به منظور حفظ سازگاری عقب‌رو به \fBdefault-attach-mode\fR نام مستعار داده شده است.\& .PP .RE \fBoutput-attach-mode\fR \fBtop\fR|\fBbottom\fR|\fBabove\fR|\fBbelow\fR|\fBafter \fR .RS 4 تنظیم حالت پیوست خروجی دارای فوکوس فعلی، که بر مقدار default-attach-mode (در صورت وجود) تقدم دارد.\& .PP .RE \fBallow-tearing\fR \fBenabled\fR|\fBdisabled\fR .RS 4 اجازه دادن به نماهای تمام‌صفحه برای پارگی تصویر (tearing) در صورت درخواست توسط نما.\& همچنین قانون \fBtearing\fR را برای اجبار به فعال‌سازی پارگی تصویر در نماهای خاص ببینید.\& .PP .RE \fBbackground-color\fR \fI0xRRGGBB\fR|\fI0xRRGGBBAA\fR .RS 4 تنظیم رنگ پس‌زمینه.\& .PP .RE \fBborder-color-focused\fR \fI0xRRGGBB\fR|\fI0xRRGGBBAA\fR .RS 4 تنظیم رنگ حاشیه نماهای دارای فوکوس.\& .PP .RE \fBborder-color-unfocused\fR \fI0xRRGGBB\fR|\fI0xRRGGBBAA\fR .RS 4 تنظیم رنگ حاشیه نماهای بدون فوکوس.\& .PP .RE \fBborder-color-urgent\fR \fI0xRRGGBB\fR|\fI0xRRGGBBAA\fR .RS 4 تنظیم رنگ حاشیه نماهای اضطراری (urgent).\& .PP .RE \fBborder-width\fR \fIpixels\fR .RS 4 تنظیم ضخامت حاشیه به \fIpixels\fR.\& .PP .RE \fBfocus-follows-cursor\fR \fBdisabled\fR|\fBnormal\fR|\fBalways\fR .RS 4 سه حالت در دسترس وجود دارد: .PP .PD 0 .IP \(bu 4 \fIdisabled\fR: حرکت مکان‌نما بر فوکوس تأثیری نمی‌گذارد.\& این حالت پیش‌فرض است.\& .IP \(bu 4 \fInormal\fR: حرکت مکان‌نما روی یک نما باعث فوکوس شدن آن نما می‌شود.\& حرکت مکان‌نما در داخل یک نما، در صورتی که فوکوس به جای دیگری منتقل شده باشد، آن نما را مجدداً فوکوس نمی‌کند.\& .IP \(bu 4 \fIalways\fR: حرکت مکان‌نما همیشه نمایی را که زیر مکان‌نما قرار دارد فوکوس می‌کند.\& .PD .PP اگر نمایی که باید فوکوس شود روی خروجی‌ای باشد که فوکوس ندارد، فوکوس به آن خروجی تغییر می‌یابد.\& .PP .RE \fBhide-cursor\fR \fBtimeout\fR \fItimeout\fR .RS 4 پنهان کردن مکان‌نما در صورتی که در طول \fItimeout\fR میلی‌ثانیه گذشته حرکتی نداشته باشد، تا زمانی که دوباره حرکت کند.\& مقدار پیش‌فرض 0 است که پنهان‌سازی خودکار مکان‌نما را غیرفعال می‌کند.\& با هرگونه حرکت، مکان‌نما دوباره نمایش داده می‌شود.\& .PP .RE \fBhide-cursor\fR \fBwhen-typing\fR \fBenabled\fR|\fBdisabled\fR .RS 4 پنهان کردن مکان‌نما هنگام فشردن هر کلید غیرتغییردهنده.\& با هرگونه حرکت، مکان‌نما مجدداً نمایش داده می‌شود.\& .PP .RE \fBset-cursor-warp\fR \fBdisabled\fR|\fBon-output-change\fR|\fBon-focus-change\fR .RS 4 تنظیم حالت پرش مکان‌نما (cursor warp).\& دو حالت در دسترس وجود دارد: .PP .PD 0 .IP \(bu 4 \fIdisabled\fR: مکان‌نما پرش نخواهد داشت.\& این حالت پیش‌فرض است.\& .IP \(bu 4 \fIon-output-change\fR: هنگامی که خروجی دیگری فوکوس شود، مکان‌نما به مرکز آن پرش می‌کند.\& .IP \(bu 4 \fIon-focus-change\fR: هنگامی که نما/خروجی دیگری فوکوس شود، مکان‌نما به مرکز آن پرش می‌کند.\& .PD .PP .RE \fBset-repeat\fR \fIrate\fR \fIdelay\fR .RS 4 تنظیم نرخ تکرار صفحه‌کلید روی \fIrate\fR بار در ثانیه و تاخیر تکرار روی \fIdelay\fR میلی‌ثانیه.\& مقدار پیش‌فرض نرخ ۲۵ بار در ثانیه و تاخیر ۶۰۰ میلی‌ثانیه است.\& .PP .RE \fBxcursor-theme\fR \fItheme_name\fR [\fIsize\fR] .RS 4 تنظیم تم xcursor روی \fItheme_name\fR و تنظیم اختیاری \fIsize\fR.\& تم سیت (seat) پیش‌فرض مقدار پیش‌فرض را برای Xwayland تعیین می‌کند و از طریق متغیرهای محیطی \fIXCURSOR_THEME\fR و \fIXCURSOR_SIZE\fR در دسترس قرار می‌گیرد.\& .PP .RE .SS "پیکربندی ورودی (INPUT CONFIGURATION)" .PP \fBlist-inputs\fR .RS 4 فهرست کردن تمام دستگاه‌های ورودی.\& .PP .RE \fBlist-input-configs\fR .RS 4 فهرست کردن تمام پیکربندی‌های ورودی.\& .PP .RE \fBkeyboard-layout\fR [-rules \fIrules\fR] [-model \fImodel\fR] [-variant \fIvariant\fR] [-options \fIoptions\fR] \fIlayout\fR .RS 4 تنظیم چیدمان XKB برای تمام صفحه‌کلیدها.\& برای مواردی که مشخص نشده باشند از مقادیر پیش‌فرض libxkbcommon استفاده می‌شود.\& توجه داشته باشید که \fIlayout\fR می‌تواند فهرستی از چیدمان‌ها باشد که با کاما از هم جدا شده‌اند (مانند "us,de") که می‌توان با ترکیب‌های کلیدی گوناگون پیکربندی‌شده از طریق آرگومان options (مثلاً -options "grp:ctrl_space_toggle") بین آن‌ها جابه‌جا شد.\& برای مقادیر ممکن و اطلاعات بیشتر به \fBxkeyboard-config\fR(7) مراجعه فرمایید.\& .PP .RE \fBkeyboard-layout-file\fR \fIpath\fR .RS 4 تنظیم چیدمان XKB برای تمام صفحه‌کلیدها از طریق فایل keymap در مسیر داده‌شده.\& مستندات مربوط به فرمت فایل keymap مربوط به XKB در نشانی اینترنتی زیر قابل مشاهده است: https://xkbcommon.\&org/doc/current/keymap-text-format-v1.\&html .PP .RE دستور \fIinput\fR می‌تواند برای ایجاد یک قانون پیکربندی برای یک دستگاه ورودی که با \fIname\fR مشخص می‌شود، مورد استفاده قرار گیرد.\& نام (\fIname\fR) یک دستگاه ورودی شامل نوع آن، شناسه ده‌دهی تولیدکننده (vendor id)، شناسه ده‌دهی محصول (product id) و سرانجام نام اعلام‌شده توسط خودش است که با خط تیره (-) از هم جدا می‌شوند.\& الگوهای ساده انطباق (globbing) پشتیبانی می‌شوند؛ برای اطلاعات بیشتر درباره globها بخش قوانین را ببینید.\& .PP فهرستی از تمام ویژگی‌های قابل پیکربندی دستگاه در زیر آمده است.\& با این حال توجه داشته باشید که هر دستگاه ورودی ممکن است از تمام ویژگی‌ها پشتیبانی نکند.\& .PP \fBinput\fR \fIname\fR \fBevents\fR \fBenabled\fR|\fBdisabled\fR|\fBdisabled-on-external-mouse\fR .RS 4 پیکربندی اینکه آیا رویدادهای دستگاه ورودی توسط river استفاده شوند یا خیر.\& .PP .RE \fBinput\fR \fIname\fR \fBaccel-profile\fR \fBnone\fR|\fBflat\fR|\fBadaptive\fR .RS 4 تنظیم نمایه شتاب‌دهی (acceleration profile) اشاره‌گر دستگاه ورودی.\& .PP .RE \fBinput\fR \fIname\fR \fBpointer-accel\fR \fIfactor\fR .RS 4 تنظیم ضریب شتاب‌دهی اشاره‌گر دستگاه ورودی.\& نیازمند یک عدد ممیز شناور بین -1.\&0 و 1.\&0 است.\& .PP .RE \fBinput\fR \fIname\fR \fBclick-method\fR \fBnone\fR|\fBbutton-areas\fR|\fBclickfinger\fR .RS 4 تنظیم روش کلیک دستگاه ورودی.\& .PP .RE \fBinput\fR \fIname\fR \fBdrag\fR \fBenabled\fR|\fBdisabled\fR .RS 4 فعال یا غیرفعال کردن قابلیت ضربه و کشیدن (tap-and-drag) در دستگاه ورودی.\& .PP .RE \fBinput\fR \fIname\fR \fBdrag-lock\fR \fBenabled\fR|\fBdisabled\fR .RS 4 فعال یا غیرفعال کردن قابلیت قفل کشیدن (drag lock) در دستگاه ورودی.\& .PP .RE \fBinput\fR \fIname\fR \fBdisable-while-typing\fR \fBenabled\fR|\fBdisabled\fR .RS 4 فعال یا غیرفعال کردن قابلیت غیرفعال‌سازی هنگام تایپ در دستگاه ورودی.\& .PP .RE \fBinput\fR \fIname\fR \fBdisable-while-trackpointing\fR \fBenabled\fR|\fBdisabled\fR .RS 4 فعال یا غیرفعال کردن قابلیت غیرفعال‌سازی هنگام استفاده از ترک‌پوینت (trackpoint) در دستگاه ورودی.\& .PP .RE \fBinput\fR \fIname\fR \fBmiddle-emulation\fR \fBenabled\fR|\fBdisabled\fR .RS 4 فعال یا غیرفعال کردن قابلیت شبیه‌سازی کلیک وسط در دستگاه ورودی.\& .PP .RE \fBinput\fR \fIname\fR \fBnatural-scroll\fR \fBenabled\fR|\fBdisabled\fR .RS 4 فعال یا غیرفعال کردن قابلیت پیمایش طبیعی (natural scroll) در دستگاه ورودی.\& در صورت فعال بودن، جهت پیمایش معکوس می‌شود.\& .PP .RE \fBinput\fR \fIname\fR \fBscroll-factor\fR \fIfactor\fR .RS 4 تنظیم ضریب پیمایش دستگاه ورودی.\& یک مقدار مثبت بزرگتر از ۰ را می‌پذیرد.\& برای نمونه، \fIfactor\fR برابر با 0.\&5 سرعت پیمایش را نصف می‌کند، در حالی که \fIfactor\fR برابر با ۳ سرعت پیمایش را ۳ برابر خواهد کرد.\& .PP .RE \fBinput\fR \fIname\fR \fBleft-handed\fR \fBenabled\fR|\fBdisabled\fR .RS 4 فعال یا غیرفعال کردن حالت چپ‌دست در دستگاه ورودی.\& .PP .RE \fBinput\fR \fIname\fR \fBtap\fR \fBenabled\fR|\fBdisabled\fR .RS 4 فعال یا غیرفعال کردن قابلیت ضربه زدن (tap) در دستگاه ورودی.\& .PP .RE \fBinput\fR \fIname\fR \fBtap-button-map\fR \fBleft-right-middle\fR|\fBleft-middle-right\fR .RS 4 پیکربندی نگاشت دکمه‌ها برای ضربه زدن.\& .PP .PD 0 .IP \(bu 4 \fIleft-right-middle\fR: ضربه با ۱ انگشت معادل کلیک چپ، ضربه با ۲ انگشت معادل کلیک راست، ضربه با ۳ انگشت معادل کلیک وسط.\& .IP \(bu 4 \fIleft-middle-right\fR: ضربه با ۱ انگشت معادل کلیک چپ، ضربه با ۲ انگشت معادل کلیک وسط، ضربه با ۳ انگشت معادل کلیک راست.\& .PD .PP .RE \fBinput\fR \fIname\fR \fBscroll-method\fR \fBnone\fR|\fBtwo-finger\fR|\fBedge\fR|\fBbutton\fR .RS 4 تنظیم روش پیمایش دستگاه ورودی.\& .PP .PD 0 .IP \(bu 4 \fInone\fR: بدون پیمایش .IP \(bu 4 \fItwo-finger\fR: پیمایش با کشیدن همزمان دو انگشت .IP \(bu 4 \fIedge\fR: پیمایش با کشیدن انگشت در امتداد لبه .IP \(bu 4 \fIbutton\fR: پیمایش با حرکت اشاره‌گر در حین نگه داشتن یک دکمه .PD .PP .RE \fBinput\fR \fIname\fR \fBscroll-button\fR \fIbutton\fR .RS 4 تنظیم دکمه پیمایش دستگاه ورودی.\& پارامتر \fIbutton\fR نام یک کد رویداد ورودی لینوکس است.\& .PP .RE \fBinput\fR \fIname\fR \fBscroll-button-lock\fR \fBenabled\fR|\fBdisabled\fR .RS 4 فعال یا غیرفعال کردن قابلیت قفل دکمه پیمایش در دستگاه ورودی.\& در صورت فعال بودن، نیازی به نگه داشتن دکمه نیست؛ یک بار فشردن باعث می‌شود دکمه فشرده در نظر گرفته شود و فشردن دوم آن را رها می‌کند.\& .PP .RE \fBinput\fR \fIname\fR \fBmap-to-output\fR \fIoutput\fR|\fBdisabled\fR .RS 4 نگاشت ورودی به یک خروجی مشخص.\& این دستور حتی در صورتی که خروجی در حال حاضر فعال نباشد معتبر است و با متصل شدن دستگاه منجر به نگاشت آن خواهد شد.\& .PP .RE .SH "مثال‌ها (EXAMPLES)" .PP پیوند دادن Super+Return در حالت normal برای اجرای یک ترمینال \fBfoot\fR(1): .PP .RS 4 riverctl map normal Mod4 Return spawn '\&foot --app-id=foobar'\& .PP .RE پیوند دادن Super+Shift+J برای تعویض نمای دارای فوکوس با نمای نمایان بعدی: .PP .RS 4 riverctl map normal Mod4+Shift J swap next .PP .RE .SH "نویسندگان (AUTHORS)" .PP نگهداری‌شده توسط Isaac Freund با همکاری مشارکت‌کنندگان متن‌باز.\& برای کسب اطلاعات بیشتر درباره توسعه river به مراجعه کنید.\& .PP .SH "همچنین ببینید (SEE ALSO)" .PP \fBriver\fR(1), \fBrivertile\fR(1)