Skip to content

Instantly share code, notes, and snippets.

@groutoutlook
Last active August 20, 2025 11:00
Show Gist options
  • Select an option

  • Save groutoutlook/9cdd05fd6b2ee74689d4431bae63a7f5 to your computer and use it in GitHub Desktop.

Select an option

Save groutoutlook/9cdd05fd6b2ee74689d4431bae63a7f5 to your computer and use it in GitHub Desktop.
config for mousemaster
# Keyboard layout names can be found here: https://learn.microsoft.com/en-us/globalization/windows-keyboard-layoutsboard-layout=US
# keyboard-layout=United States
# keyboard-layout=French
# Key aliases are shortcuts. Instead of modifying every command a key is used in,
# use an alias and only modify the alias value.
key-alias.modifierkey=leftshift leftctrl leftalt
key-alias.upGroup=uparrow
key-alias.downGroup=downarrow
key-alias.leftGroup=leftarrow
key-alias.rightGroup=rightarrow
key-alias.directionkey=uparrow downarrow leftarrow rightarrow
# key-alias.hintkey= numpad7 numpad8 numpad9 numpad4 numpad5 numpad6 numpad1 numpad2 numpad3
# key-alias.hintkey=u i o h j k b n m
# key-alias.clickthendisable=numpadadd
# key-alias.leftbutton=rightshift
# key-alias.rightClick=/
# p instead of rightbutton for screensnap because I want rightalt + [ and rightalt + ] to be passed to IntelliJ.
key-alias.idletoscreensnap=p
key-alias.positionhistorykey=m
key-alias.surgicalkey=.
key-alias.leftbutton=rightshift tab
key-alias.hintleftbutton=space
# rightalt
key-alias.middlebutton=; #
key-alias.rightbutton.uk-qwerty=/
#key-alias.rightbutton= rightshift
key-alias.hintback=backspace h
# h is not in accidentalhintkey because it is in hintback.
key-alias.hintkey=q w e r a s d f
key-alias.hint1key.us-qwerty=q w e r t a s d f
key-alias.hint2key.us-qwerty=q w e r t a s d f
key-alias.accidentalhintkey=1 2 3 4 5 6 7 8 9 0 q w e r t y u i o a s d f g j k l z x c v b n 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.rightAltGroup= f14
#rightalt
key-alias.rightCtrlGroup=rightctrl
# Min and max duration separating two consecutive key events
default-combo-move-duration-millis=0-250
max-position-history-size=16
# Stop ongoing mouse movement/button clicking when entering idle mode.
idle-mode.stop-commands-from-previous-mode=true
idle-mode.push-mode-to-history-stack=true
idle-mode.to.normal-mode=_{none | modifierkey} +rightctrl -rightctrl
#idle-mode.to.normal-mode=+leftwin-0-1000 +e
# When a menu is opened, usually pressing alt will close it. To avoid that, alt must be eaten.
# Eat rightalt when normal mode was just disabled, this is for accessing hint mode when a menu/popup is open.
# idle-mode.to.hint1-mode=#rightalt-250 -rightalt | #rightctrl -rightctrl +rightalt -rightalt
#idle-mode.to.hint1-then-click-mode=#rightalt-250 -rightalt | #rightctrl -rightctrl +rightalt -rightalt
normal-mode.push-mode-to-history-stack=true
normal-mode.mode-after-unhandled-key-press=idle-mode
normal-mode.indicator.size=12
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
normal-mode.indicator.left-mouse-press-color=#00FF00
normal-mode.indicator.middle-mouse-press-color=#FF00FF
normal-mode.indicator.right-mouse-press-color=#00FFFF
normal-mode.timeout.duration-millis=5000
normal-mode.timeout.mode=idle-mode
# Do not eat the rightCtrlGroup key press event (#) so it can be used by other apps.
# ^{up down left right} requires that up, down, left, and right are unpressed.
normal-mode.to.idle-mode=^{directionkey} #rightCtrlGroup -rightCtrlGroup
normal-mode.mouse.initial-velocity=300
normal-mode.mouse.max-velocity=1250
normal-mode.mouse.acceleration=1000
normal-mode.mouse.smooth-jump-enabled=true
normal-mode.mouse.smooth-jump-velocity=15000
# Do not start moving if snapping to grid (can still start moving then snap).
# Allow moving while leftshift is pressed.
normal-mode.start-move.up=^{rightCtrlGroup rightAltGroup} _{none | modifierkey} +upGroup
normal-mode.start-move.down=^{rightCtrlGroup rightAltGroup} _{none | modifierkey} +downGroup
normal-mode.start-move.left=^{rightCtrlGroup rightAltGroup} _{none | modifierkey} +leftGroup
normal-mode.start-move.right=^{rightCtrlGroup rightAltGroup} _{none | modifierkey} +rightGroup
normal-mode.stop-move.up=-upGroup
normal-mode.stop-move.down=-downGroup
normal-mode.stop-move.left=-leftGroup
normal-mode.stop-move.right=-rightGroup
# Capture leftctrl (i.e. do not exit to idle mode when leftctrl is pressed) to be able to ctrl-click.
# We still want leftalt + space to open Windows popup (restore/minimize/maximize/close).
normal-mode.press.left=^{leftalt} _{none | leftshift*leftctrl | positionhistorykey} +leftbutton | _{none | leftshift*leftctrl} #leftalt-250 +leftbutton
normal-mode.press.middle=+middlebutton
normal-mode.press.right=_{none | modifierkey | positionhistorykey} +rightbutton
# Left button will not be released if rightshift is held for more than 250ms.m
normal-mode.release.left=^{leftalt} _{none | leftshift*leftctrl | positionhistorykey} +leftbutton-0-250 -leftbutton
normal-mode.release.middle=-middlebutton
# Right button will not be released if / is held for more than 250ms.
normal-mode.release.right=_{none | modifierkey | positionhistorykey} +rightbutton-0-250 -rightbutton
normal-mode.to.position-history-mode=^{directionkey} +positionhistorykey-0
position-history-mode.position-history.save-position=+rightalt-0-500 | +leftalt-0-500
position-history-mode.position-history.unsave-position=+positionhistoryhintkey-500
position-history-mode.position-history.clear=+rightalt-500
position-history-mode.to.position-history-mode=-rightalt | +rightalt-500 | +positionhistoryhintkey-500 | +leftalt-0-500
position-history-mode.hint=hint1-mode.hint
#position-history-mode.hint.break-combo-preparation=+hintkey
position-history-mode.hint.font-shadow-blur-radius=3.3333
position-history-mode.hint.font-name=Consolas
position-history-mode.hint.font-shadow-horizontal-offset=1
position-history-mode.hint.font-shadow-vertical-offset=1
position-history-mode.hint.subgrid-column-count=2
position-history-mode.hint.subgrid-row-count=1
position-history-mode.hint.font-size=20
# key-alias.positionhistoryhintkey.uk-qwerty=i j k l
key-alias.positionhistoryhintkey.uk-qwerty=q w e a s d
position-history-mode.hint.selection-keys=positionhistoryhintkey
position-history-mode.hint.mode-after-selection=position-history-mode
position-history-mode.to.previous-mode-from-history-stack=-positionhistorykey
position-history-mode.hint.type=position-history
position-history-mode.indicator=normal-mode.indicator
position-history-mode.press=normal-mode.press
position-history-mode.release=normal-mode.release
position-history-mode.to.screen-grid-mode=+backspace | +capslock
position-history-mode.to.idle-mode=+esc
#normal-mode.to.hint1-mode=#rightAltGroup -rightAltGroup
normal-mode.to.hint1-then-click-mode=#rightAltGroup -rightAltGroup
normal-mode.to.fast-mouse-mode=_{directionkey | modifierkey directionkey} +rightCtrlGroup
normal-mode.to.wheel-mode=^{rightCtrlGroup rightAltGroup} _{none | modifierkey} +directionkey -directionkey +directionkey
wheel-mode.to.normal-mode=^{directionkey}
wheel-mode.indicator=normal-mode.indicator
wheel-mode.mouse=normal-mode.mouse
wheel-mode.wheel.initial-velocity=1000
wheel-mode.wheel.max-velocity=1000
wheel-mode.wheel.acceleration=500
wheel-mode.press=normal-mode.press
wheel-mode.release=normal-mode.release
wheel-mode.start-move.up=_{none | modifierkey} +upGroup
wheel-mode.start-move.down=_{none | modifierkey} +downGroup
wheel-mode.start-move.left=_{none | modifierkey} +leftGroup
wheel-mode.start-move.right=_{none | modifierkey} +rightGroup
# Stop moving when wheeling
wheel-mode.stop-move.up=-upGroup | _{none | modifierkey} +upGroup -upGroup +upGroup
wheel-mode.stop-move.down=-downGroup | _{none | modifierkey} +downGroup -downGroup +downGroup
wheel-mode.stop-move.left=-leftGroup | _{none | modifierkey} +leftGroup -leftGroup +leftGroup
wheel-mode.stop-move.right=-rightGroup | _{none | modifierkey} +rightGroup -rightGroup +rightGroup
wheel-mode.start-wheel.up=_{none | modifierkey} +upGroup -upGroup +upGroup
wheel-mode.start-wheel.down=_{none | modifierkey} +downGroup -downGroup +downGroup
wheel-mode.start-wheel.left=_{none | modifierkey} +leftGroup -leftGroup +leftGroup
wheel-mode.start-wheel.right=_{none | modifierkey} +rightGroup -rightGroup +rightGroup
wheel-mode.stop-wheel.up=-upGroup
wheel-mode.stop-wheel.down=-downGroup
wheel-mode.stop-wheel.left=-leftGroup
wheel-mode.stop-wheel.right=-rightGroup
wheel-mode.to.fast-wheel-mode=+rightCtrlGroup
wheel-mode.to.slow-wheel-mode=+rightAltGroup
fast-wheel-mode.to.wheel-mode=_{directionkey} -rightCtrlGroup
fast-wheel-mode.to.normal-mode=^{rightCtrlGroup directionkey}
fast-wheel-mode.indicator=normal-mode.indicator
fast-wheel-mode.mouse=normal-mode.mouse
fast-wheel-mode.press=normal-mode.press
fast-wheel-mode.release=normal-mode.release
fast-wheel-mode.start-move=wheel-mode.start-move
fast-wheel-mode.stop-move=wheel-mode.stop-move
fast-wheel-mode.wheel=wheel-mode.wheel
fast-wheel-mode.wheel.max-velocity=10000
fast-wheel-mode.wheel.acceleration=10000
fast-wheel-mode.stop-wheel=wheel-mode.stop-wheel
slow-wheel-mode.to.wheel-mode=^{rightAltGroup} _{directionkey}
slow-wheel-mode.to.normal-mode=^{rightAltGroup directionkey}
slow-wheel-mode.indicator=normal-mode.indicator
slow-wheel-mode.mouse=normal-mode.mouse
slow-wheel-mode.press=normal-mode.press
slow-wheel-mode.release=normal-mode.release
slow-wheel-mode.start-move=wheel-mode.start-move
slow-wheel-mode.stop-move=wheel-mode.stop-move
slow-wheel-mode.wheel=wheel-mode.wheel
slow-wheel-mode.wheel.max-velocity=100
slow-wheel-mode.stop-wheel=wheel-mode.stop-wheel
fast-mouse-mode.indicator=normal-mode.indicator
fast-mouse-mode.mouse=normal-mode.mouse
fast-mouse-mode.mouse.initial-velocity=1000
fast-mouse-mode.mouse.max-velocity=2000
fast-mouse-mode.mouse.acceleration=2000
fast-mouse-mode.start-move.up=+upGroup
fast-mouse-mode.start-move.down=+downGroup
fast-mouse-mode.start-move.left=+leftGroup
fast-mouse-mode.start-move.right=+rightGroup
fast-mouse-mode.stop-move=normal-mode.stop-move
fast-mouse-mode.press=normal-mode.press
fast-mouse-mode.release=normal-mode.release
fast-mouse-mode.to.normal-mode=-rightCtrlGroup
# Move mouse to window center when pressing rightCtrlGroup leftbutton quickly.
idle-mode.to.quick-window-center-mode=#rightCtrlGroup #leftbutton
quick-window-center-mode.to.normal-mode=-rightCtrlGroup
quick-window-center-mode.to.temp-window-snap-mode=_{rightCtrlGroup} -leftbutton
quick-window-center-mode.timeout.mode=idle-mode
quick-window-center-mode.timeout.duration-millis=250
quick-window-center-mode.mouse=normal-mode.mouse
quick-window-center-mode.grid=window-snap-mode.grid
quick-window-center-mode.grid.line-visible=false
quick-window-center-mode.grid.synchronization=mouse-and-grid-center-unsynchronized
quick-window-center-mode.move-to-grid-center=-leftbutton | -rightCtrlGroup
# Move mouse to screen center when pressing leftbutton rightCtrlGroup quickly.
idle-mode.to.quick-screen-center-mode=#leftbutton #rightCtrlGroup
quick-screen-center-mode.to.normal-mode=-rightCtrlGroup
quick-screen-center-mode.to.temp-screen-snap-mode=_{rightCtrlGroup} -leftbutton
quick-screen-center-mode.timeout.mode=idle-mode
quick-screen-center-mode.timeout.duration-millis=250
quick-screen-center-mode.mouse=normal-mode.mouse
quick-screen-center-mode.grid=screen-snap-mode.grid
quick-screen-center-mode.grid.line-visible=false
quick-screen-center-mode.grid.synchronization=mouse-and-grid-center-unsynchronized
quick-screen-center-mode.move-to-grid-center=-leftbutton | -rightCtrlGroup
normal-mode.to.temp-screen-snap-mode=^{directionkey leftbutton} #rightCtrlGroup | ^{directionkey} +leftbutton-40 #rightCtrlGroup
normal-mode.to.quick-screen-center-mode=+leftbutton-0-40 #rightCtrlGroup
idle-mode.to.screen-grid-mode=_{none | modifierkey} #rightCtrlGroup-250
# temp-screen-snap-mode times out to screen-grid-mode after 250ms,
# unless an arrow key is pressed (then, it switches to screen-snap-mode)
temp-screen-snap-mode.indicator=normal-mode.indicator
temp-screen-snap-mode.mouse=normal-mode.mouse
temp-screen-snap-mode.to.normal-mode=^{leftbutton} -rightCtrlGroup | -rightCtrlGroup -leftbutton
temp-screen-snap-mode.to.idle-mode=^{directionkey} #rightCtrlGroup -rightCtrlGroup
temp-screen-snap-mode.grid.area=active-screen
temp-screen-snap-mode.grid.area-width-percent=1.0
temp-screen-snap-mode.grid.area-height-percent=1.0
temp-screen-snap-mode.grid.row-count=4
temp-screen-snap-mode.grid.column-count=4
temp-screen-snap-mode.grid.line-visible=true
temp-screen-snap-mode.grid.line-color=#FF0000
temp-screen-snap-mode.timeout.duration-millis=250
temp-screen-snap-mode.timeout.mode=screen-grid-mode
# Timeout will be triggered even when a mouse button is being pressed.
temp-screen-snap-mode.timeout.only-if-idle=false
temp-screen-snap-mode.to.screen-snap-mode=+directionkey
temp-screen-snap-mode.to.temp-window-snap-mode=+leftbutton -leftbutton | #rightCtrlGroup +leftbutton -rightCtrlGroup
# When a menu is opened, usually pressing alt will close it. To avoid that, alt must be eaten.
# This is for accessing hint mode when a menu/popup is open.
temp-screen-snap-mode.to.hint1-mode=+rightAltGroup -rightAltGroup
screen-snap-mode.indicator=normal-mode.indicator
screen-snap-mode.grid=temp-screen-snap-mode.grid
# Defines mouse configuration since screen-snap-mode needs
# it for the start-move commands.
screen-snap-mode.mouse=normal-mode.mouse
screen-snap-mode.snap.up=+upGroup
screen-snap-mode.snap.down=+downGroup
screen-snap-mode.snap.left=+leftGroup
screen-snap-mode.snap.right=+rightGroup
screen-snap-mode.to.normal-mode=-rightCtrlGroup
screen-snap-mode.to.screen-grid-mode=+leftbutton-250
screen-grid-mode.indicator=normal-mode.indicator
screen-grid-mode.mouse=normal-mode.mouse
screen-grid-mode.to.normal-mode=-rightCtrlGroup
screen-grid-mode.to.position-history-mode=+positionhistorykey -positionhistorykey
screen-grid-mode.position-history.save-position=-rightCtrlGroup
screen-grid-mode.to.idle-mode=^{directionkey} #rightCtrlGroup -rightCtrlGroup | +backspace | +capslock | +esc
screen-grid-mode.grid.area=active-screen
screen-grid-mode.grid.area-width-percent=1.0
screen-grid-mode.grid.area-height-percent=1.0
screen-grid-mode.grid.synchronization=mouse-follows-grid-center
screen-grid-mode.grid.row-count=6
screen-grid-mode.grid.column-count=6
screen-grid-mode.grid.line-visible=true
screen-grid-mode.grid.line-color=#FF0000
# INFO: Diagonal moving key, although it's maybe better if it's not those letter keys.
key-alias.diagNorthEast=w
key-alias.diagSouthEast=d
key-alias.diagSouthWest=s
key-alias.diagNorthWest=a
screen-grid-mode.move-grid.up=^{leftctrl} _{leftshift} +upGroup
screen-grid-mode.move-grid.down=^{leftctrl} _{leftshift} +downGroup
screen-grid-mode.move-grid.left=^{leftctrl} _{leftshift} +leftGroup
screen-grid-mode.move-grid.right=^{leftctrl} _{leftshift} +rightGroup
screen-grid-mode.snap.up=^{leftshift} _{leftctrl} +upGroup | ^{leftshift} +w
screen-grid-mode.snap.down=^{leftshift} _{leftctrl} +downGroup | ^{leftshift} +s
screen-grid-mode.snap.left=^{leftshift} _{leftctrl} +leftGroup | ^{leftshift} +a
screen-grid-mode.snap.right=^{leftshift} _{leftctrl} +rightGroup | ^{leftshift} +d
screen-grid-mode.shrink-grid.up=^{leftshift leftctrl} +upGroup
screen-grid-mode.shrink-grid.down=^{leftshift leftctrl} +downGroup
screen-grid-mode.shrink-grid.left=^{leftshift leftctrl} +leftGroup
screen-grid-mode.shrink-grid.right=^{leftshift leftctrl} +rightGroup
screen-grid-mode.start-move.up=_{upGroup} -rightCtrlGroup
screen-grid-mode.start-move.down=_{downGroup} -rightCtrlGroup
screen-grid-mode.start-move.left=_{leftGroup} -rightCtrlGroup
screen-grid-mode.start-move.right=_{rightGroup} -rightCtrlGroup
screen-grid-mode.move-to-grid-center=+leftshift -leftshift
screen-grid-mode.to.window-grid-mode=+leftbutton -leftbutton
screen-grid-mode.to.screen-snap-mode=+leftbutton-250
temp-window-snap-mode.indicator=normal-mode.indicator
temp-window-snap-mode.grid=temp-screen-snap-mode.grid
temp-window-snap-mode.grid.area=active-window
temp-window-snap-mode.grid.area-width-percent=1.0
temp-window-snap-mode.grid.area-height-percent=1.0
# Top inset to be able to quickly access a window's title bar (and potentially grab it and move the window).
temp-window-snap-mode.grid.area-top-inset=15
temp-window-snap-mode.grid.synchronization=mouse-follows-grid-center
temp-window-snap-mode.mouse=normal-mode.mouse
temp-window-snap-mode.snap=screen-snap-mode.snap
temp-window-snap-mode.timeout=temp-screen-snap-mode.timeout
temp-window-snap-mode.timeout.mode=window-grid-mode
temp-window-snap-mode.timeout.only-if-idle=false
temp-window-snap-mode.to.normal-mode=-rightCtrlGroup | #rightCtrlGroup +leftbutton -rightCtrlGroup -leftbutton
temp-window-snap-mode.position-history.save-position=-rightCtrlGroup
temp-window-snap-mode.to.window-snap-mode=+directionkey
window-snap-mode.indicator=normal-mode.indicator
window-snap-mode.grid=temp-window-snap-mode.grid
window-snap-mode.mouse=normal-mode.mouse
window-snap-mode.snap=screen-snap-mode.snap
window-snap-mode.to.normal-mode=-rightCtrlGroup
window-snap-mode.position-history.save-position=-rightCtrlGroup
window-snap-mode.to.window-grid-mode=+leftbutton-250
window-grid-mode.indicator=normal-mode.indicator
window-grid-mode.grid=screen-grid-mode.grid
window-grid-mode.mouse=normal-mode.mouse
window-grid-mode.grid.area=active-window
window-grid-mode.grid.area-width-percent=1.0
window-grid-mode.grid.area-height-percent=1.0
window-grid-mode.to.normal-mode=-rightCtrlGroup
window-grid-mode.position-history.save-position=-rightCtrlGroup
window-grid-mode.move-grid=screen-grid-mode.move-grid
window-grid-mode.snap=screen-grid-mode.snap
window-grid-mode.shrink-grid=screen-grid-mode.shrink-grid
window-grid-mode.start-move=screen-grid-mode.start-move
window-grid-mode.move-to-grid-center=screen-grid-mode.move-to-grid-center
window-grid-mode.to.screen-grid-mode=+leftbutton -leftbutton
window-grid-mode.to.window-snap-mode=+leftbutton-250
# INFO: surgical key is `.`
screen-grid-mode.to.surgical-mode=_{rightctrl} +n
normal-mode.to.surgical-mode=+surgicalkey
surgical-mode.indicator=normal-mode.indicator
surgical-mode.mouse=normal-mode.mouse
surgical-mode.mouse.max-velocity=120
surgical-mode.start-move.up=+upGroup
surgical-mode.start-move.down=+downGroup
surgical-mode.start-move.left=+leftGroup
surgical-mode.start-move.right=+rightGroup
surgical-mode.stop-move=normal-mode.stop-move
surgical-mode.press=normal-mode.press
surgical-mode.release=normal-mode.release
surgical-mode.zoom.percent=2.0
surgical-mode.zoom.center=mouse
surgical-mode.to.normal-mode=-surgicalkey | _{rightctrl} -n
# surgical-mode.to.screen-grid-mode=_{rightctrl} -n
# key-alias.slow=rightalt
# normal-mode.to.slow-mode=+slow
# slow-mode.to.normal-mode=-slow
# slow-mode.indicator=normal-mode.indicator
# slow-mode.mouse=normal-mode.mouse
# slow-mode.wheel=normal-mode.wheel
# slow-mode.mouse.max-velocity=250
# slow-mode.wheel.max-velocity=200
# slow-mode.start-move=normal-mode.start-move
# slow-mode.stop-move=normal-mode.stop-move
# slow-mode.start-wheel=normal-mode.start-wheel
# slow-mode.stop-wheel=normal-mode.stop-wheel
# slow-mode.press=normal-mode.press
# slow-mode.release=normal-mode.release
# Move mouse to window center when pressing rightctrl rightshift quickly.
# idle-mode.to.window-snap-mode=+rightalt +middlebutton
# Move mouse to screen center when pressing rightshift rightctrl quickly.
# idle-mode.to.screen-snap-mode=+rightalt +idletoscreensnap
# normal-mode.to.temp-screen-snap-mode=^{directionkey} +rightalt | ^{directionkey} +rightalt +rightbutton-40
# normal-mode.to.quick-screen-center-mode=+rightalt +rightbutton-0-40
# idle-mode.to.screen-grid-mode=_{none | modifierkey} +rightalt-250
# Prevent accidental presses of non-hint keys (middlebutton and rightbutton excluded).
hint1-mode.to.hint1-mode=+accidentalhintkey
hint1-mode.mouse=normal-mode.mouse
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.transition-animation-enabled=false
hint1-mode.hint.transition-animation-duration-millis=100
# 6 by 6 hint grid.
hint1-mode.hint.grid-cell-width=320
hint1-mode.hint.grid-cell-height=180
hint1-mode.hint.grid-cell-width.3840x2160-300%=213
hint1-mode.hint.grid-cell-height.3840x2160-300%=120
hint1-mode.hint.grid-cell-width.2880x1920-200%=240
hint1-mode.hint.grid-cell-height.2880x1920-200%=160
#hint1-mode.hint.layout-row-count=5
#hint1-mode.hint.layout-column-count=5
#hint1-mode.hint.layout-row-count=1
#hint1-mode.hint.layout-column-count=10000
#hint1-mode.hint.layout-row-oriented=true
##hint1-mode.hint.grid-cell-width=74
#hint1-mode.hint.grid-cell-height=36
# Test cell dimensions used for testing the thickness of the box border.
#hint1-mode.hint.grid-cell-width=90
#hint1-mode.hint.grid-cell-height=157
hint1-mode.hint.subgrid-row-count=2
hint1-mode.hint.subgrid-column-count=2
hint1-mode.hint.subgrid-border-thickness=2
hint1-mode.hint.subgrid-border-length=10
hint1-mode.hint.subgrid-border-thickness.3840x2160-300%=4
hint1-mode.hint.subgrid-border-length.3840x2160-300%=20
hint1-mode.hint.subgrid-border-thickness.2880x1920-200%=4
hint1-mode.hint.subgrid-border-length.2880x1920-200%=20
hint1-mode.hint.subgrid-border-opacity=1
hint1-mode.hint.selection-keys=hint1key
hint1-mode.hint.undo=hintback
#hint1-mode.hint.font-name=Arial
#hint1-mode.hint.font-name=Consolas
#hint1-mode.hint.font-name=Cascadia Code
#hint1-mode.hint.font-name=Verdana
#hint1-mode.hint.font-name=Segoe UI
hint1-mode.hint.font-name=Myriad Pro
#hint1-mode.hint.font-name=Lucida Console
hint1-mode.hint.font-size=72
hint1-mode.hint.font-size.3840x2160-300%=48
hint1-mode.hint.font-weight=thin
hint1-mode.hint.font-spacing-percent=0.8
hint1-mode.hint.font-color=#FFFF00
hint1-mode.hint.font-opacity=1
hint1-mode.hint.font-outline-thickness=0
hint1-mode.hint.font-outline-color=#000000
hint1-mode.hint.font-outline-opacity=1
hint1-mode.hint.font-shadow-blur-radius=5
hint1-mode.hint.font-shadow-color=#000000
hint1-mode.hint.font-shadow-opacity=0.5
hint1-mode.hint.font-shadow-horizontal-offset=0
hint1-mode.hint.font-shadow-vertical-offset=0
#hint1-mode.hint.prefix-font-color=#A3A3A3
#hint1-mode.hint.prefix-font-color=#66662B
hint1-mode.hint.selected-font-color=#D4D4A9
hint1-mode.hint.selected-font-opacity=1
hint1-mode.hint.prefix-font-color=#FFFF00
hint1-mode.hint.prefix-font-opacity=1
#hint1-mode.hint.box-color=#204E8A
hint1-mode.hint.box-color=#000000
hint1-mode.hint.box-opacity=0.2
hint1-mode.hint.box-border-thickness.3840x2160-300%=2
hint1-mode.hint.box-border-length=1000
#hint1-mode.hint.expand-boxes=false
#hint1-mode.hint.grid-max-row-count=5
#hint1-mode.hint.grid-max-column-count=5
#hint1-mode.hint.box-border-color=#CCCCCC
hint1-mode.hint.box-border-color=#FFFFFF
hint1-mode.hint.box-border-opacity=0.5
hint1-mode.hint.subgrid-border-color=#FFFF00
hint1-mode.hint.mode-after-selection=normal-mode
hint1-mode.to.hint3-1-then-click-mode=-rightalt
hint1-then-click-mode.hint=hint1-mode.hint
hint1-then-click-mode.to.hint1-then-click-mode=+accidentalhintkey
hint1-then-click-mode.mouse=normal-mode.mouse
hint1-then-click-mode.hide-cursor=hint1-mode.hide-cursor
hint1-then-click-mode.to.hint3-1-then-click-mode=-rightalt
# hint1-then-click-mode.to.hint3-1-then-click-mode=^{middlebutton rightbutton} -leftbutton | ^{leftbutton rightbutton} -middlebutton | ^{leftbutton middlebutton} -rightbutton
hint1-then-click-mode.hint.mode-after-selection=click-after-hint-mode
hint1-then-click-mode.hint.box-border-color=#FFFF00
# hint1-then-click-mode.hint.swallow-hint-end-key-press=false
hint1-then-click-mode.grid.row-count=1
hint1-then-click-mode.grid.column-count=1
hint1-then-click-mode.move-to-grid-center=+space -space
hint1-then-click-mode.to.click-after-move-to-last-selected-hint-mode=+space -space
hint1-then-click-mode.to.idle-mode=+rightalt -rightalt | +esc | +hintback | #rightctrl
hint1-then-mclick-mode=hint1-then-click-mode
hint1-then-mclick-mode.to.hint1-then-mclick-mode=+accidentalhintkey
hint1-then-mclick-mode.hint.box-border-color=#FF00FF
hint1-then-rclick-mode=hint1-then-click-mode
hint1-then-rclick-mode.to.hint1-then-rclick-mode=+accidentalhintkey
hint1-then-rclick-mode.hint.box-border-color=#00FFFF
# INFO: hint2 mode for grid and normal mode.
# normal-mode.to.hint2-mode=_{leftctrl} +'
# hint2-mode.hint.grid-cell-width=40
# hint2-mode.hint.grid-cell-height=25
# hint2-mode.hint.grid-max-row-count=6
# hint2-mode.hint.grid-max-column-count=6
# hint2-mode.to.normal-mode=_{leftctrl} +' | +leftctrl | +hintback
# hint2-mode.hint.selection-keys=hint1key
# hint2-mode.hint.undo=hintback
# hint2-mode.hint.swallow-hint-end-key-press=true
# hint2-mode.hint.grid-area=active-screen
# hint2-mode.hint.active-screen-grid-area-center=mouse
# hint2-mode.hint.active-screen-grid-area-center=screen-center
hint3-1-then-click-mode.hint=hint1-then-click-mode.hint
hint3-1-then-click-mode.hint.move-mouse=false
hint3-1-then-click-mode.to.hint1-mode=+rightalt
hint3-1-then-click-mode.to.hint1-then-click-mode=_{none | modifierkey} +leftbutton
hint3-1-then-click-mode.to.hint1-then-mclick-mode=+middlebutton
hint3-1-then-click-mode.to.hint1-then-rclick-mode=+rightbutton
hint3-1-then-click-mode.to.idle-mode=+rightalt -rightalt | +esc | +hintback | #rightctrl
hint3-1-then-click-mode.to.hint3-1-then-click-mode=+accidentalhintkey
hint3-1-then-click-mode.mouse=normal-mode.mouse
hint3-1-then-click-mode.hide-cursor=hint1-mode.hide-cursor
hint3-1-then-click-mode.hint.mode-after-selection=hint3-2-then-click-mode
# hint3-1-then-click-mode.hint.swallow-hint-end-key-press=true
hint2-2-mode.hint=hint1-mode.hint
hint2-2-mode.to.hint2-2-mode=+accidentalhintkey
hint2-2-mode.mouse=normal-mode.mouse
hint2-2-mode.hide-cursor=hint1-mode.hide-cursor
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=6
hint2-2-mode.hint.grid-max-column-count=6
hint2-2-mode.hint.selection-keys=hint2key
hint2-2-mode.zoom.percent=5.0
hint2-2-mode.zoom.center=last-selected-hint
hint2-2-mode.to.hint3-2-then-click-mode=-rightalt
hint2-2-mode.to.hint1-mode=+hintback
hint2-2-mode.to.previous-mode-from-history-stack=+rightalt -rightalt | +esc | #rightctrl
# hint2-2-mode.hint.swallow-hint-end-key-press=true
hint2-2-mode.hint.mode-after-selection=normal-mode
hint2-2-then-click-mode.zoom=hint2-2-mode.zoom
hint2-2-then-click-mode.hint=hint2-2-mode.hint
hint2-2-then-click-mode.to.hint2-2-then-click-mode=+accidentalhintkey
hint2-2-then-click-mode.mouse=normal-mode.mouse
hint2-2-then-click-mode.hide-cursor=hint1-mode.hide-cursor
hint2-2-then-click-mode.hint.box-border-color=#FFFF00
hint2-2-then-click-mode.to.hint3-2-then-click-mode=^{middlebutton rightbutton} -hintleftbutton | ^{hintleftbutton rightbutton} -middlebutton | ^{hintleftbutton middlebutton} -rightbutton
# hint2-2-then-click-mode.hint.swallow-hint-end-key-press=false
hint2-2-then-click-mode.to.idle-mode=+rightalt -rightalt | +esc | #rightctrl
hint2-2-then-click-mode.to.click-after-move-to-last-selected-hint-mode=+space -space
hint2-2-then-click-mode.move-to-last-selected-hint=+space -space
hint2-2-then-click-mode.hint.mode-after-selection=click-after-hint-mode
hint2-2-then-mclick-mode=hint2-2-then-click-mode
hint2-2-then-mclick-mode.to.hint2-2-then-mclick-mode=+accidentalhintkey
hint2-2-then-mclick-mode.hint.box-border-color=#FF00FF
hint2-2-then-rclick-mode=hint2-2-then-click-mode
hint2-2-then-rclick-mode.to.hint2-2-then-rclick-mode=+accidentalhintkey
hint2-2-then-rclick-mode.hint.box-border-color=#00FFFF
hint3-2-then-click-mode.zoom=hint2-2-mode.zoom
hint3-2-then-click-mode.hint=hint2-2-mode.hint
hint3-2-then-click-mode.hint.move-mouse=false
hint3-2-then-click-mode.to.hint3-2-then-click-mode=+accidentalhintkey
hint3-2-then-click-mode.mouse=normal-mode.mouse
hint3-2-then-click-mode.hide-cursor=hint1-mode.hide-cursor
hint3-2-then-click-mode.hint.box-border-color=#FFFF00
hint3-2-then-click-mode.to.hint2-2-mode=+rightalt
hint3-2-then-click-mode.to.hint2-2-then-click-mode=_{none | modifierkey} +leftbutton
hint3-2-then-click-mode.to.hint2-2-then-mclick-mode=^{rightalt} +middlebutton
hint3-2-then-click-mode.to.hint2-2-then-rclick-mode=^{rightalt} +rightbutton
hint3-2-then-click-mode.hint.mode-after-selection=hint3-3-then-click-mode
# hint3-2-then-click-mode.hint.swallow-hint-end-key-press=true
hint3-2-then-click-mode.to.hint3-1-then-click-mode=+hintback
hint3-2-then-click-mode.to.idle-mode=+rightalt -rightalt | +esc | #rightctrl
hint3-3-mode.hint=hint1-mode.hint
hint3-3-mode.to.hint3-3-mode=+accidentalhintkey
hint3-3-mode.mouse=normal-mode.mouse
hint3-3-mode.hide-cursor=hint1-mode.hide-cursor
hint3-3-mode.hint.type=grid
hint3-3-mode.hint.grid-area=active-screen
hint3-3-mode.hint.active-screen-grid-area-center=last-selected-hint
hint3-3-mode.hint.grid-max-row-count=6
hint3-3-mode.hint.grid-max-column-count=6
hint3-3-mode.hint.selection-keys=hint2key
hint3-3-mode.zoom.percent=30
hint3-3-mode.zoom.center=last-selected-hint
hint3-3-mode.to.hint3-3-then-click-mode=-rightalt
hint3-3-mode.to.hint2-2-mode=+hintback
hint3-3-mode.to.previous-mode-from-history-stack=+rightalt -rightalt | +esc | #rightctrl
# hint3-3-mode.hint.swallow-hint-end-key-press=true
hint3-3-mode.hint.mode-after-selection=normal-mode
hint3-3-then-click-mode.zoom=hint3-3-mode.zoom
hint3-3-then-click-mode.hint=hint3-3-mode.hint
hint3-3-then-click-mode.to.hint3-3-then-click-mode=+accidentalhintkey | +leftbutton
hint3-3-then-click-mode.mouse=normal-mode.mouse
hint3-3-then-click-mode.hide-cursor=hint1-mode.hide-cursor
hint3-3-then-click-mode.hint.box-border-color=#FFFF00
hint3-3-then-click-mode.to.hint3-3-mode=+rightalt
hint3-3-then-click-mode.hint.mode-after-selection=click-after-hint-mode
# hint3-3-then-click-mode.hint.swallow-hint-end-key-press=false
hint3-3-then-click-mode.to.hint3-2-then-click-mode=+hintback
hint3-3-then-click-mode.to.idle-mode=+rightalt -rightalt | +esc | #rightctrl
hint3-3-then-click-mode.to.click-after-move-to-last-selected-hint-mode=+space -space
hint3-3-then-click-mode.to.hint3-3-then-mclick-mode=+middlebutton
hint3-3-then-click-mode.to.hint3-3-then-rclick-mode=+rightbutton
hint3-3-then-click-mode.move-to-last-selected-hint=+space -space
hint3-3-then-mclick-mode=hint3-3-then-click-mode
hint3-3-then-mclick-mode.to.hint3-3-then-mclick-mode=+accidentalhintkey
hint3-3-then-mclick-mode.to.hint3-3-then-click-mode=-middlebutton
hint3-3-then-mclick-mode.hint.box-border-color=#FF00FF
hint3-3-then-rclick-mode=hint3-3-then-click-mode
hint3-3-then-rclick-mode.to.hint3-3-then-rclick-mode=+accidentalhintkey
hint3-3-then-rclick-mode.to.hint3-3-then-click-mode=-rightbutton
hint3-3-then-rclick-mode.hint.box-border-color=#00FFFF
click-after-hint-mode.indicator=normal-mode.indicator
click-after-hint-mode.press.left=^{middlebutton rightbutton} _{none | modifierkey} +hintkey
# Release left button only if hintkey is held for shorter than 250ms.
click-after-hint-mode.release.left=_{none | modifierkey} +hintkey-0-250 -hintkey | _{none | modifierkey} +hintkey-0-250 -hintleftbutton-0 -hintkey
click-after-hint-mode.press.middle=_{middlebutton} +hintkey
click-after-hint-mode.release.middle=+hintkey-0-250 -hintkey | +hintkey-0-250 -middlebutton-0 -hintkey
click-after-hint-mode.press.right=_{rightbutton} +hintkey
click-after-hint-mode.release.right=+hintkey-0-250 -hintkey | +hintkey-0-250 -rightbutton-0 -hintkey
click-after-hint-mode.timeout.duration-millis=250
click-after-hint-mode.timeout.mode=previous-mode-from-history-stack
# After a hint is selected, quickly press the same last hint key again to perform a second click.
# We switch the mode to itself to reset the timeout and be able to click again using the hint key.
click-after-hint-mode.to.click-after-hint-mode=^{middlebutton rightbutton} _{none | modifierkey} +hintkey-0-250 -hintkey | _{none | modifierkey} +hintkey-0-250 -hintleftbutton-0 -hintkey
# Timeout will not be triggered if left button is pressed.
click-after-hint-mode.to.normal-mode=^{modifierkey hintkey hintleftbutton middlebutton rightbutton}
click-after-hint-mode.position-history.save-position=-hintkey
click-after-move-to-last-selected-hint-mode.press.left=^{leftbutton}
click-after-move-to-last-selected-hint-mode.timeout.duration-millis=0
click-after-move-to-last-selected-hint-mode.timeout.mode=finish-click-after-move-to-last-selected-hint-mode
click-after-move-to-last-selected-hint-mode.timeout.only-if-idle=false
click-after-move-to-last-selected-hint-mode.position-history.save-position=^{leftbutton}
finish-click-after-move-to-last-selected-hint-mode.release.left=^{leftbutton}
finish-click-after-move-to-last-selected-hint-mode.timeout.duration-millis=0
finish-click-after-move-to-last-selected-hint-mode.timeout.mode=normal-mode
# Disable mousemaster when Firefox or Chrome is active
#app-alias.hibernateapp=firefox.exe chrome.exe
#idle-mode.to.hibernate-mode=_{hibernateapp}
#normal-mode.to.hibernate-mode=_{hibernateapp}
#hibernate-mode.to.idle-mode=^{hibernateapp}
# Send leftalt + left when pressing h in normal mode
normal-mode.remapping.copy=+c -> +leftctrl +c -c -leftctrl
#normal-mode.remapping.navigateback=+h -> +leftalt +leftarrow -leftarrow -leftalt
#normal-mode.remapping.navigateforward=+y -> +leftalt +rightarrow -rightarrow -leftalt
#idle-mode.remapping.minimize=+rightctrl +rightshift -> +leftwin wait-50 +down wait-50 -down wait-0 -leftwin
# Minimize active app when pressing m.
# idle-mode.remapping.close=+space-0-1000 +l -> +leftalt +space -space -leftalt wait-50 +c -c
# idle-mode.remapping.minimize=+space-0-1000 +k -> +leftalt +space -space -leftalt wait-50 +n -n
# idle-mode.remapping.wintab=+space-0-1000 +i | _{space} +i -> +leftwin +tab -tab -leftwin
# idle-mode.remapping.wintabreverse=+space-0-1000 +j | _{space} +j -> +leftshift +leftwin +tab wait-50 -tab -leftwin -leftshift
#idle-mode.remapping.test=+a -> +b wait-1000 +c wait-1000 -c -b
# Regurgitating space does not work in virtual box (keyboard SendInputs are not passed through).
# Typing mode fixes that by taking away the regurgitation (from the remapping using space)
# when typing.
# Also, typing mode allows to type space + i/j/k quickly without triggering
# the minimize/winttab/alttab remappings.
key-alias.typingkeys.uk-qwerty=a b c d e f g h i j k l m n o p q r s t u v w x y z backspace leftarrow rightarrow uparrow downarrow
idle-mode.to.typing-loop-mode=_{none | modifierkey} ^{space} #typingkeys
typing-start-mode.to=idle-mode.to
typing-start-mode.to.normal-mode=_{none | modifierkey} +rightalt -rightalt
typing-start-mode.to.typing-loop-mode=#typingkeys | #space
typing-start-mode.mode-after-unhandled-key-press=idle-mode
typing-loop-mode.to=idle-mode.to
typing-loop-mode.to.typing-start-mode=^{typingkeys space}
typing-loop-mode.to.normal-mode=_{none | modifierkey} +rightalt -rightalt
typing-start-mode.timeout.duration-millis=500
typing-start-mode.timeout.mode=idle-mode
typing-start-mode.indicator.idle-color=#0000FF
typing-loop-mode.indicator=typing-start-mode.indicator
# temp-screen-snap-mode.to.idle-mode=+rightalt-0 +,
# win+plus needs magnifier settings > reading shortcut to not be ctrl + alt
# -rightalt is required in the remapping because otherwise the (opened) magnifier does not zoom in.
#hint3-2-then-click-mode.remapping.zoomin=+hint2key -> -rightalt +leftwin += -= -leftwin
#hint3-2-then-click-mode.remapping.zoomout=+rightalt -rightalt | +esc | +backspace | +rightctrl -> +leftwin +minus -minus -leftwin
#hint2-2-mode.remapping.zoomout=+rightalt -rightalt | +esc | +backspace | +rightctrl -> +leftwin +minus -minus -leftwin
screen-grid-mode.remapping.powertoys=+space -> +leftctrl +leftalt +space wait-50 -space -leftctrl -leftalt
temp-screen-snap-mode.remapping=screen-grid-mode.remapping
idle-mode.remapping.powertoys=+rightalt-0 +space -> +leftctrl +leftalt +space wait-50 -space -leftctrl -leftalt
#normal-mode.remapping.zoomin=+rightshift -> +leftwin += -= -leftwin
#normal-mode.remapping.zoomout=-rightshift -> +leftwin +minus -minus -leftwin
#hint2-2-mode.remapping=normal-mode.remapping
#hint3-2-then-click-mode.remapping=normal-mode.remapping
#click-after-hint-mode.remapping=normal-mode.remapping
#surgical-mode.remapping=normal-mode.remapping
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment