mirror of
https://github.com/DreamMaoMao/maomaowm.git
synced 2026-03-14 05:34:21 -04:00
8.3 KiB
8.3 KiB
| title | description |
|---|---|
| Key Bindings | Define keyboard shortcuts and modes. |
Syntax
Key bindings follow this format:
bind[flags]=MODIFIERS,KEY,COMMAND,PARAMETERS
- Modifiers:
SUPER,CTRL,ALT,SHIFT,NONE(combine with+, e.g.SUPER+CTRL+ALT). - Key: Key name (from
xevorwev) or keycode (e.g.,code:24forq).
Info:
bindautomatically converts keysym to keycode for comparison. This makes it compatible with all keyboard layouts, but the matching may not always be precise. If a key combination doesn't work on your keyboard layout, use a keycode instead (e.g.,code:24instead ofq).
Flags
l: Works even when screen is locked.s: Uses keysym instead of keycode to bind.r: Triggers on key release instead of press.p: Pass key event to client.
Examples:
bind=SUPER,Q,killclient
bindl=SUPER,L,spawn,swaylock
# Using keycode instead of key name
bind=ALT,code:24,killclient
# Combining keycodes for modifiers and keys
bind=code:64,code:24,killclient
bind=code:64+code:133,code:24,killclient
# Bind with no modifier
bind=NONE,XF86MonBrightnessUp,spawn,brightnessctl set +5%
# Bind a modifier key itself as the trigger key
bind=alt,shift_l,switch_keyboard_layout
Key Modes (Submaps)
You can divide key bindings into named modes. Rules:
- Set
keymode=<name>before a group ofbindlines — those binds only apply in that mode. - If no
keymodeis set before a bind, it belongs to thedefaultmode. - The special
commonkeymode applies its binds across all modes.
Use setkeymode to switch modes, and mmsg -b to query the current mode.
# Binds in 'common' apply in every mode
keymode=common
bind=SUPER,r,reload_config
# Default mode bindings
keymode=default
bind=ALT,Return,spawn,foot
bind=SUPER,F,setkeymode,resize
# 'resize' mode bindings
keymode=resize
bind=NONE,Left,resizewin,-10,0
bind=NONE,Right,resizewin,+10,0
bind=NONE,Escape,setkeymode,default
Single Modifier Key Binding
When binding a modifier key itself, use NONE for press and the modifier name for release:
# Trigger on press of Super key
bind=none,Super_L,spawn,rofi -show run
# Trigger on release of Super key
bindr=Super,Super_L,spawn,rofi -show run
Dispatchers List
Window Management
| Command | Param | Description |
|---|---|---|
killclient |
- | Close the focused window. |
togglefloating |
- | Toggle floating state. |
togglefullscreen |
- | Toggle fullscreen. |
togglefakefullscreen |
- | Toggle "fake" fullscreen (remains constrained). |
togglemaximizescreen |
- | Maximize window (keep decoration/bar). |
toggleglobal |
- | Pin window to all tags. |
toggle_render_border |
- | Toggle border rendering. |
centerwin |
- | Center the floating window. |
minimized |
- | Minimize window to scratchpad. |
restore_minimized |
- | Restore window from scratchpad. |
toggle_scratchpad |
- | Toggle scratchpad. |
toggle_named_scratchpad |
appid,title,cmd |
Toggle named scratchpad. Launches app if not running, otherwise shows/hides it. |
Focus & Movement
| Command | Param | Description |
|---|---|---|
focusdir |
left/right/up/down |
Focus window in direction. |
focusstack |
next/prev |
Cycle focus within the stack. |
focuslast |
- | Focus the previously active window. |
exchange_client |
left/right/up/down |
Swap window with neighbor in direction. |
exchange_stack_client |
next/prev |
Exchange window position in stack. |
zoom |
- | Swap focused window with Master. |
Tags & Monitors
| Command | Param | Description |
|---|---|---|
view |
-1/0/1-9 or mask [,synctag] |
View tag. -1 = previous tagset, 0 = all tags, 1-9 = specific tag, mask e.g. 1|3|5. Optional synctag (0/1) syncs the action to all monitors. |
viewtoleft |
[synctag] |
View previous tag. Optional synctag (0/1) syncs to all monitors. |
viewtoright |
[synctag] |
View next tag. Optional synctag (0/1) syncs to all monitors. |
viewtoleft_have_client |
[synctag] |
View left tag and focus client if present. Optional synctag (0/1). |
viewtoright_have_client |
[synctag] |
View right tag and focus client if present. Optional synctag (0/1). |
viewcrossmon |
tag,monitor_spec |
View specified tag on specified monitor. |
tag |
1-9 [,synctag] |
Move window to tag. Optional synctag (0/1) syncs to all monitors. |
tagsilent |
1-9 |
Move window to tag without focusing it. |
tagtoleft |
[synctag] |
Move window to left tag. Optional synctag (0/1). |
tagtoright |
[synctag] |
Move window to right tag. Optional synctag (0/1). |
tagcrossmon |
tag,monitor_spec |
Move window to specified tag on specified monitor. |
toggletag |
0-9 |
Toggle tag on window (0 means all tags). |
toggleview |
1-9 |
Toggle tag view. |
comboview |
1-9 |
View multi tags pressed simultaneously. |
focusmon |
left/right/up/down/monitor_spec |
Focus monitor by direction or monitor spec. |
tagmon |
left/right/up/down/monitor_spec,[keeptag] |
Move window to monitor by direction or monitor spec. keeptag is 0 or 1. |
Layouts
| Command | Param | Description |
|---|---|---|
setlayout |
name |
Switch to layout (e.g., scroller, tile). |
switch_layout |
- | Cycle through available layouts. |
incnmaster |
+1/-1 |
Increase/Decrease number of master windows. |
setmfact |
+0.05 |
Increase/Decrease master area size. |
set_proportion |
float |
Set scroller window proportion (0.0–1.0). |
switch_proportion_preset |
- | Cycle proportion presets of scroller window. |
scroller_stack |
left/right/up/down |
Move window inside/outside scroller stack by direction. |
incgaps |
+/-value |
Adjust gap size. |
togglegaps |
- | Toggle gaps. |
System
| Command | Param | Description |
|---|---|---|
spawn |
cmd |
Execute a command. |
spawn_shell |
cmd |
Execute shell command (supports pipes |). |
spawn_on_empty |
cmd,tagnumber |
Open command on empty tag. |
reload_config |
- | Hot-reload configuration. |
quit |
- | Exit mangowm. |
toggleoverview |
- | Toggle overview mode. |
create_virtual_output |
- | Create a headless monitor (for VNC/Sunshine). |
destroy_all_virtual_output |
- | Destroy all virtual monitors. |
toggleoverlay |
- | Toggle overlay state for the focused window. |
toggle_trackpad_enable |
- | Toggle trackpad enable. |
setkeymode |
mode |
Set keymode. |
switch_keyboard_layout |
[index] |
Switch keyboard layout. Optional index (0, 1, 2...) to switch to specific layout. |
setoption |
key,value |
Set config option temporarily. |
disable_monitor |
monitor_spec |
Shutdown monitor. Accepts a monitor spec. |
enable_monitor |
monitor_spec |
Power on monitor. Accepts a monitor spec. |
toggle_monitor |
monitor_spec |
Toggle monitor power. Accepts a monitor spec. |
Media Controls
Warning: Some keyboards don't send standard media keys. Run
wevand press your key to check the exact key name.
Brightness
Requires: brightnessctl
bind=NONE,XF86MonBrightnessUp,spawn,brightnessctl s +2%
bind=SHIFT,XF86MonBrightnessUp,spawn,brightnessctl s 100%
bind=NONE,XF86MonBrightnessDown,spawn,brightnessctl s 2%-
bind=SHIFT,XF86MonBrightnessDown,spawn,brightnessctl s 1%
Volume
Requires: wpctl (WirePlumber)
bind=NONE,XF86AudioRaiseVolume,spawn,wpctl set-volume @DEFAULT_SINK@ 5%+
bind=NONE,XF86AudioLowerVolume,spawn,wpctl set-volume @DEFAULT_SINK@ 5%-
bind=NONE,XF86AudioMute,spawn,wpctl set-mute @DEFAULT_SINK@ toggle
bind=SHIFT,XF86AudioMute,spawn,wpctl set-mute @DEFAULT_SOURCE@ toggle
Floating Window Movement
| Command | Param | Description |
|---|---|---|
smartmovewin |
left/right/up/down |
Move floating window by snap distance. |
smartresizewin |
left/right/up/down |
Resize floating window by snap distance. |
movewin |
(x,y) |
Move floating window. |
resizewin |
(width,height) |
Resize window. |