Skip to content

Instantly share code, notes, and snippets.

@kjhealy
Last active December 16, 2015 18:59
Show Gist options
  • Save kjhealy/5481983 to your computer and use it in GitHub Desktop.
Save kjhealy/5481983 to your computer and use it in GitHub Desktop.
Slate config file
# Configs
config defaultToCurrentScreen true
config nudgePercentOf screenSize
config resizePercentOf screenSize
config secondsBetweenRepeat 0.1
config checkDefaultsOnLoad true
config windowHintsShowIcons true
config windowHintsIgnoreHiddenWindows false
#config windowHintsDuration 5
config windowHintsSpread true
config windowHintsSpreadSearchWidth 160
config windowHintsSpreadSearchHeight 70
config windowHintsHeight 80
config windowHintsWidth 80
config switchIconSize 80
#config windowHintsOrder persist
# Monitor Aliases
alias mon-retina 1
alias mon-external 0
# Misc Aliases
alias showHintsLeftHand hint QWERASDZXC
alias showNormalHint hint QWERASDZXCRTYFGHVBN
alias browser 'Safari'
alias editor 'TextMate'
# Abstract positions
alias full move screenOriginX;screenOriginY screenSizeX;screenSizeY
alias lefthalf move screenOriginX;screenOriginY screenSizeX/2;screenSizeY
alias righthalf move screenOriginX+screenSizeX/2;screenOriginY screenSizeX/2;screenSizeY
alias rightmost move screenOriginX+screenSizeX*0.25;screenOriginY screenSizeX*0.75;screenSizeY
alias rightless move screenOriginX+screenSizeX*0.75;screenOriginY screenSizeX*0.25;screenSizeY
alias leftmost move screenOriginX;screenOriginY screenSizeX*0.75;screenSizeY
alias leftless move screenOriginX;screenOriginY screenSizeX*0.25;screenSizeY
# Concrete positions
alias 1-full move screenOriginX;screenOriginY screenSizeX;screenSizeY ${mon-retina}
alias 1-left move screenOriginX;screenOriginY screenSizeX/2;screenSizeY ${mon-retina}
alias 1-right move screenOriginX+screenSizeX/2;screenOriginY screenSizeX/2;screenSizeY ${mon-retina}
alias 2-left move screenOriginX;screenOriginY screenSizeX/2;screenSizeY ${mon-external}
alias 2-leftmost move screenOriginX;screenOriginY screenSizeX*0.75;screenSizeY ${mon-external}
alias 2-right move screenOriginX+screenSizeX/2;screenOriginY screenSizeX/2;screenSizeY ${mon-external}
alias 2-righttop move screenOriginX+screenSizeX/2;screenOriginY screenSizeX/2;screenSizeY/2 ${mon-external}
alias 2-rightbottom move screenOriginX+screenSizeX/2;screenOriginY+screenSizeY/2 screenSizeX/2;screenSizeY/2 ${mon-external}
alias 2-bottom move bottom bar-resize:screenSizeY ${mon-external}
alias 2-full move screenOriginX;screenOriginY screenSizeX;screenSizeY ${mon-external}
alias 2-rightless move screenOriginX+screenSizeX*0.75;screenOriginY screenSizeX*0.25;screenSizeY ${mon-external}
# 2 Monitor layout
layout 1monitor 'BusyCal':MAIN_FIRST ${2-full}
layout 2monitors 'Safari':REPEAT ${2-leftmost}
layout 2monitors 'Terminal':MAIN_FIRST ${2-rightbottom} | ${1-left}
layout 2monitors 'TextMate':REPEAT ${1-full}
layout 2monitors 'Sublime Text 2':REPEAT ${1-full}
layout 2monitors 'Emacs':REPEAT ${1-full}
layout 2monitors 'Mail':MAIN_FIRST ${2-left}
layout 2monitors 'Path Finder':MAIN_FIRST ${2-righttop}
layout 2monitors 'Quartz':REPEAT ${2-left}
layout 2monitors 'iTunes':REPEAT ${2-right}
layout 2monitors 'Tweetbot':MAIN_FIRST ${2-rightless}
# 1 Monitor layout
layout 1monitor 'Terminal':MAIN_FIRST ${1-right}
layout 1monitor 'Sublime Text 2':MAIN_FIRST ${1-left}
layout 1monitor 'Emacs':MAIN_FIRST ${1-full}
layout 1monitor 'Safari':REPEAT ${1-left}
layout 1monitor 'Mail':MAIN_FIRST ${1-left}
layout 1monitor 'Path Finder':MAIN_FIRST ${1-full}
layout 1monitor 'Tweetbot':MAIN_FIRST ${rightless}
layout 1monitor 'Busycal':MAIN_FIRST ${1-left}
# Default Layouts
default 1monitor resolutions:${mon-retina}
default 2monitors resolutions:${mon-retina};${mon-external};
# Bindings
modal-key: s:alt
bind 0:alt ${showHintsLeftHand}
bind z:alt,s ${leftless}
bind x:alt,s push bottom bar-resize:screenSizeY/2
bind c:alt,s ${rightless}
bind a:alt,s ${lefthalf}
bind s:alt,s ${full}
bind d:alt,s ${righthalf}
bind q:alt,s ${leftmost}
bind w:alt,s push top bar-resize:screenSizeY/2
bind e:alt,s ${rightmost}
bind 1:alt,s grid padding:5 ${mon-retina}:8,4 ${mon-external}:8,4}
bind x:alt,shift nudge +20 +0
bind z:alt,shift nudge -20 +0
bind q:alt,shift throw next
bind .:alt focus behind
bind w:alt,shift layout 2monitors
bind e:alt,shift layout 1monitor
ind e:alt,cmd ${showNormalHint}
#bind tab:cmd switch
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment