dwww Home | Manual pages | Find package

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

NAME
       sway-input - input configuration file and commands

DESCRIPTION
       Sway allows for configuration of devices within the sway configuration
       file. To obtain a list of available device identifiers, run swaymsg -t
       get_inputs. Settings can also be applied to all input devices by using
       the wildcard, *, in place of <identifier> in the commands below. In ad-
       dition, the settings can be applied to a type of device, by using
       type:<input_type> in place of <identifier>.

       In the configuration file, settings with a more specific selector take
       precedence over more general ones: <identifier> > type:<input_type> >
       *.  When executing input commands, however, the settings are applied to
       all matching input devices!  This means that type:<input_type> can
       override previously set <identifier> settings, even though in a config-
       uration file they would take precedence.  Similarly * can override both
       <identifier> and type:<input_type> settings, if applied later.

       Tip: If the configuration settings do not appear to be taking effect,
       you could try using * instead of <identifier>. If it works with the
       wildcard, try using a different identifier from swaymsg -t get_inputs
       until you find the correct input device.

       Current available input types are:

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

       Note: The type configurations are applied as the devices appear and get
       applied on top of the existing device configurations.

INPUT COMMANDS
   KEYBOARD CONFIGURATION
       input <identifier> repeat_delay <milliseconds>
           Sets the amount of time a key must be held before it starts repeat-
           ing.

       input <identifier> repeat_rate <characters per second>
           Sets the frequency of key repeats once the repeat_delay has passed.

       For more information on these xkb configuration options, see xkeyboard-
       config(7).

       input <identifier> xkb_file <file_name>
           Sets all xkb configurations from a complete .xkb file. This file
           can be dumped from xkbcomp $DISPLAY keymap.xkb. This setting over-
           rides xkb_layout, xkb_model, xkb_options, xkb_rules, and xkb_vari-
           ant settings.

       input <identifier> xkb_layout <layout_name>
           Sets the layout of the keyboard like us or de.

           Multiple layouts can be specified by separating them with commas.

       input <identifier> xkb_model <model_name>
           Sets the model of the keyboard. This has an influence for some ex-
           tra keys your keyboard might have.

       input <identifier> xkb_options <options>
           Sets extra xkb configuration options for the keyboard.

           Multiple options can be specified by separating them with commas.

       input <identifier> xkb_rules <rules>
           Sets files of rules to be used for keyboard mapping composition.

       input <identifier> xkb_switch_layout <index>|next|prev
           Changes the active keyboard layout to <index> counting from zero or
           to next or previous layout on the list. If there is no next or pre-
           vious layout, this command hops to the other end of the list.

           This can be used when multiple layouts are configured with xkb_lay-
           out. A list of layouts you can switch between can be obtained with
           swaymsg -t get_inputs.

       input <identifier> xkb_variant <variant>
           Sets the variant of the keyboard like dvorak or colemak.

       The following commands may only be used in the configuration file.

       input <identifier> xkb_capslock enabled|disabled
           Initially enables or disables CapsLock on startup, the default is
           disabled.

       input <identifier> xkb_numlock enabled|disabled
           Initially enables or disables NumLock on startup, the default is
           disabled.

   TABLET CONFIGURATION
       input <identifier> tool_mode <tool> <absolute|relative>
           Sets whether movement of a tablet tool should be treated as abso-
           lute or relative; the default is absolute.

           Valid values for <tool> are currently "pen", "eraser", "brush",
           "pencil", "airbrush", and the wildcard *, which matches all tools.

           Mouse and lens tools ignore this setting and are always treated as
           relative.

   MAPPING CONFIGURATION
       input <identifier> map_to_output <identifier>
           Maps inputs from this device to the specified output. Only meaning-
           ful if the device is a pointer, touch, or drawing tablet device.

           The wildcard * can be used to map the input device to the whole
           desktop layout.

       input <identifier> map_to_region <X> <Y> <width> <height>
           Maps inputs from this device to the specified region of the global
           output layout. Only meaningful if the device is a pointer, touch,
           or drawing tablet device.

       input <identifier> map_from_region <X1xY1> <X2xY2>
           Ignores inputs from this device that do not occur within the speci-
           fied region. Can be in millimeters (e.g. 10x20mm 20x40mm) or in
           terms of 0..1 (e.g. 0.5x0.5 0.7x0.7). Not all devices support mil-
           limeters. Only meaningful if the device is not a keyboard and pro-
           vides events in absolute terms (such as a drawing tablet or touch
           screen - most pointers provide events relative to the previous
           frame).

   LIBINPUT CONFIGURATION
       input <identifier> accel_profile adaptive|flat
           Sets the pointer acceleration profile for the specified input de-
           vice.

       input <identifier> calibration_matrix <6 space-separated floating point
       values>
           Sets the calibration matrix.

       input <identifier> click_method none|button_areas|clickfinger
           Changes the click method for the specified device.

       input <identifier> drag enabled|disabled
           Enables or disables tap-and-drag for specified input device.

       input <identifier> drag_lock enabled|disabled
           Enables or disables drag lock for specified input device.

       input <identifier> dwt enabled|disabled
           Enables or disables disable-while-typing for the specified input
           device.

       input <identifier> events enabled|disabled|disabled_on_exter-
       nal_mouse|toggle [<toggle-modes>]
           Enables or disables send_events for specified input device. Dis-
           abling send_events disables the input device.

           The toggle option cannot be used in the config. If no toggle modes
           are listed, all supported modes for the device will be toggled
           through in the order: enabled,     disabled_on_external_mouse, dis-
           abled, (loop back). If toggle modes are listed, they will be cycled
           through, defaulting to the first mode listed if the current mode is
           not in the list. They will also not be checked to see if they are
           supported for the device and may fail.

       input <identifier> left_handed enabled|disabled
           Enables or disables left handed mode for specified input device.

       input <identifier> middle_emulation enabled|disabled
           Enables or disables middle click emulation.

       input <identifier> natural_scroll enabled|disabled
           Enables or disables natural (inverted) scrolling for the specified
           input device.

       input <identifier> pointer_accel [<-1|1>]
           Changes the pointer acceleration for the specified input device.

       input <identifier> scroll_button disable|button[1-3,8,9]|<event-code-
       or-name>
           Sets the button used for scroll_method on_button_down. The button
           can be given as an event name or code, which can be obtained from
           libinput debug-events, or as a x11 mouse button (button[1-3,8,9]).
           If set to disable, it disables the scroll_method on_button_down.

       input <identifier> scroll_factor <floating point value>
           Changes the scroll factor for the specified input device. Scroll
           speed will be scaled by the given value, which must be non-nega-
           tive.

       input <identifier> scroll_method none|two_finger|edge|on_button_down
           Changes the scroll method for the specified input device.

       input <identifier> tap enabled|disabled
           Enables or disables tap for specified input device.

       input <identifier> tap_button_map lrm|lmr
           Specifies which button mapping to use for tapping. lrm treats 1
           finger as left click, 2 fingers as right click, and 3 fingers as
           middle click. lmr treats 1 finger as left click, 2 fingers as mid-
           dle click, and 3 fingers as right click.

   SEAT CONFIGURATION
       Configure options for multiseat mode.

       A seat is a collection of input devices that act independently of each
       other. Seats are identified by name and the default seat is seat0 if no
       seats are configured. While sway is running, - (hyphen) can be used as
       an alias for the current seat. Each seat has an independent keyboard
       focus and a separate cursor that is controlled by the pointer devices
       of the seat. This is useful for multiple people using the desktop at
       the same time with their own devices (each sitting in their own
       "seat"). The wildcard character, *, can also be used in place of <iden-
       tifier> to change settings for all seats.

       Tip: If the configuration settings do not appear to be taking effect,
       you could try using * instead of <identifier>. If it works with the
       wildcard, try using a different identifier from swaymsg -t get_seats
       until you find the correct seat.

       seat <name> attach <input_identifier>
           Attach an input device to this seat by its input identifier. A spe-
           cial value of "*" will attach all devices to the seat.

       seat <seat> cursor move|set <x> <y>
           Move specified seat's cursor relative to current position or wrap
           to absolute coordinates (with respect to the global coordinate
           space). Specifying either value as 0 will not update that coordi-
           nate.

       seat <seat> cursor press|release button[1-9]|<event-name-or-code>
           Simulate pressing (or releasing) the specified mouse button on the
           specified seat. The button can either be provided as a button event
           name or event code, which can be obtained from libinput debug-
           events, or as an x11 mouse button (button[1-9]). If using but-
           ton[4-7], which map to axes, an axis event will be simulated, how-
           ever press and release will be ignored and both will occur.

       seat <name> fallback true|false
           Set this seat as the fallback seat. A fallback seat will attach any
           device not explicitly attached to another seat (similar to a "de-
           fault" seat).

       seat <name> hide_cursor <timeout>|when-typing [enable|disable]
           Hides the cursor image after the specified event occurred.

           If timeout is specified, then the cursor will be hidden after time-
           out (in milliseconds) has elapsed with no activity on the cursor. A
           timeout of 0 (default) disables hiding the cursor. The minimal
           timeout is 100 and any value less than that (aside from 0), will be
           increased to 100.

           If when-typing is enabled, then the cursor will be hidden whenever
           a key is pressed.

       seat <name> idle_inhibit <sources...>
           Sets the set of input event sources which can prevent the seat from
           becoming idle, as a space separated list of source names. Valid
           names are "keyboard", "pointer", "touchpad", "touch", "tablet_pad",
           "tablet_tool", and "switch". The default behavior is to prevent
           idle on any event.

       seat <name> idle_wake <sources...>
           Sets the set of input event sources which can wake the seat from
           its idle state, as a space separated list of source names. Valid
           names are "keyboard", "pointer", "touchpad", "touch", "tablet_pad",
           "tablet_tool", and "switch". The default behavior is to wake from
           idle on any event.

       seat <name> keyboard_grouping none|smart
           Set how the keyboards in the seat are grouped together. Currently,
           there are two options. none will disable all keyboard grouping.
           This will make it so each keyboard device has its own isolated
           state. smart will group the keyboards in the seat by their keymap
           and repeat info. This is useful for when the keyboard appears as
           multiple separate input devices. In this mode, the effective layout
           is synced between the keyboards in the group. The default is smart.
           To restore the behavior of older versions of sway, use none.

       seat <name> pointer_constraint enable|disable|escape
           Enables or disables the ability for clients to capture the cursor
           (enabled by default) for the seat. This is primarily useful for
           video games. The "escape" command can be used at runtime to escape
           from a captured client.

       seat <name> shortcuts_inhibitor enable|disable|activate|deactivate|tog-
       gle
           Enables or disables the ability of clients to inhibit keyboard
           shortcuts for the seat. This is primarily useful for virtualization
           and remote desktop software. Subcommands enable and disable affect
           whether future inhibitors are honoured by default, i.e. activated
           automatically, the default being enable. When used at runtime, dis-
           able also disables any currently active inhibitors. activate, deac-
           tivate and toggle are only usable at runtime and change the state
           of a potentially existing inhibitor on the currently focused win-
           dow. This can be used with the current seat alias (-) to affect
           only the currently focused window of the current seat. Subcommand
           deactivate is particularly useful in an --inhibited bindsym to es-
           cape a state where shortcuts are inhibited and the client becomes
           uncooperative. It is worth noting that whether disabled or deacti-
           vated inhibitors are removed is entirely up to the client. Depend-
           ing on the client it may therefore be possible to (re-)activate
           them later. Any visual indication that an inhibitor is present is
           currently left to the client as well.

       seat <name> xcursor_theme <theme> [<size>]
           Override the system default XCursor theme. The default seat's
           (seat0) theme is also used as the default cursor theme in XWayland,
           and exported through the XCURSOR_THEME and XCURSOR_SIZE environment
           variables.

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

                                  2022-10-14                     sway-input(5)

Generated by dwww version 1.15 on Wed Jun 26 01:32:58 CEST 2024.