sway-input(5) File Formats Manual sway-input(5)

sway-input - فایل پیکربندی ورودی و دستورات

محیط Sway امکان پیکربندی دستگاه‌ها را درون فایل پیکربندی sway فراهم می‌کند. برای به دست آوردن فهرستی از شناسه‌های دستگاه‌های در دسترس، دستور swaymsg -t get_inputs را اجرا کنید. تنظیمات همچنین می‌توانند با استفاده از نویسه عمومی (wildcard) * به جای <identifier> در دستورات زیر، روی تمامی دستگاه‌های ورودی اعمال شوند. علاوه بر این، تنظیمات می‌توانند با استفاده از type:<input_type> به جای <identifier>، روی یک نوع خاص از دستگاه اعمال شوند.

در فایل پیکربندی، تنظیماتی که انتخاب‌گر خاص‌تری دارند نسبت به موارد عمومی‌تر اولویت دارند: <identifier> > type:<input_type> > *. اما هنگام اجرای دستورات ورودی در خط فرمان، تنظیمات روی تمامی دستگاه‌های ورودی منطبق اعمال می‌شوند! این بدان معناست که type:<input_type> می‌تواند تنظیمات قبلاً اعمال‌شده <identifier> را بازنویسی کند، هرچند در فایل پیکربندی اولویت با شناسه خاص بود. به طور مشابه اگر * دیرتر اعمال شود، می‌تواند هر دو تنظیمات <identifier> و type:<input_type> را بازنویسی کند.

نکته: اگر به نظر می‌رسد تنظیمات پیکربندی اعمال نمی‌شوند، می‌توانید به جای <identifier> از * استفاده کنید. اگر با نویسه عمومی کار کرد، از شناسه‌های مختلف خروجی swaymsg -t get_inputs استفاده کنید تا دستگاه ورودی صحیح را پیدا کنید.

انواع ورودی موجود در حال حاضر عبارتند از:

  • touchpad
  • pointer
  • keyboard
  • touch
  • tablet_tool
  • tablet_pad
  • switch

نکته: پیکربندی‌های نوع دستگاه (type) همزمان با شناسایی دستگاه‌ها و روی پیکربندی‌های موجود دستگاه اعمال می‌شوند.

input <identifier> repeat_delay <milliseconds>

مدت زمانی را که یک کلید باید نگه داشته شود تا تکرار آن آغاز شود (به میلی‌ثانیه) تنظیم می‌کند.

input <identifier> repeat_rate <characters per second>

نرخ تکرار کلید را پس از سپری شدن repeat_delay (به نویسه در ثانیه) تنظیم می‌کند.

برای اطلاعات بیشتر در مورد این گزینه‌های پیکربندی xkb، به xkeyboard-config(7) مراجعه کنید.

input <identifier> xkb_file <file_name>

تمامی پیکربندی‌های xkb را از یک فایل کامل .xkb اعمال می‌کند. این فایل را می‌توان با دستور xkbcomp $DISPLAY keymap.xkb استخراج کرد. این تنظیم، تنظیمات xkb_layout، xkb_model، xkb_options، xkb_rules و xkb_variant را بازنویسی می‌کند.

input <identifier> xkb_layout <layout_name>

چیدمان صفحه‌کلید مانند us یا de یا ir را تنظیم می‌کند.

می‌توان چند چیدمان را با جدا کردن آن‌ها با کاما مشخص کرد.

input <identifier> xkb_model <model_name>

مدل صفحه‌کلید را تنظیم می‌کند. این مورد بر روی برخی کلیدهای اضافی که ممکن است صفحه‌کلید شما داشته باشد تأثیر می‌گذارد.

input <identifier> xkb_options <options>

گزینه‌های پیکربندی اضافی xkb را برای صفحه‌کلید تنظیم می‌کند.

می‌توان چندین گزینه را با جدا کردن آن‌ها با کاما مشخص کرد.

input <identifier> xkb_rules <rules>

فایل‌های قوانین مورد استفاده برای ترکیب نگاشت صفحه‌کلید را مشخص می‌کند.

input <identifier> xkb_switch_layout <index>|next|prev

چیدمان فعال صفحه‌کلید را به <index> (شمارش از صفر) یا به چیدمان بعدی (next) یا قبلی (prev) در فهرست تغییر می‌دهد. اگر چیدمان بعدی یا قبلی وجود نداشته باشد، به سر دیگر فهرست می‌پرد.

این دستور زمانی کاربرد دارد که چند چیدمان با xkb_layout پیکربندی شده باشند. فهرستی از چیدمان‌های قابل تغییر را می‌توان با swaymsg -t get_inputs به دست آورد.

input <identifier> xkb_variant <variant>

گونه چیدمان صفحه‌کلید مانند dvorak یا colemak را مشخص می‌کند.

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

input <identifier> xkb_capslock enabled|disabled

کلید CapsLock را در زمان شروع فعال یا غیرفعال می‌کند؛ مقدار پیش‌فرض disabled است.

input <identifier> xkb_numlock enabled|disabled

کلید NumLock را در زمان شروع فعال یا غیرفعال می‌کند؛ مقدار پیش‌فرض disabled است.

input <identifier> tool_mode <tool> <absolute|relative>

مشخص می‌کند که حرکت ابزار تبلت باید به عنوان مطلق (absolute) در نظر گرفته شود یا نسبی (relative)؛ مقدار پیش‌فرض absolute است.

مقادیر معتبر برای <tool> در حال حاضر عبارتند از "pen"، "eraser"، "brush"، "pencil"، "airbrush" و نویسه عمومی * که با تمام ابزارها مطابقت دارد.

ابزارهای ماوس و لنز این تنظیم را نادیده می‌گیرند و همیشه به صورت نسبی در نظر گرفته می‌شوند.

input <identifier> map_to_output <identifier>

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

نویسه عمومی * می‌تواند برای نگاشت دستگاه ورودی به کل چیدمان دسکتاپ استفاده شود.

input <identifier> map_to_region <X> <Y> <width> <height>

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

input <identifier> map_from_region <X1xY1> <X2xY2>

ورودی‌های این دستگاه را که خارج از ناحیه مشخص‌شده رخ می‌دهند نادیده می‌گیرد. می‌تواند بر حسب میلی‌متر (مانند 10x20mm 20x40mm) یا کسری از کل فضای موجود بین 0 تا 1 (مانند 0.5x0.5 0.7x0.7) باشد. همه دستگاه‌ها از میلی‌متر پشتیبانی نمی‌کنند. تنها زمانی معنادار است که دستگاه صفحه‌کلید نباشد و رویدادها را بر حسب مقادیر مطلق ارائه دهد (مانند تبلت طراحی یا صفحه لمسی - اکثر اشاره‌گرها رویدادها را نسبت به فریم قبلی ارائه می‌دهند).

معمولاً برای حفظ نسبت تصویر (aspect ratio) دستگاه ورودی و صفحه نمایش استفاده می‌شود. برش دادن یک ناحیه ورودی با نسبت ۱۶:۱۰ برای مطابقت با صفحه نمایش ۱۶:۹ می‌تواند از 0x0 1x0.9 به عنوان آرگومان استفاده کند.

input <identifier> accel_profile adaptive|flat

نمایه شتاب اشاره‌گر را برای دستگاه ورودی مشخص‌شده تنظیم می‌کند.

input <identifier> calibration_matrix <6 space-separated floating point values>

ماتریس کالیبراسیون را تنظیم می‌کند.

input <identifier> click_method none|button_areas|clickfinger

روش کلیک را برای دستگاه مشخص‌شده تغییر می‌دهد.

input <identifier> clickfinger_button_map lrm|lmr

مشخص می‌کند کدام نگاشت کلید برای clickfinger استفاده شود. گزینه lrm یک انگشت را کلیک چپ، ۲ انگشت را کلیک راست و ۳ انگشت را کلیک وسط در نظر می‌گیرد. گزینه lmr یک انگشت را کلیک چپ، ۲ انگشت را کلیک وسط و ۳ انگشت را کلیک راست در نظر می‌گیرد.

input <identifier> drag enabled|disabled

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

input <identifier> drag_lock enabled|disabled|enabled_sticky

قفل کشیدن (drag lock) را برای دستگاه ورودی مشخص‌شده فعال یا غیرفعال می‌کند. مقدار پیش‌فرض disabled است.

input <identifier> dwt enabled|disabled

قابلیت غیرفعال‌سازی هنگام تایپ (disable-while-typing) را برای دستگاه ورودی مشخص‌شده فعال یا غیرفعال می‌کند.

input <identifier> dwtp enabled|disabled

قابلیت غیرفعال‌سازی هنگام استفاده از ترک‌پوینت (disable-while-trackpointing) را برای دستگاه ورودی مشخص‌شده فعال یا غیرفعال می‌کند.

input <identifier> events enabled|disabled|disabled_on_external_mouse|toggle [<toggle-modes>]

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

گزینه toggle در فایل تنظیمات قابل استفاده نیست. اگر هیچ حالتی برای تغییر ذکر نشود، تمام حالت‌های پشتیبانی‌شده به این ترتیب پیمایش می‌شوند: enabled، disabled_on_external_mouse، disabled، (برگشت به ابتدا). اگر حالت‌ها مشخص شوند، بین آن‌ها جابه‌جا خواهد شد و در صورت عدم تطابق با حالت فعلی به اولین مورد پرش می‌کند. همچنین پشتیبانی دستگاه از آن‌ها بررسی نخواهد شد و ممکن است با خطا مواجه شود.

input <identifier> left_handed enabled|disabled

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

input <identifier> middle_emulation enabled|disabled

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

input <identifier> natural_scroll enabled|disabled

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

input <identifier> pointer_accel [<-1|1>]

میزان شتاب اشاره‌گر را برای دستگاه ورودی مشخص‌شده تغییر می‌دهد.

input <identifier> rotation_angle <angle>

زاویه چرخش دستگاه را بر حسب درجه ساعت‌گرد تنظیم می‌کند. زاویه باید بین 0.0 (شامل خود آن) و 360.0 (بدون خود آن) باشد.

input <identifier> scroll_button disable|button[1-3,8,9]|<event-code-or-name>

کلید مورد استفاده برای scroll_method on_button_down را مشخص می‌کند. کلید می‌تواند به صورت نام یا کد رویداد (قابل دریافت از libinput debug-events) یا کلید ماوس x11 (button[1-3,8,9]) داده شود. اگر روی disable تنظیم شود، روش پیمایش on_button_down غیرفعال می‌شود.

input <identifier> scroll_button_lock enabled|disabled

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

input <identifier> scroll_factor <floating point value>

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

input <identifier> scroll_method none|two_finger|edge|on_button_down

روش پیمایش را برای دستگاه ورودی مشخص‌شده تغییر می‌دهد.

input <identifier> tap enabled|disabled

ضربه برای کلیک (tap) را برای دستگاه ورودی مشخص‌شده فعال یا غیرفعال می‌کند.

input <identifier> tap_button_map lrm|lmr

مشخص می‌کند کدام نگاشت کلید برای ضربه زدن استفاده شود. گزینه lrm یک انگشت را کلیک چپ، ۲ انگشت را کلیک راست و ۳ انگشت را کلیک وسط در نظر می‌گیرد. گزینه lmr یک انگشت را کلیک چپ، ۲ انگشت را کلیک وسط و ۳ انگشت را کلیک راست در نظر می‌گیرد.

گزینه‌های حالت چندکاربره/چندنرم‌افزاری (multiseat) را پیکربندی می‌کند.

یک seat مجموعه‌ای از دستگاه‌های ورودی است که مستقل از یکدیگر عمل می‌کنند. نشیمن‌گاه‌ها با نام شناسایی می‌شوند و اگر نشیمن‌گاهی پیکربندی نشده باشد، نشیمن‌گاه پیش‌فرض seat0 است. در حین اجرای sway، خط تیره (-) می‌تواند به عنوان نام مستعار برای نشیمن‌گاه فعلی استفاده شود. هر نشیمن‌گاه تمرکز صفحه‌کلید مستقل و یک مکان‌نمای مجزا دارد که توسط دستگاه‌های اشاره‌گر آن نشیمن‌گاه کنترل می‌شود. این برای استفاده چندین نفر به طور همزمان از دسکتاپ با دستگاه‌های اختصاصی خود کاربرد دارد. نویسه عمومی * همچنین می‌تواند به جای <identifier> برای تغییر تنظیمات همه نشیمن‌گاه‌ها استفاده شود.

نکته: اگر به نظر می‌رسد تنظیمات اعمال نمی‌شوند، می‌توانید از * به جای <identifier> استفاده کنید. اگر کار کرد، شناسه‌های مختلف حاصل از swaymsg -t get_seats را امتحان کنید تا نشیمن‌گاه صحیح را بیابید.

seat <name> attach <input_identifier>

یک دستگاه ورودی را با شناسه آن به این نشیمن‌گاه متصل می‌کند. مقدار ویژه "*" تمامی دستگاه‌ها را به نشیمن‌گاه متصل خواهد کرد.

seat <seat> cursor move|set <x> <y>

مکان‌نمای نشیمن‌گاه مشخص‌شده را نسبت به موقعیت فعلی حرکت می‌دهد (move) یا روی مختصات مطلق تنظیم می‌کند (set). مشخص کردن مقدار 0 برای هر کدام، آن مختصات را به‌روزرسانی نمی‌کند.

منسوخ‌شده: به جای آن از پروتکل virtual-pointer در Wayland استفاده کنید.

seat <seat> cursor press|release button[1-9]|<event-name-or-code>

فشردن (یا رها کردن) کلید ماوس مشخص‌شده را روی نشیمن‌گاه شبیه‌سازی می‌کند. کلید می‌تواند نام یا کد رویداد (از libinput debug-events) یا کلید ماوس x11 (button[1-9]) باشد. در صورت استفاده از button[4-7] که به محورها نگاشت شده‌اند، یک رویداد محور شبیه‌سازی می‌شود، اما press و release نادیده گرفته شده و هر دو اتفاق می‌افتند.

منسوخ‌شده: به جای آن از پروتکل virtual-pointer در Wayland استفاده کنید.

seat <name> fallback true|false

این نشیمن‌گاه را به عنوان نشیمن‌گاه پشتیبان (fallback) تنظیم می‌کند. نشیمن‌گاه پشتیبان هر دستگاهی را که صریحاً به نشیمن‌گاه دیگری متصل نشده باشد جذب می‌کند (شبیه به نشیمن‌گاه پیش‌فرض).

seat <name> hide_cursor <timeout>|when-typing [enable|disable]

تصویر مکان‌نما را پس از وقوع رویداد مشخص پنهان می‌کند.

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

اگر when-typing فعال باشد، هر زمان که کلیدی فشرده شود مکان‌نما پنهان خواهد شد.

توجه داشته باشید که این تنظیم می‌تواند در مدیریت ورودی بازی‌ها و برنامه‌هایی مانند Gimp و Blender که به ورودی همزمان ماوس و صفحه‌کلید وابسته‌اند، تداخل ایجاد کند.

seat <name> idle_inhibit <sources...>

منابع رویدادهای ورودی را که مانع از بیکار (idle) شدن نشیمن‌گاه می‌شوند، به صورت فهرستی از نام‌ها جداشده با فاصله تنظیم می‌کند. نام‌های معتبر عبارتند از "keyboard"، "pointer"، "touchpad"، "touch"، "tablet_pad"، "tablet_tool" و "switch". رفتار پیش‌فرض ممانعت از بیکاری با هر رویدادی است.

seat <name> keyboard_grouping none|smart

نحوه گروه‌بندی صفحه‌کلیدها در نشیمن‌گاه را مشخص می‌کند. در حال حاضر دو گزینه وجود دارد: none تمام گروه‌بندی‌ها را غیرفعال کرده و به هر صفحه‌کلید وضعیت مستقل می‌دهد. smart صفحه‌کلیدها را بر اساس نگاشت کلید و اطلاعات تکرار گروه‌بندی می‌کند. این حالت زمانی که صفحه‌کلید به عنوان چند دستگاه مجزا شناسایی می‌شود کاربرد دارد. در این حالت، چیدمان موثر بین صفحه‌کلیدهای گروه هماهنگ می‌شود. پیش‌فرض smart است. برای بازگردانی رفتار نسخه‌های قدیمی‌تر sway از none استفاده کنید.

seat <name> pointer_constraint enable|disable|escape

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

seat <name> shortcuts_inhibitor enable|disable|activate|deactivate|toggle

توانایی کلاینت‌ها برای جلوگیری از عمل کردن کلیدهای میانبر نشیمن‌گاه را فعال یا غیرفعال می‌کند. این گزینه برای نرم‌افزارهای مجازی‌سازی و ریموت دسکتاپ مفید است. زیردستورهای enable و disable مشخص می‌کنند که آیا مهارکننده‌ها به صورت خودکار پذیرفته شوند یا خیر که پیش‌فرض enable است. در صورت استفاده در زمان اجرا، disable تمام مهارکننده‌های فعال فعلی را نیز غیرفعال می‌کند. زیردستورهای activate، deactivate و toggle فقط در زمان اجرا قابل استفاده‌اند و وضعیت مهارکننده را در پنجره دارای تمرکز فعلی تغییر می‌دهند. این می‌تواند همراه با نام مستعار نشیمن‌گاه فعلی (-) استفاده شود تا تنها پنجره دارای تمرکز در همان نشیمن‌گاه را تحت تاثیر قرار دهد. زیردستور deactivate به ویژه در یک bindsym با --inhibited برای خروج از وضعیتی که میانبرها مهار شده‌اند و کلاینت پاسخگو نیست مفید است. لازم به ذکر است که حذف مهارکننده‌های غیرفعال‌شده کاملاً به عهده کلاینت است و ممکن است بعداً دوباره فعال شوند. هرگونه نشانه بصری از وجود مهارکننده نیز در حال حاضر به عهده کلاینت گذاشته شده است.

seat <name> xcursor_theme <theme> [<size>]

تم پیش‌فرض XCursor سیستم را بازنویسی می‌کند. تم نشیمن‌گاه پیش‌فرض (seat0) همچنین به عنوان تم پیش‌فرض مکان‌نما در XWayland استفاده می‌شود و از طریق متغیرهای محیطی XCURSOR_THEME و XCURSOR_SIZE صادر می‌گردد.

sway(5) sway-output(5) xkeyboard-config(7)

2026-06-23