maomaowm/docs/configuration/input.md
2026-03-12 10:31:29 +05:30

4.9 KiB
Raw Blame History

title description
Input Devices Configure keyboard layouts, mouse sensitivity, and touchpad gestures.

Device Configuration

mangowm provides granular control over different input devices.

Keyboard Settings

Control key repeat rates and layout rules.

Setting Type Default Description
repeat_rate int 25 How many times a key repeats per second.
repeat_delay int 600 Delay (ms) before a held key starts repeating.
numlockon 0 or 1 0 Enable NumLock on startup.
xkb_rules_rules string - XKB rules file (e.g., evdev, base). Usually auto-detected.
xkb_rules_model string - Keyboard model (e.g., pc104, macbook).
xkb_rules_layout string - Keyboard layout code (e.g., us, de, us,de).
xkb_rules_variant string - Layout variant (e.g., dvorak, colemak, intl).
xkb_rules_options string - XKB options (e.g., caps:escape, ctrl:nocaps).

Example:

repeat_rate=40
repeat_delay=300
numlockon=1
xkb_rules_layout=us,de
xkb_rules_variant=dvorak
xkb_rules_options=caps:escape,ctrl:nocaps

Trackpad Settings

Specific settings for laptop touchpads. Some settings may require a relogin to take effect.

Setting Default Description
disable_trackpad 0 Set to 1 to disable the trackpad entirely.
tap_to_click 1 Tap to trigger a left click.
tap_and_drag 1 Tap and hold to drag items.
trackpad_natural_scrolling 0 Invert scrolling direction (natural scrolling).
scroll_method 1 1 (Two-finger), 2 (Edge), 4 (Button).
click_method 1 1 (Button areas), 2 (Clickfinger).
drag_lock 1 Lock dragging after tapping.
disable_while_typing 1 Disable trackpad while typing.
left_handed 0 Swap left/right buttons.
middle_button_emulation 0 Emulate middle button.
swipe_min_threshold 1 Minimum swipe threshold.

Detailed descriptions:

  • scroll_method values:

    • 0 — Never send scroll events (no scrolling).
    • 1 — Two-finger scrolling: send scroll events when two fingers are logically down on the device.
    • 2 — Edge scrolling: send scroll events when a finger moves along the bottom or right edge.
    • 4 — Button scrolling: send scroll events when a button is held and the device moves along a scroll axis.
  • click_method values:

    • 0 — No software click emulation.
    • 1 — Button areas: use software-defined areas on the touchpad to generate button events.
    • 2 — Clickfinger: the number of fingers determines which button is pressed.
  • accel_profile values:

    • 0 — No acceleration.
    • 1 — Flat: no dynamic acceleration. Pointer speed = original input speed × (1 + accel_speed).
    • 2 — Adaptive: slow movement results in less acceleration, fast movement results in more.
  • button_map values:

    • 0 — 1/2/3 finger tap maps to left / right / middle.
    • 1 — 1/2/3 finger tap maps to left / middle / right.
  • send_events_mode values:

    • 0 — Send events from this device normally.
    • 1 — Do not send events from this device.
    • 2 — Disable this device when an external pointer device is plugged in.

Mouse Settings

Configuration for external mice.

Setting Default Description
mouse_natural_scrolling 0 Invert scrolling direction.
accel_profile 2 0 (None), 1 (Flat), 2 (Adaptive).
accel_speed 0.0 Speed adjustment (-1.0 to 1.0).
left_handed 0 Swap left and right buttons.
middle_button_emulation 0 Emulate middle button.
swipe_min_threshold 1 Minimum swipe threshold.
send_events_mode 0 0 (Enabled), 1 (Disabled), 2 (Disabled on external mouse).
button_map 0 0 (Left/right/middle), 1 (Left/middle/right).


Keyboard Layout Switching

To bind multiple layouts and toggle between them, define the layouts in xkb_rules_layout and use xkb_rules_options to set a toggle key combination. Then bind switch_keyboard_layout to trigger a switch.

# Define two layouts: US QWERTY and US Dvorak
xkb_rules_layout=us,us
xkb_rules_variant=,dvorak
xkb_rules_options=grp:lalt_lshift_toggle

Or bind it manually to a key:

# Bind Alt+Shift_L to cycle keyboard layout
bind=alt,shift_l,switch_keyboard_layout

Use mmsg -g -k to query the current keyboard layout at any time.


Input Method Editor (IME)

To use Fcitx5 or IBus, set these environment variables in your config file.

Info: These settings require a restart of the window manager to take effect.

For Fcitx5:

env=GTK_IM_MODULE,fcitx
env=QT_IM_MODULE,fcitx
env=SDL_IM_MODULE,fcitx
env=XMODIFIERS,@im=fcitx
env=GLFW_IM_MODULE,ibus

For IBus:

env=GTK_IM_MODULE,ibus
env=QT_IM_MODULE,ibus
env=XMODIFIERS,@im=ibus