Skip to content

Instantly share code, notes, and snippets.

@LGUG2Z
Last active April 5, 2025 23:01
Show Gist options
  • Save LGUG2Z/b959068b0058147260c0b57618d03fa0 to your computer and use it in GitHub Desktop.
Save LGUG2Z/b959068b0058147260c0b57618d03fa0 to your computer and use it in GitHub Desktop.
# mousemaster will automatically convert the key aliases to your current keyboard layout.
# However, if you want to make a change to the key aliases, and your keyboard layout
# is not us-qwerty, then remove .us-qwerty
key-alias.enablebasekey.us-qwerty=e capslock
key-alias.exit.us-qwerty=q p capslock
key-alias.clickthendisable.us-qwerty=.
key-alias.up.us-qwerty=i
key-alias.down.us-qwerty=k
key-alias.left.us-qwerty=j
key-alias.right.us-qwerty=l
key-alias.edge.us-qwerty=rightalt
key-alias.wheelup.us-qwerty=,
key-alias.wheeldown.us-qwerty=m
key-alias.wheelleft.us-qwerty=u
key-alias.wheelright.us-qwerty=o
key-alias.leftbutton.us-qwerty=;
key-alias.rightbutton.us-qwerty='
key-alias.middlebutton.us-qwerty=rightshift
key-alias.toggleleft.us-qwerty=n
key-alias.fast.us-qwerty=v b
key-alias.slow.us-qwerty=leftshift
key-alias.superslow.us-qwerty=capslock
key-alias.grid.us-qwerty=g
key-alias.hint.us-qwerty=f
key-alias.screenselection.us-qwerty=c
key-alias.navigateback.us-qwerty=h
key-alias.navigateforward.us-qwerty=y
key-alias.hint1key.us-qwerty=q w e r t a s d f g z x c v b y u i o p h j k l ; n m , . /
key-alias.hint2key.us-qwerty=q w e r u i o p a s d f j k l ; z x c v m , . /
key-alias.extendedhint1key.us-qwerty=1 2 3 4 5 6 7 8 9 0 q w e r t y u i o p a s d f g h j k l ; z x c v b n m , . /
key-alias.extendedhint2key.us-qwerty=1 2 3 4 5 6 7 8 9 0 q w e r t y u i o p a s d f g h j k l ; z x c v b n m , . /
key-alias.hintscreenselectionkey.us-qwerty=j k l ; a s d f g
key-alias.anyarrowbasekey.us-qwerty=i j k l
key-alias.uparrowbasekey.us-qwerty=i
key-alias.downarrowbasekey.us-qwerty=k
key-alias.leftarrowbasekey.us-qwerty=j
key-alias.rightarrowbasekey.us-qwerty=l
key-alias.arrowkeymodifier.us-qwerty=leftalt leftshift leftctrl leftwin
idle-mode.push-mode-to-history-stack=true
normal-mode.push-mode-to-history-stack=true
# Press e while holding leftalt to activate, or press capslock while holding leftalt.
idle-mode.to.normal-mode=+leftalt-0 +enablebasekey
normal-mode.indicator.enabled=true
normal-mode.indicator.idle-color=#FF0000
normal-mode.indicator.move-color=#FF0000
normal-mode.indicator.wheel-color=#FFFF00
normal-mode.indicator.mouse-press-color=#00FF00
# The following keys can be used to go back to idle mode:
# exit keys (q or p), click-then-disable key (.), leftalt + e, leftalt + capslock,
# leftctrl + f, leftctrl + l, leftctrl + e, f2, f3, /.
normal-mode.to.idle-mode=+exit | -clickthendisable | +leftalt-0 +enablebasekey \
| _{leftctrl} #f | _{leftctrl} #l | _{leftctrl} #e | #f2 | #f3 | #/
normal-mode.mouse.initial-velocity=1600
normal-mode.mouse.max-velocity=2200
normal-mode.mouse.acceleration=1500
normal-mode.wheel.initial-velocity=1500
normal-mode.wheel.max-velocity=2000
normal-mode.wheel.acceleration=500
# Start moving with direction keys.
# When releasing the edge key, if direction keys are already pressed then start moving.
normal-mode.start-move.up=+up | _{up} -edge
normal-mode.start-move.down=+down | _{down} -edge
normal-mode.start-move.left=+left | _{left} -edge
normal-mode.start-move.right=+right | _{right} -edge
# Stop moving by releasing direction keys.
# If the edge/grid/hint/screenselection key is pressed, then stop moving.
normal-mode.stop-move.up=-up | #edge | +grid | +hint | +screenselection
normal-mode.stop-move.down=-down | #edge | +grid | +hint | +screenselection
normal-mode.stop-move.left=-left | #edge | +grid | +hint | +screenselection
normal-mode.stop-move.right=-right | #edge | +grid | +hint | +screenselection
# Register leftctrl to allow ctrl-clicking.
normal-mode.press.left=_{none | leftctrl} +leftbutton | _{none | leftctrl} +clickthendisable
normal-mode.press.middle=+middlebutton
normal-mode.press.right=_{none | leftctrl} +rightbutton
normal-mode.release.left=-leftbutton
normal-mode.release.middle=-middlebutton
normal-mode.release.right=-rightbutton
normal-mode.toggle.left=_{none | leftctrl} +toggleleft
normal-mode.start-wheel.up=+wheelup
normal-mode.start-wheel.down=+wheeldown
normal-mode.start-wheel.left=+wheelleft
normal-mode.start-wheel.right=+wheelright
normal-mode.stop-wheel.up=-wheelup
normal-mode.stop-wheel.down=-wheeldown
normal-mode.stop-wheel.left=-wheelleft
normal-mode.stop-wheel.right=-wheelright
# Eat the slow key press event (+slow) only when scrolling up or down.
# (If not eaten, scrolling vertically while holding shift is considered a horizontal scroll by certain apps.)
normal-mode.to.slow-mode=#slow | _{wheelup | wheeldown} +slow
slow-mode.to.normal-mode=-slow
slow-mode.to.super-slow-mode=+superslow
slow-mode.to.edge-mode=+edge
slow-mode.indicator=normal-mode.indicator
slow-mode.mouse=normal-mode.mouse
slow-mode.wheel=normal-mode.wheel
slow-mode.mouse.max-velocity=350
slow-mode.wheel.max-velocity=200
slow-mode.start-move=normal-mode.start-move
slow-mode.stop-move=normal-mode.stop-move
slow-mode.press=normal-mode.press
slow-mode.release=normal-mode.release
slow-mode.toggle=normal-mode.toggle
slow-mode.start-wheel=normal-mode.start-wheel
slow-mode.stop-wheel=normal-mode.stop-wheel
#normal-mode.to.super-slow-mode=+superslow
super-slow-mode.to.normal-mode=^{slow} -superslow
super-slow-mode.to.super-slow-mode=+slow
super-slow-mode.to.slow-mode=_{slow} -superslow
super-slow-mode.indicator=normal-mode.indicator
super-slow-mode.mouse=normal-mode.mouse
super-slow-mode.wheel=normal-mode.wheel
super-slow-mode.mouse.max-velocity=75
super-slow-mode.wheel.max-velocity=50
super-slow-mode.start-move=normal-mode.start-move
super-slow-mode.stop-move=normal-mode.stop-move
super-slow-mode.press=normal-mode.press
super-slow-mode.release=normal-mode.release
super-slow-mode.toggle=normal-mode.toggle
super-slow-mode.start-wheel=normal-mode.start-wheel
super-slow-mode.stop-wheel=normal-mode.stop-wheel
normal-mode.to.fast-mode=+fast
# Go back to normal mode only if none of the fast keys (u, v, b) are pressed.
fast-mode.to.normal-mode=-fast
fast-mode.to.edge-mode=+edge
fast-mode.indicator=normal-mode.indicator
fast-mode.mouse=normal-mode.mouse
fast-mode.mouse.max-velocity=4500
fast-mode.mouse.acceleration=3000
fast-mode.wheel.max-velocity=10000
fast-mode.wheel.acceleration=10000
fast-mode.start-move=normal-mode.start-move
fast-mode.stop-move=normal-mode.stop-move
fast-mode.press=normal-mode.press
fast-mode.release=normal-mode.release
fast-mode.toggle=normal-mode.toggle
fast-mode.start-wheel=normal-mode.start-wheel
fast-mode.stop-wheel=normal-mode.stop-wheel
# Snap to screen edges.
normal-mode.to.edge-mode=#edge
edge-mode.to.edge-mode=+slow | +fast
edge-mode.to.normal-mode=^{slow fast} -edge
edge-mode.to.slow-mode=_{slow} -edge
edge-mode.to.fast-mode=_{fast} -edge
edge-mode.indicator=normal-mode.indicator
edge-mode.mouse=normal-mode.mouse
edge-mode.press=normal-mode.press
edge-mode.release=normal-mode.release
edge-mode.toggle=normal-mode.toggle
# Invisible grid used for snapping/attaching to the screen's edges.
edge-mode.grid.area=active-screen
edge-mode.grid.area-width-percent=0.80
edge-mode.grid.area-height-percent=0.95
edge-mode.grid.row-count=1
edge-mode.grid.column-count=1
# Change line-visible to true to see the edge lines.
edge-mode.grid.line-visible=false
edge-mode.snap.up=+up | _{up} +edge
edge-mode.snap.down=+down | _{down} +edge
edge-mode.snap.left=+left | _{left} +edge
edge-mode.snap.right=+right | _{right} +edge
# Grid is enabled with g, disabled with g or esc.
# Press direction keys to shrink the grid in one direction.
normal-mode.to.grid-mode=+grid
grid-mode.to.normal-mode=+grid | +capslock
#grid-mode.to.idle-mode=+exit
grid-mode.indicator=normal-mode.indicator
grid-mode.grid.area=active-screen
grid-mode.grid.area-width-percent=0.99
grid-mode.grid.area-height-percent=0.99
grid-mode.grid.synchronization=mouse-follows-grid-center
grid-mode.grid.line-visible=true
grid-mode.grid.line-color=#FF0000
grid-mode.shrink-grid.up=+up
grid-mode.shrink-grid.down=+down
grid-mode.shrink-grid.left=+left
grid-mode.shrink-grid.right=+right
# Window mode is enabled by holding the slow key (leftshift) and pressing the grid key (g).
# It is exited as soon as the slow key (leftshift) is released.
# Move to the active window's edges with direction keys.
# Move to the active window's center with the grid key (g).
slow-mode.to.window-mode=+grid
window-mode.to.normal-mode=-slow
window-mode.indicator=normal-mode.indicator
window-mode.grid.area=active-window
# Top inset to be able to quickly access a window's title bar (and potentially grab it and move the window).
window-mode.grid.area-top-inset=15
window-mode.grid.synchronization=mouse-follows-grid-center
window-mode.grid.row-count=1
window-mode.grid.column-count=1
window-mode.grid.line-visible=true
window-mode.grid.line-color=#FF0000
window-mode.snap.up=+up
window-mode.snap.down=+down
window-mode.snap.left=+left
window-mode.snap.right=+right
window-mode.move-to-grid-center=+grid
# Hints are enabled with f, disabled with f or esc.
# Holding leftshift while selecting the hint will trigger a second hint pass with a smaller hint grid
# centered around the mouse to refine the position.
normal-mode.to.hint1-mode=+hint
hint1-mode.to.normal-mode=+esc | +backspace | +capslock
#hint1-mode.to.idle-mode=+exit
hint1-mode.hide-cursor.enabled=true
hint1-mode.hint.type=grid
hint1-mode.hint.grid-area=active-screen
hint1-mode.hint.active-screen-grid-area-center=screen-center
hint1-mode.hint.grid-cell-width=74
hint1-mode.hint.grid-cell-height=36
hint1-mode.hint.layout-row-count=6
hint1-mode.hint.layout-column-count=5
hint1-mode.hint.selection-keys=hint1key
hint1-mode.hint.prefix-box-enabled=true
hint1-mode.hint.prefix-in-background=true
hint1-mode.hint.prefix-font-name=Segoe UI Light
hint1-mode.hint.prefix-font-size=120
hint1-mode.hint.prefix-font-color=#FFD93D
hint1-mode.hint.prefix-font-opacity=0.8
hint1-mode.hint.prefix-font-shadow-opacity=0
hint1-mode.hint.selected-font-opacity=0.5
# Hint configuration for a 4K screen:
hint1-mode.hint.grid-cell-width.3840x2160=96
hint1-mode.hint.grid-cell-height.3840x2160=54
hint1-mode.hint.layout-row-count.3840x2160=4
hint1-mode.hint.layout-column-count.3840x2160=10
hint1-mode.hint.selection-keys.3840x2160=extendedhint1key
# Hint configuration for a QHD screen:
hint1-mode.hint.grid-cell-width.2560x1440=64
hint1-mode.hint.grid-cell-height.2560x1440=36
hint1-mode.hint.layout-row-count.2560x1440=4
hint1-mode.hint.layout-column-count.2560x1440=10
hint1-mode.hint.selection-keys.2560x1440=extendedhint1key
# Hint configuration for a UWQHD screen:
hint1-mode.hint.grid-cell-width.3440x1440=86
hint1-mode.hint.grid-cell-height.3440x1440=36
hint1-mode.hint.layout-row-count.3440x1440=4
hint1-mode.hint.layout-column-count.3440x1440=10
hint1-mode.hint.selection-keys.3440x1440=extendedhint1key
hint1-mode.hint.undo=backspace
hint1-mode.hint.mode-after-selection=normal-mode
hint1-mode.to.hint2-1-mode=+slow
# leftshift (slow key) is already pressed in slow mode.
slow-mode.to.hint2-1-mode=+hint
hint2-1-mode.hide-cursor=hint1-mode.hide-cursor
hint2-1-mode.hint=hint1-mode.hint
hint2-1-mode.hint.move-mouse=false
hint2-1-mode.to.hint1-mode=-slow
#hint2-1-mode.to.idle-mode=+exit
hint2-1-mode.hint.mode-after-selection=hint2-2-mode
hint2-2-mode.hide-cursor=hint1-mode.hide-cursor
#hint2-2-mode.to.idle-mode=+exit
hint2-2-mode.to.hint1-mode=^{slow} +backspace
hint2-2-mode.to.hint2-1-mode=_{slow} +backspace
hint2-2-mode.to.normal-mode=+esc | +capslock
hint2-2-mode.hint=hint1-mode.hint
hint2-2-mode.hint.type=grid
hint2-2-mode.hint.grid-area=active-screen
hint2-2-mode.hint.active-screen-grid-area-center=last-selected-hint
hint2-2-mode.hint.grid-max-row-count=3
hint2-2-mode.hint.grid-max-column-count=8
hint2-2-mode.hint.grid-cell-width=50
hint2-2-mode.hint.grid-cell-height=75
hint2-2-mode.hint.selection-keys=hint2key
hint2-2-mode.hint.prefix-in-background=false
hint2-2-mode.hint.prefix-box-enabled=false
# Hint configuration for a 4K screen:
hint2-2-mode.hint.grid-max-row-count.3840x2160=4
hint2-2-mode.hint.grid-max-column-count.3840x2160=10
hint2-2-mode.hint.grid-cell-width.3840x2160=48
hint2-2-mode.hint.grid-cell-height.3840x2160=67.5
hint2-2-mode.hint.selection-keys.3840x2160=extendedhint2key
# Hint configuration for a QHD screen:
hint2-2-mode.hint.grid-max-row-count.2560x1440=4
hint2-2-mode.hint.grid-max-column-count.2560x1440=10
hint2-2-mode.hint.grid-cell-width.2560x1440=32
hint2-2-mode.hint.grid-cell-height.2560x1440=45
hint2-2-mode.hint.selection-keys.2560x1440=extendedhint2key
# Hint configuration for a UWQHD screen:
hint2-2-mode.hint.grid-max-row-count.3440x1440=4
hint2-2-mode.hint.grid-max-column-count.3440x1440=10
hint2-2-mode.hint.grid-cell-width.3440x1440=43
hint2-2-mode.hint.grid-cell-height.3440x1440=45
hint2-2-mode.hint.selection-keys.3440x1440=extendedhint2key
hint2-2-mode.zoom.percent=5.0
hint2-2-mode.zoom.center=last-selected-hint
hint2-2-mode.hint.mode-after-selection=normal-mode
# Screen selection is enabled with c, disabled with c or esc.
normal-mode.to.screen-selection-mode=+screenselection
screen-selection-mode.to.normal-mode=+screenselection | +esc | +backspace | +capslock
#screen-selection-mode.to.idle-mode=+exit
screen-selection-mode.hint.type=grid
screen-selection-mode.hint.grid-area=all-screens
screen-selection-mode.hint.grid-max-row-count=1
screen-selection-mode.hint.grid-max-column-count=1
screen-selection-mode.hint.selection-keys=hintscreenselectionkey
screen-selection-mode.hint.font-size=120
screen-selection-mode.hint.mode-after-selection=normal-mode
# Remappings.
normal-mode.remapping.navigateback=+navigateback -> +leftalt +leftarrow -leftarrow -leftalt
normal-mode.remapping.navigateforward=+navigateforward -> +leftalt +rightarrow -rightarrow -leftalt
idle-mode.remapping.leftvirtualdesktop=+tab-0 +leftarrowbasekey-0 -> +leftwin +leftctrl +leftarrow -leftwin -leftctrl -leftarrow
idle-mode.remapping.rightvirtualdesktop=+tab-0 +rightarrowbasekey-0 -> +leftwin +leftctrl +rightarrow -leftwin -leftctrl -rightarrow
normal-mode.remapping.leftvirtualdesktop=+tab-0 +leftarrowbasekey-0 -> +leftwin +leftctrl +leftarrow -leftwin -leftctrl -leftarrow
normal-mode.remapping.rightvirtualdesktop=+tab-0 +rightarrowbasekey-0 -> +leftwin +leftctrl +rightarrow -leftwin -leftctrl -rightarrow
# Arrow keys with leftalt + ijkl.
_toarrowmode-mode.to.arrowbasekey-mode=\
_{none | arrowkeymodifier} +leftalt-0 +anyarrowbasekey \
| +leftalt-0 #leftshift-0 +anyarrowbasekey \
| +leftalt-0 #leftctrl-0 +anyarrowbasekey \
| +leftalt-0 #leftshift-0 #leftctrl-0 +anyarrowbasekey \
| +leftalt-0 #leftctrl-0 #leftshift-0 +anyarrowbasekey \
| +leftalt-0 #leftwin-0 +anyarrowbasekey \
| _{leftalt} +anyarrowbasekey
idle-mode.to=_toarrowmode-mode.to
normal-mode.to=_toarrowmode-mode.to
slow-mode.to.arrowbasekey-mode=+leftalt-0 +anyarrowbasekey
arrowbasekey-mode.to.previous-mode-from-history-stack=-leftalt
arrowbasekey-mode.remapping.pressuparrow=_{none | arrowkeymodifier} +uparrowbasekey -> +uparrow
arrowbasekey-mode.remapping.releaseuparrow=-uparrowbasekey | _{uparrowbasekey} -leftalt -> -uparrow
arrowbasekey-mode.remapping.pressdownarrow=_{none | arrowkeymodifier} +downarrowbasekey -> +downarrow
arrowbasekey-mode.remapping.releasedownarrow=-downarrowbasekey | _{downarrowbasekey} -leftalt -> -downarrow
arrowbasekey-mode.remapping.pressleftarrow=_{none | arrowkeymodifier} +leftarrowbasekey -> +leftarrow
arrowbasekey-mode.remapping.releaseleftarrow=-leftarrowbasekey | _{leftarrowbasekey} -leftalt -> -leftarrow
arrowbasekey-mode.remapping.pressrightarrow=_{none | arrowkeymodifier} +rightarrowbasekey -> +rightarrow
arrowbasekey-mode.remapping.releaserightarrow=-rightarrowbasekey | _{rightarrowbasekey} -leftalt -> -rightarrow
idle-mode.remapping.releasealt=_{leftalt} +anyarrowbasekey -> -leftalt
normal-mode.remapping.releasealt=_{leftalt} +anyarrowbasekey -> -leftalt
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment