Skip to content

Instantly share code, notes, and snippets.

@mgalushka
Last active August 29, 2015 14:09
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mgalushka/d79c68464f191ba8e11a to your computer and use it in GitHub Desktop.
Save mgalushka/d79c68464f191ba8e11a to your computer and use it in GitHub Desktop.
config defaultToCurrentScreen true
config windowHintsShowIcons true
config windowHintsIgnoreHiddenWindows false
config windowHintsSpread true
config windowHintsDuration 5
bind esc:cmd hintfac
alias mon-laptop 1680x1050
alias mon-monitor 2560x1600
alias right-top move screenOriginX+screenSizeX/2;screenOriginY screenSizeX/2;screenSizeY/2 ${mon-monitor}
alias right-bottom move screenOriginX+screenSizeX/2;screenOriginY+screenSizeY/2 screenSizeX/2;screenSizeY/2 ${mon-monitor}
alias left-top move screenOriginX;screenOriginY screenSizeX/2;screenSizeY/2 ${mon-monitor}
alias left-bottom move screenOriginX;screenOriginY+screenSizeY/2 screenSizeX/2;screenSizeY/2 ${mon-monitor}
alias full-screen move screenOriginX;screenOriginY screenSizeX;screenSizeY ${mon-laptop}
# Abstract positions
alias fullscreen move screenOriginX;screenOriginY screenSizeX;screenSizeY
alias lefthalf move screenOriginX;screenOriginY screenSizeX/2;screenSizeY
alias righthalf move screenOriginX+screenSizeX/2;screenOriginY screenSizeX/2;screenSizeY
alias tophalf move screenOriginX;screenOriginY screenSizeX;screenSizeY/2
alias bottomhalf move screenOriginX;screenOriginY+screenSizeY/2 screenSizeX;screenSizeY/2
alias topleft corner top-left resize:screenSizeX/2;screenSizeY/2
alias topright corner top-right resize:screenSizeX/2;screenSizeY/2
alias bottomleft corner bottom-left resize:screenSizeX/2;screenSizeY/2
alias bottomright corner bottom-right resize:screenSizeX/2;screenSizeY/2
bind pad9:cmd ${right-top}
bind pad6:cmd ${righthalf}
bind pad3:cmd ${right-bottom}
bind pad7:cmd ${left-top}
bind pad1:cmd ${left-bottom}
bind pad4:cmd ${lefthalf}
bind pad5:cmd ${full-screen}
bind pad8:cmd ${tophalf}
bind pad2:cmd ${bottomhalf}
bind e:alt ${right-top}
bind d:alt ${righthalf}
bind c:alt ${right-bottom}
bind q:alt ${left-top}
bind z:alt ${left-bottom}
bind a:alt ${lefthalf}
bind s:alt ${full-screen}
bind s:cmd;alt focus 'Safari'
bind t:cmd;alt focus 'Terminal'
bind e:cmd;alt focus 'Sublime Text'
bind i:cmd;alt focus 'IntelliJ IDEA'
bind p:cmd;alt focus 'PyCharm'
bind m:cmd;alt focus 'Microsoft Outlook'
bind g:cmd;alt focus 'Google Chrome'
# Concrete positions
alias 1-full move screenOriginX;screenOriginY screenSizeX;screenSizeY ${mon-laptop}
alias 2-lefthalf move screenOriginX;screenOriginY screenSizeX/2;screenSizeY ${mon-monitor}
alias 2-righthalf move screenOriginX+screenSizeX/2;screenOriginY screenSizeX/2;screenSizeY ${mon-monitor}
alias 2-topleft corner top-left resize:screenSizeX/2;screenSizeY/2 ${mon-monitor}
alias 2-topright corner top-right resize:screenSizeX/2;screenSizeY/2 ${mon-monitor}
alias 2-bottomleft corner bottom-left resize:screenSizeX/2;screenSizeY/2 ${mon-monitor}
alias 2-bottomright corner bottom-right resize:screenSizeX/2;screenSizeY/2 ${mon-monitor}
alias 2-tophalf move screenOriginX;screenOriginY screenSizeX;screenSizeY/2 ${mon-monitor}
alias 2-bottomhalf move screenOriginX;screenOriginY+screenSizeY/2 screenSizeX;screenSizeY/2 ${mon-monitor}
# 1 Monitor layout
layout 1monitor 'Mocrosoft Outlook':MAIN_FIRST ${1-full}
layout 1monitor 'LimeChat':MAIN_FIRST ${1-full}
layout 1monitor 'Terminal':REPEAT ${1-full}
layout 1monitor 'Safari':REPEAT ${1-full}
layout 1monitor 'Sublime Text':REPEAT ${1-full}
layout 1monitor 'Safari':REPEAT ${1-full}
layout 1monitor 'PyCharm':REPEAT ${1-full}
layout 1monitor 'IntelliJ IDEA':REPEAT ${1-full}
# 2 Monitor layout
layout 2monitors 'Mocrosoft Outlook':MAIN_FIRST ${1-full}
layout 2monitors 'LimeChat':MAIN_FIRST ${1-full}
layout 2monitors 'Terminal':REPEAT ${2-bottomleft}
layout 2monitors 'Safari':REPEAT ${2-topleft}
layout 2monitors 'Sublime Text':REPEAT ${2-topright}
#layout 2monitors 'Safari':REPEAT ${2-bottomleft}
layout 2monitors 'PyCharm':REPEAT ${2-bottomright}
layout 2monitors 'IntelliJ IDEA':REPEAT ${2-bottomright}
# default layouts
default 2monitors resolutions:${mon-laptop};${mon-monitor};
default 1monitor resolutions:${mon-laptop}
bind pad*:cmd layout 2monitors
bind pad/:cmd layout 1monitor
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment