RIVERCTL(1) General Commands Manual RIVERCTL(1)

riverctl - رابط خط فرمان برای کنترل و پیکربندی ریور (river)

riverctl [گزینه‌ها] command [آرگومان‌های ویژه دستور]

ابزار riverctl یک ابزار خط فرمانی است که برای کنترل و پیکربندی river از طریق پروتکل وی‌لند (Wayland) به کار می‌رود.

-h

نمایش پیام راهنما و خروج.

-version

نمایش شماره نسخه و خروج.

این صفحه راهنما از اصطلاحاتی استفاده می‌کند که ممکن است برای برخی گیج‌کننده باشد، چرا که بیشتر از کاربرد آن‌ها در سایر پروژه‌های وی‌لند سرچشمه می‌گیرند.

واژه‌های کامپوزیتور (compositor)، کارساز نمایش (display server)، کارساز وی‌لند (Wayland server) و غیره روش‌هایی برای اشاره به خود river هستند.

یک نما (view) (یا toplevel) چیزی است که بیشتر افراد آن را پنجره می‌نامند.

یک خروجی (output) مترادفی برای یک صفحه‌نمایش یا نمایشگر (مانیتور) است.

برچسب‌ها (Tags) روش river برای تقسیم نماهای یک خروجی به گروه‌ها (نه لزوماً مجزا) هستند که مشابه‌ میزکارهای مجازی (workspaces) عمل می‌کنند.

close

بستن نمای دارای فوکوس.

exit

خروج از کامپوزیتور و خاتمه دادن به نشست وی‌لند.

focus-output next|previous|up|right|down|left|name

انتقال فوکوس به خروجی بعدی یا قبلی، نزدیک‌ترین خروجی در هر جهت، یا خروجی مشخص‌شده بر اساس نام.

focus-view [-skip-floating] next|previous|up|down|left|right

انتقال فوکوس به نمای بعدی یا قبلی در پشته، یا نزدیک‌ترین نما در هر جهت.
•
-skip-floating: نادیده گرفتن نماهای شناور و انتقال فوکوس فقط به نماهای کاشی‌شده (tiled).

move up|down|left|right delta

جابه‌جا کردن نمای دارای فوکوس در جهت مشخص‌شده به میزان delta پیکسل منطقی. وضعیت نما به شناور تغییر خواهد کرد.

resize horizontal|vertical delta

تغییر اندازه نمای دارای فوکوس در امتداد محور مشخص‌شده به میزان delta پیکسل منطقی. وضعیت نما به شناور تغییر خواهد کرد.

snap up|down|left|right

چسباندن نمای دارای فوکوس به لبه صفحه‌نمایش مشخص‌شده. وضعیت نما به شناور تغییر خواهد کرد.

send-to-output [-current-tags] next|previous|up|right|down|left|name

ارسال نمای دارای فوکوس به خروجی بعدی یا قبلی، نزدیک‌ترین خروجی در هر جهت، یا خروجی مشخص‌شده بر اساس نام.
•
-current-tags: اختصاص برچسب‌های دارای فوکوس فعلی خروجی مقصد به نما.

spawn shell_command

اجرای shell_command با استفاده از `/bin/sh -c shell_command`. توجه داشته باشید که spawn فقط یک آرگومان می‌گیرد. برای اجرای دستوری که چند آرگومان دارد، قرار دادن دستور در گیومه توصیه می‌شود.

swap next|previous|up|down|left|right

جابه‌جا کردن (تعویض جایگاه) نمای دارای فوکوس با نمای غیرشناور بعدی یا قبلی در پشته، یا نزدیک‌ترین نمای غیرشناور در هر جهت.

toggle-float

تغییر وضعیت شناور بودن نمای دارای فوکوس (فعال/غیرفعال).

toggle-fullscreen

تغییر وضعیت تمام‌صفحه نمای دارای فوکوس (فعال/غیرفعال).

zoom

انتقال نمای دارای فوکوس به بالاترین سطح پشته چیدمان. اگر بالاترین نما در پشته از قبل فوکوس داشته باشد، نمای دوم ارتقا می‌یابد.

default-layout namespace

تنظیم فضای نام چیدمان (layout namespace) پیش‌فرض برای استفاده توسط تمام خروجی‌ها.

output-layout namespace

تنظیم فضای نام چیدمان خروجی دارای فوکوس فعلی، که بر مقدار تنظیم‌شده توسط default-layout (در صورت وجود) مقدم خواهد بود.

send-layout-cmd namespace command

ارسال command به تولیدکننده چیدمان (layout generator) روی خروجی دارای فوکوس فعلی با namespace داده‌شده، در صورت وجود. دستورات قابل فهم برای هر تولیدکننده چیدمان به خود آن بستگی دارد. برای rivertile، مستندات موجود در صفحه راهنمای rivertile(1) را ببینید.

برچسب‌ها شبیه به فضاهای کاری (workspaces) هستند اما انعطاف‌پذیری بیشتری دارند. شما می‌توانید چند برچسب را به یک نما اختصاص دهید و همزمان چند برچسب را فوکوس کنید. هنگام تعامل با river، از فیلدهای بیتی (bitfields) برای توصیف مجموعه‌ای از برچسب‌ها استفاده می‌شود. بنابراین دستورات زیر یک عدد معمولی در مبنای ۱۰ را به عنوان آرگومان دریافت می‌کنند، اما معنای آن‌ها در قالب دودویی (باینری) به بهترین شکل فهمیده می‌شود. عدد دودویی 000000001 نمایانگر مجموعه‌ای است که فقط شامل برچسب ۱ است، در حالی که 100001101 مجموعه‌ای شامل برچسب‌های ۱، ۳، ۴ و ۹ را نشان می‌دهد.

هنگامی که یک نما ایجاد می‌شود، برچسب‌های دارای فوکوس فعلی خروجی به آن اختصاص می‌یابد.

همواره باید حداقل یک برچسب فوکوس داشته باشد و به هر نما باید حداقل یک برچسب اختصاص داده شود. عملیاتی که هر یک از این شرایط را نقض کند توسط river نادیده گرفته می‌شود.

set-focused-tags tags

نمایش نماهای دارای برچسب‌های متناظر با بیت‌های ۱ شده‌ی tags روی خروجی دارای فوکوس فعلی.

set-view-tags tags

اختصاص برچسب‌های متناظر با بیت‌های ۱ شده‌ی tags به نمای دارای فوکوس فعلی.

toggle-focused-tags tags

تغییر وضعیت نمایانی نماهای دارای برچسب‌های متناظر با بیت‌های ۱ شده‌ی tags روی خروجی دارای فوکوس فعلی.

toggle-view-tags tags

تغییر وضعیت برچسب‌های متناظر با بیت‌های ۱ شده‌ی tags برای نمای دارای فوکوس فعلی.

spawn-tagmask tagmask

تنظیم یک tagmask برای فیلتر کردن برچسب‌های اختصاص‌یافته به نماهای تازه ایجادشده. این ماسک با عملگر AND بیتی روی برچسب‌های نماهای جدید اعمال می‌شود. به عنوان مثال اگر برچسب‌های 000011111 فوکوس باشند و مقدار tagmask برابر 111110001 باشد، به نمای جدید برچسب‌های 000010001 اختصاص داده خواهد شد. اگر پس از فیلتر کردن هیچ برچسبی باقی نماند، tagmask نادیده گرفته می‌شود.

focus-previous-tags

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

send-to-previous-tags

اختصاص برچسب‌های قبلی خروجی دارای فوکوس فعلی به نمای دارای فوکوس فعلی.

نگاشت‌ها در river حالتی (modal) هستند. هر نگاشت با یک حالت (mode) پیوند دارد و تنها زمانی فعال است که در آن حالت باشید. دو حالت ویژه وجود دارد: "normal" و "locked". حالت normal حالت اولیه هنگام راه‌اندازی است. حالت locked هنگام قفل شدن نشست (مثلاً به دلیل فعال شدن قفل صفحه) به طور خودکار وارد می‌شود. ورود یا خروج دستی از این حالت امکان‌پذیر نیست.

کلیدهای تغییردهنده (modifiers) زیر برای استفاده در نگاشت‌ها در دسترس هستند:

  • Shift
  • Control
  • Mod1 (Alt)
  • Mod3
  • Mod4 (Super)
  • Mod5
  • None

کلیدهای Alt و Super به ترتیب نام‌های مستعار برای Mod1 و Mod4 هستند. کلید None امکان ایجاد نگاشت بدون کلید تغییردهنده را فراهم می‌آورد.

کلیدها بر اساس نام keysym در XKB مشخص می‌شوند. برای مشاهده فهرست کامل به /usr/include/xkbcommon/xkbcommon-keysyms.h مراجعه کنید.

دکمه‌های ماوس با نام‌های کدهای رویداد ورودی لینوکس (Linux input event code) مشخص می‌شوند. پرکاربردترین مقادیر عبارتند از:

  • BTN_LEFT - دکمه چپ ماوس
  • BTN_RIGHT - دکمه راست ماوس
  • BTN_MIDDLE - دکمه وسط ماوس

فهرست کامل را می‌توانید در /usr/include/linux/input-event-codes.h بیابید.

declare-mode name

ایجاد یک حالت جدید با نام name.

enter-mode name

تغییر به حالت مشخص‌شده در صورت وجود.

map [-release|-repeat|-layout index] mode modifiers key command

اجرای command هنگام فشرده شدن key در حالی که کلیدهای modifiers نگه داشته شده‌اند و در mode مشخص‌شده قرار دارید.
  • -release: در صورت ارسال، فعال‌سازی با رها کردن کلید به جای فشردن آن انجام می‌شود
  • -repeat: در صورت ارسال، فعال‌سازی مکرر تا زمان رها کردن کلید ادامه می‌یابد؛ نمی‌توان آن را همراه با -release استفاده کرد
  • -layout: در صورت ارسال، یک چیدمان خاص به این نگاشت سنجاق می‌شود. هنگامی که نگاشت با کلید فشرده‌شده مقایسه می‌شود، این چیدمان برای ترجمه کلید صرف‌نظر از چیدمان فعال به کار می‌رود
•
index: نمایه برمبنای صفر از یک چیدمان که با دستور keyboard-layout تنظیم شده است. اگر نمایه خارج از محدوده باشد، گزینه -layout هیچ تأثیری نخواهد داشت
  • mode: نام حالتی که نگاشت برای آن ایجاد می‌شود
  • modifiers: یک یا چند کلید تغییردهنده از فهرست بالا که با علامت جمع (+) از هم جدا شده‌اند.
  • key: نام keysym مربوط به XKB همان‌گونه که در بالا شرح داده شد
  • command: هر دستوری که قابلیت اجرا با riverctl را داشته باشد

map-pointer mode modifiers button action|command

جابه‌جا کردن یا تغییر اندازه نماها یا اجرای command هنگامی که button و modifiers در mode مشخص‌شده پایین نگه داشته شده‌اند. نمای زیر مکان‌نما فوکوس را دریافت خواهد کرد.
  • mode: نام حالتی که نگاشت برای آن ایجاد می‌شود
  • modifiers: یک یا چند کلید تغییردهنده از موارد فهرست‌شده در بالا، جداشده با علامت جمع (+).
  • button: نام یک کد رویداد ورودی لینوکس همان‌گونه که در بالا شرح داده شد
  • action: یکی از مقادیر زیر:
  • move-view
  • resize-view
•
command: هر دستوری که قابلیت اجرا با riverctl را داشته باشد

map-switch mode lid|tablet state command

اجرای command هنگامی که river یک رویداد سوییچ خاص را دریافت می‌کند.
  • mode: نام حالتی که نگاشت برای آن ایجاد می‌شود
  • lid|tablet: کلیدهای 'lid switch' (سوییچ درب لپ‌تاپ) و 'tablet mode switch' (سوییچ حالت تبلت) پشتیبانی می‌شوند
  • state:
•
حالت‌های ممکن برای lid:
  • close
  • open
•
حالت‌های ممکن برای tablet:
  • on
  • off
•
command: هر دستوری که قابلیت اجرا با riverctl را داشته باشد

unmap [-release] mode modifiers key

حذف نگاشت تعریف‌شده بر اساس آرگومان‌ها:
  • -release: در صورت ارسال، لغو نگاشت رها کردن کلید به جای فشردن آن انجام می‌شود
  • mode: نام حالتی که نگاشت از آن حذف می‌شود
  • modifiers: یک یا چند کلید تغییردهنده از موارد ذکرشده در بالا، جداشده با علامت جمع (+).
  • key: نام keysym مربوط به XKB همان‌گونه که در بالا شرح داده شد

unmap-pointer mode modifiers button

حذف نگاشت اشاره‌گر تعریف‌شده با آرگومان‌ها:
  • mode: نام حالتی که نگاشت از آن حذف می‌شود
  • modifiers: یک یا چند کلید تغییردهنده از موارد ذکرشده در بالا، جداشده با علامت جمع (+).
  • button: نام یک کد رویداد ورودی لینوکس همان‌گونه که در بالا شرح داده شد

unmap-switch mode lid|tablet state

حذف نگاشت سوییچ تعریف‌شده با آرگومان‌ها:
  • mode: نام حالتی که نگاشت از آن حذف می‌شود
  • lid|tablet: سوییچی که نگاشت آن باید حذف شود
  • state: حالتی مطابق موارد ذکرشده در بالا

قوانین، app-id و عنوان (title) نماها را با یک الگوی glob تطبیق می‌دهند. یک glob رشته‌ای است که می‌تواند به طور اختیاری دارای علامت * در ابتدا و/یا انتها باشد. یک * در یک glob با صفر یا چند نویسه دلخواه در app-id یا عنوان تطبیق می‌یابد.

برای نمونه، abc با الگوهای a*، *a*، *b*، *c، abc و * تطبیق دارد اما با *a، b*، *b، c* یا ab تطبیق نمی‌یابد. توجه داشته باشید که * با همه‌چیز تطبیق دارد در حالی که ** و رشته خالی نامعتبر هستند.

rule-add [-app-id glob|-title glob] action [arguments]

افزودن قانونی که یک action را روی نماهایی اعمال می‌کند که app-id و title آن‌ها با الگوی glob متناظر تطبیق یابد. حذف -app-id یا -title معادل ارسال -app-id * یا -title * است. برخی از عملیات نیازمند یک یا چند arguments هستند.

انواع action پشتیبانی‌شده عبارتند از:

  • float: شناور کردن نما. تنها بر نماهای جدید اعمال می‌شود.
  • no-float: عدم شناور کردن نما. تنها بر نماهای جدید اعمال می‌شود.
  • ssd: استفاده از تزئینات سمت کارساز (server-side decorations) برای نما. بر نماهای جدید و موجود اعمال می‌شود.
  • csd: استفاده از تزئینات سمت کلاینت (client-side decorations) برای نما. بر نماهای جدید و موجود اعمال می‌شود.
  • tags: تنظیم برچسب‌های اولیه نما. نیازمند برچسب‌ها به عنوان آرگومان است. تنها بر نماهای جدید اعمال می‌شود.
  • output: تنظیم خروجی اولیه نما. نیازمند خروجی به عنوان آرگومان است. تنها بر نماهای جدید اعمال می‌شود. خروجی می‌تواند از طریق نام اتصال‌دهنده (مانند HDMI-A-1 یا DP-2) یا از طریق شناسه به فرمت MAKE MODEL SERIAL مشخص شود؛ به عنوان مثال برای خروجی با سازنده: HP Inc.، مدل: HP 22w و سریال: CNC93720WF، شناسه برابر خواهد بود با: HP Inc. HP 22w CNC93720WF. اگر سازنده، مدل یا سریال نامشخص باشد، واژه "Unknown" به جای آن استفاده می‌شود.
  • position: تنظیم موقعیت مکانی اولیه نما، با محدود شدن به کادر خروجی. نیازمند مختصات x و y نما به عنوان آرگومان است که هر دو باید نامنفی باشند. تنها بر نماهای جدید اعمال می‌شود.
  • dimensions: تنظیم ابعاد اولیه نما، با رعایت محدودیت‌های نما. نیازمند عرض و ارتفاع نما به عنوان آرگومان است که هر دو باید نامنفی باشند. تنها بر نماهای جدید اعمال می‌شود.
  • fullscreen: تمام‌صفحه کردن نما. تنها بر نماهای جدید اعمال می‌شود.
  • no-fullscreen: عدم تمام‌صفحه کردن نما. تنها بر نماهای جدید اعمال می‌شود.
  • tearing: مجاز دانستن پارگی تصویر (tearing) برای نما در حالت تمام‌صفحه، صرف‌نظر از ترجیح خود نما. بر نماهای جدید و موجود اعمال می‌شود.
  • no-tearing: غیرفعال کردن پارگی تصویر برای نما، صرف‌نظر از ترجیح خود نما. بر نماهای جدید و موجود اعمال می‌شود.

هر دو قانون float و no-float به یک فهرست افزوده می‌شوند، به این معنی که افزودن یک قانون no-float با آرگومان‌های یکسان با یک قانون float، آن را بازنویسی می‌کند. همین اصل برای قوانین ssd و csd، fullscreen و no-fullscreen، و همچنین tearing و no-tearing نیز صادق است.

اگر چندین قانون در یک فهرست با یک نمای مشخص تطبیق یابند، خاص‌ترین (دقیق‌ترین) قانون اعمال خواهد شد. برای نمونه در قوانین زیر

app-id  title  action
foo     bar    ssd
foo     *      csd
*       bar    csd
*       baz    ssd
نمایی با app-id برابر 'foo' و عنوان 'bar' با وجود تطبیق با دو قانون csd، مقدار ssd را دریافت می‌کند چرا که قانون نخست خاص‌ترین است. افزون بر این، نمایی با app-id برابر 'foo' و عنوان 'baz' با وجود تطبیق با آخرین قانون در فهرست، مقدار csd را دریافت می‌کند زیرا ویژگی خاص بودن app-id بر خاص بودن عنوان اولویت دارد.

اگر یک نما با هیچ قانونی تطبیق نیابد، river به خواسته‌های csd/ssd کلاینت احترام می‌گذارد و ممکن است بر اساس روش‌های مکاشفه‌ای (heuristics) ساده که برای تشخیص نماهای شبه-پاپ‌آپ طراحی شده‌اند، نما را در وضعیت شناور آغاز کند.

اگر یک نما به صورت تمام‌صفحه آغاز شود یا شناور نباشد، قوانین position و dimensions هیچ تأثیری نخواهند داشت. برای اثرگذاری آن‌ها، نما باید حتماً با یک قانون float تطبیق داده شود.

rule-del [-app-id glob|-title glob] action

حذف قانونی که با استفاده از rule-add با آرگومان‌های داده‌شده ایجاد شده است.

list-rules float|ssd|tags|position|dimensions|fullscreen

چاپ فهرست قوانین مشخص‌شده. خروجی از خاص‌ترین به عام‌ترین مرتب می‌شود؛ همان ترتیبی که هنگام جستجو برای یافتن تطبیق، نماها بر اساس آن بررسی می‌شوند. تنها نخستین قانون منطبق در فهرست بر نمای مورد نظر اثر می‌گذارد.

default-attach-mode top|bottom|above|below|after <N>

تنظیم حالت پیوست (attach mode) پیش‌فرض برای استفاده توسط همه خروجی‌ها.

مقادیر ممکن:

  • top: افزودن نمای جدید به بالای پشته.
  • bottom: افزودن نمای جدید به انتهای پشته.
  • above: درج نمای جدید بالای نمای دارای فوکوس فعلی.
  • below: درج نمای جدید زیر نمای دارای فوکوس فعلی.
  • after <N>: درج نمای جدید پس از N نما در پشته.

توجه داشته باشید که دستور منسوخ‌شده attach-mode به منظور حفظ سازگاری عقب‌رو به default-attach-mode نام مستعار داده شده است.

output-attach-mode top|bottom|above|below|after <N>

تنظیم حالت پیوست خروجی دارای فوکوس فعلی، که بر مقدار default-attach-mode (در صورت وجود) تقدم دارد.

allow-tearing enabled|disabled

اجازه دادن به نماهای تمام‌صفحه برای پارگی تصویر (tearing) در صورت درخواست توسط نما. همچنین قانون tearing را برای اجبار به فعال‌سازی پارگی تصویر در نماهای خاص ببینید.

background-color 0xRRGGBB|0xRRGGBBAA

تنظیم رنگ پس‌زمینه.

border-color-focused 0xRRGGBB|0xRRGGBBAA

تنظیم رنگ حاشیه نماهای دارای فوکوس.

border-color-unfocused 0xRRGGBB|0xRRGGBBAA

تنظیم رنگ حاشیه نماهای بدون فوکوس.

border-color-urgent 0xRRGGBB|0xRRGGBBAA

تنظیم رنگ حاشیه نماهای اضطراری (urgent).

border-width pixels

تنظیم ضخامت حاشیه به pixels.

focus-follows-cursor disabled|normal|always

سه حالت در دسترس وجود دارد:
  • disabled: حرکت مکان‌نما بر فوکوس تأثیری نمی‌گذارد. این حالت پیش‌فرض است.
  • normal: حرکت مکان‌نما روی یک نما باعث فوکوس شدن آن نما می‌شود. حرکت مکان‌نما در داخل یک نما، در صورتی که فوکوس به جای دیگری منتقل شده باشد، آن نما را مجدداً فوکوس نمی‌کند.
  • always: حرکت مکان‌نما همیشه نمایی را که زیر مکان‌نما قرار دارد فوکوس می‌کند.

اگر نمایی که باید فوکوس شود روی خروجی‌ای باشد که فوکوس ندارد، فوکوس به آن خروجی تغییر می‌یابد.

hide-cursor timeout timeout

پنهان کردن مکان‌نما در صورتی که در طول timeout میلی‌ثانیه گذشته حرکتی نداشته باشد، تا زمانی که دوباره حرکت کند. مقدار پیش‌فرض 0 است که پنهان‌سازی خودکار مکان‌نما را غیرفعال می‌کند. با هرگونه حرکت، مکان‌نما دوباره نمایش داده می‌شود.

hide-cursor when-typing enabled|disabled

پنهان کردن مکان‌نما هنگام فشردن هر کلید غیرتغییردهنده. با هرگونه حرکت، مکان‌نما مجدداً نمایش داده می‌شود.

set-cursor-warp disabled|on-output-change|on-focus-change

تنظیم حالت پرش مکان‌نما (cursor warp). دو حالت در دسترس وجود دارد:
  • disabled: مکان‌نما پرش نخواهد داشت. این حالت پیش‌فرض است.
  • on-output-change: هنگامی که خروجی دیگری فوکوس شود، مکان‌نما به مرکز آن پرش می‌کند.
  • on-focus-change: هنگامی که نما/خروجی دیگری فوکوس شود، مکان‌نما به مرکز آن پرش می‌کند.

set-repeat rate delay

تنظیم نرخ تکرار صفحه‌کلید روی rate بار در ثانیه و تاخیر تکرار روی delay میلی‌ثانیه. مقدار پیش‌فرض نرخ ۲۵ بار در ثانیه و تاخیر ۶۰۰ میلی‌ثانیه است.

xcursor-theme theme_name [size]

تنظیم تم xcursor روی theme_name و تنظیم اختیاری size. تم سیت (seat) پیش‌فرض مقدار پیش‌فرض را برای Xwayland تعیین می‌کند و از طریق متغیرهای محیطی XCURSOR_THEME و XCURSOR_SIZE در دسترس قرار می‌گیرد.

list-inputs

فهرست کردن تمام دستگاه‌های ورودی.

list-input-configs

فهرست کردن تمام پیکربندی‌های ورودی.

keyboard-layout [-rules rules] [-model model] [-variant variant] [-options options] layout

تنظیم چیدمان XKB برای تمام صفحه‌کلیدها. برای مواردی که مشخص نشده باشند از مقادیر پیش‌فرض libxkbcommon استفاده می‌شود. توجه داشته باشید که layout می‌تواند فهرستی از چیدمان‌ها باشد که با کاما از هم جدا شده‌اند (مانند "us,de") که می‌توان با ترکیب‌های کلیدی گوناگون پیکربندی‌شده از طریق آرگومان options (مثلاً -options "grp:ctrl_space_toggle") بین آن‌ها جابه‌جا شد. برای مقادیر ممکن و اطلاعات بیشتر به xkeyboard-config(7) مراجعه فرمایید.

keyboard-layout-file path

تنظیم چیدمان XKB برای تمام صفحه‌کلیدها از طریق فایل keymap در مسیر داده‌شده. مستندات مربوط به فرمت فایل keymap مربوط به XKB در نشانی اینترنتی زیر قابل مشاهده است: https://xkbcommon.org/doc/current/keymap-text-format-v1.html

دستور input می‌تواند برای ایجاد یک قانون پیکربندی برای یک دستگاه ورودی که با name مشخص می‌شود، مورد استفاده قرار گیرد. نام (name) یک دستگاه ورودی شامل نوع آن، شناسه ده‌دهی تولیدکننده (vendor id)، شناسه ده‌دهی محصول (product id) و سرانجام نام اعلام‌شده توسط خودش است که با خط تیره (-) از هم جدا می‌شوند. الگوهای ساده انطباق (globbing) پشتیبانی می‌شوند؛ برای اطلاعات بیشتر درباره globها بخش قوانین را ببینید.

فهرستی از تمام ویژگی‌های قابل پیکربندی دستگاه در زیر آمده است. با این حال توجه داشته باشید که هر دستگاه ورودی ممکن است از تمام ویژگی‌ها پشتیبانی نکند.

input name events enabled|disabled|disabled-on-external-mouse

پیکربندی اینکه آیا رویدادهای دستگاه ورودی توسط river استفاده شوند یا خیر.

input name accel-profile none|flat|adaptive

تنظیم نمایه شتاب‌دهی (acceleration profile) اشاره‌گر دستگاه ورودی.

input name pointer-accel factor

تنظیم ضریب شتاب‌دهی اشاره‌گر دستگاه ورودی. نیازمند یک عدد ممیز شناور بین -1.0 و 1.0 است.

input name click-method none|button-areas|clickfinger

تنظیم روش کلیک دستگاه ورودی.

input name drag enabled|disabled

فعال یا غیرفعال کردن قابلیت ضربه و کشیدن (tap-and-drag) در دستگاه ورودی.

input name drag-lock enabled|disabled

فعال یا غیرفعال کردن قابلیت قفل کشیدن (drag lock) در دستگاه ورودی.

input name disable-while-typing enabled|disabled

فعال یا غیرفعال کردن قابلیت غیرفعال‌سازی هنگام تایپ در دستگاه ورودی.

input name disable-while-trackpointing enabled|disabled

فعال یا غیرفعال کردن قابلیت غیرفعال‌سازی هنگام استفاده از ترک‌پوینت (trackpoint) در دستگاه ورودی.

input name middle-emulation enabled|disabled

فعال یا غیرفعال کردن قابلیت شبیه‌سازی کلیک وسط در دستگاه ورودی.

input name natural-scroll enabled|disabled

فعال یا غیرفعال کردن قابلیت پیمایش طبیعی (natural scroll) در دستگاه ورودی. در صورت فعال بودن، جهت پیمایش معکوس می‌شود.

input name scroll-factor factor

تنظیم ضریب پیمایش دستگاه ورودی. یک مقدار مثبت بزرگتر از ۰ را می‌پذیرد. برای نمونه، factor برابر با 0.5 سرعت پیمایش را نصف می‌کند، در حالی که factor برابر با ۳ سرعت پیمایش را ۳ برابر خواهد کرد.

input name left-handed enabled|disabled

فعال یا غیرفعال کردن حالت چپ‌دست در دستگاه ورودی.

input name tap enabled|disabled

فعال یا غیرفعال کردن قابلیت ضربه زدن (tap) در دستگاه ورودی.

input name tap-button-map left-right-middle|left-middle-right

پیکربندی نگاشت دکمه‌ها برای ضربه زدن.
  • left-right-middle: ضربه با ۱ انگشت معادل کلیک چپ، ضربه با ۲ انگشت معادل کلیک راست، ضربه با ۳ انگشت معادل کلیک وسط.
  • left-middle-right: ضربه با ۱ انگشت معادل کلیک چپ، ضربه با ۲ انگشت معادل کلیک وسط، ضربه با ۳ انگشت معادل کلیک راست.

input name scroll-method none|two-finger|edge|button

تنظیم روش پیمایش دستگاه ورودی.
  • none: بدون پیمایش
  • two-finger: پیمایش با کشیدن همزمان دو انگشت
  • edge: پیمایش با کشیدن انگشت در امتداد لبه
  • button: پیمایش با حرکت اشاره‌گر در حین نگه داشتن یک دکمه

input name scroll-button button

تنظیم دکمه پیمایش دستگاه ورودی. پارامتر button نام یک کد رویداد ورودی لینوکس است.

input name scroll-button-lock enabled|disabled

فعال یا غیرفعال کردن قابلیت قفل دکمه پیمایش در دستگاه ورودی. در صورت فعال بودن، نیازی به نگه داشتن دکمه نیست؛ یک بار فشردن باعث می‌شود دکمه فشرده در نظر گرفته شود و فشردن دوم آن را رها می‌کند.

input name map-to-output output|disabled

نگاشت ورودی به یک خروجی مشخص. این دستور حتی در صورتی که خروجی در حال حاضر فعال نباشد معتبر است و با متصل شدن دستگاه منجر به نگاشت آن خواهد شد.

پیوند دادن Super+Return در حالت normal برای اجرای یک ترمینال foot(1):

riverctl map normal Mod4 Return spawn 'foot --app-id=foobar'

پیوند دادن Super+Shift+J برای تعویض نمای دارای فوکوس با نمای نمایان بعدی:

riverctl map normal Mod4+Shift J swap next

نگهداری‌شده توسط Isaac Freund <mail@isaacfreund.com> با همکاری مشارکت‌کنندگان متن‌باز. برای کسب اطلاعات بیشتر درباره توسعه river به https://isaacfreund.com/software/river مراجعه کنید.

river(1), rivertile(1)

2026-05-07