Skip to content

Instantly share code, notes, and snippets.

@aaronlifton3
Created March 16, 2013 00:23
Show Gist options
  • Save aaronlifton3/5174257 to your computer and use it in GitHub Desktop.
Save aaronlifton3/5174257 to your computer and use it in GitHub Desktop.
my .slate file
# Configs
config defaultToCurrentScreen true
config nudgePercentOf screenSize
config resizePercentOf screenSize
config secondsBetweenRepeat 0.1
config checkDefaultsOnLoad true
config focusCheckWidthMax 3000
config windowHintsShowIcons true
config windowHintsIgnoreHiddenWindows false
config windowHintsSpread true
config windowHintsShowIcons true
config windowHintsIgnoreHiddenWindows false
#config focusPreferSameApp false
# Monitor Aliases
alias mon-lap 1280x800
alias mon-big 1920x1080
# app aliases
alias term 'iTerm'
alias browser 'WebKit'
alias editor1 'Sublime Text 2'
alias editor2 'MacVim'
alias editor3 'Coda'
# hyper hack with PCKeyboardRemap
#alias hyper ctrl;shift;alt;cmd
# Position Aliases
alias 1-bot move screenOriginX;screenOriginY+screenSizeY/2 screenSizeX;screenSizeY/2
alias 1-bot-l move screenOriginX;screenOriginY+screenSizeY/2 screenSizeX/2;screenSizeY/2
alias 1-bot-m move screenOriginX+screenSizeX/3;screenOriginY+screenSizeY/2 screenSizeX/3;screenSizeY/2
alias 1-bot-r move screenOriginX+screenSizeX/2;screenOriginY+screenSizeY/2 screenSizeX/2;screenSizeY/2
alias 1-mid move screenOriginX+screenSizeX/8;screenOriginY+screenSizeY/8 3*screenSizeX/4;3*screenSizeY/4
alias 1-top move screenOriginX;screenOriginY screenSizeX;screenSizeY/2
alias 1-top-l move screenOriginX;screenOriginY screenSizeX/2;screenSizeY/2
alias 1-top-m move screenOriginX+screenSizeX/3;screenOriginY screenSizeX/3;screenSizeY/2
alias 1-top-r move screenOriginX+screenSizeX/2;screenOriginY screenSizeX/2;screenSizeY/2
alias 1-left move screenOriginX;screenOriginY screenSizeX/2;screenSizeY
alias 1-right move screenOriginX+screenSizeX/2;screenOriginY screenSizeX/2;screenSizeY
alias 1-full move screenOriginX;screenOriginY screenSizeX;screenSizeY
alias 1-chat move screenOriginX;screenOriginY screenSizeX/9;screenSizeY
alias 1-chat-full move screenOriginX+screenSizeX/9;screenOriginY 8*screenSizeX/9;screenSizeY
alias 1-todo move screenOriginX+917;screenOriginY+167 364;540
alias 2-todo move screenOriginX+1;screenOriginY+539 364;540
# 2 Monitor layout
layout 2monitors 'iTerm':SORT_TITLE ${1-top-r} ${mon-big} | ${1-bot-l} ${mon-big} | ${1-left}
layout 2monitors 'Webkit':REPEAT ${1-full}
layout 2monitors 'Google Chrome':REPEAT ${1-left} ${mon-big} | ${1-full}
layout 2monitors 'Wunderlist':REPEAT ${2-todo}
layout 2monitors 'Clear':REPEAT ${2-todo}
layout 2monitors 'MacVim' ${1-bot-r} ${mon-big} | ${1-bot-l} | ${1-top-m}
layout 2monitors 'Reminders' ${1-top-l}
#layout 2monitors 'GitX':REPEAT ${1-full}
layout 2monitors 'Messages':IGNORE_FAIL ${1-chat}
layout 2monitors 'Firefox':REPEAT ${1-mid}
layout 2monitors 'WebStorm':REPEAT ${1-top}
layout 2monitors 'Eclipse':REPEAT ${1-full}
layout 2monitors 'iTunes':REPEAT ${1-full}
# 1 Monitor layout
layout 1monitor 'iTerm':SORT_TITLE,REPEAT ${1-bot-l} | ${1-bot-m} | ${1-bot-r}
layout 1monitor 'Webkit':REPEAT ${1-full}
layout 1monitor 'Google Chrome':REPEAT ${1-full}
layout 1monitor 'MacVim':REPEAT ${1-top-r} | ${1-top-l} | ${1-top-m}
layout 1monitor 'Wunderlist':REPEAT ${1-todo}
layout 1monitor 'Clear':REPEAT ${1-todo}
layout 1monitor 'Reminders':REPEAT ${1-full}
layout 1monitor 'GitX':REPEAT ${1-full}
layout 1monitor 'Sublime Text 2':REPEAT ${1-left}
layout 1monitor 'Messages':IGNORE_FAIL ${1-chat}
layout 1monitor 'Firefox':REPEAT ${1-full}
layout 1monitor 'WebStorm':REPEAT ${1-full}
layout 1monitor 'Eclipse':REPEAT ${1-full}
layout 1monitor 'iTunes':REPEAT ${1-full}
# Default Layouts
default 2monitors resolutions:${mon-lap};${mon-big}
default 1monitor resolutions:${mon-lap}
# PCKeyboardRemap Hax
alias hyper ctrl;shift;alt;cmd
# Basic location bindings
bind o:${hyper} ${1-full}
bind h:${hyper} ${1-left}
bind l:${hyper} ${1-right}
bind u:${hyper} ${1-top-l}
bind j:${hyper} ${1-bot}
bind k:${hyper} ${1-top}
bind n:${hyper} ${1-bot-l}
bind m:${hyper} ${1-bot-r}
bind u:${hyper} ${1-top-l}
bind i:${hyper} ${1-top-r}
bind g:${hyper} ${1-mid}
bind o:ctrl;cmd ${1-full}
bind h:ctrl;cmd ${1-left}
bind l:ctrl;cmd ${1-right}
bind u:ctrl;cmd ${1-top-l}
bind j:ctrl;cmd ${1-bot}
bind k:ctrl;cmd ${1-top}
bind n:ctrl;cmd ${1-bot-l}
bind m:ctrl;cmd ${1-bot-r}
bind u:ctrl;cmd ${1-top-l}
bind i:ctrl;cmd ${1-top-r}
bind g:ctrl;cmd ${1-mid}
# hyper bindingsind o:ctrl;cmd ${1-full}
bind h:ctrl;cmd ${1-left}
bind l:ctrl;cmd ${1-right}
bind u:ctrl;cmd ${1-top-l}
bind j:ctrl;cmd ${1-bot}
bind k:ctrl;cmd ${1-top}
bind n:ctrl;cmd ${1-bot-l}
bind m:ctrl;cmd ${1-bot-r}
bind u:ctrl;cmd ${1-top-l}
bind i:ctrl;cmd ${1-top-r}
bind g:ctrl;cmd ${1-mid}
bind left:ctrl;cmd ${1-left}
bind right:ctrl;cmd ${1-right}
bind up:ctrl;cmd ${1-top}
bind down:ctrl;cmd ${1-bot}
#bind ;:ctrl;cmd throw next
# Focus bindings
# NOTE: some of these may *not* work if you have not removed the expose/spaces/mission control bindings
# bind right:cmd;alt focus right
# bind left:cmd;alt focus left
# bind up:cmd;alt focus up
# bind down:cmd;alt focus down
# bind up:cmd;alt focus behind
# bind down:cmd;alt focus behind
# Layout bindings
bind 1:ctrl;shift layout 1monitor
# Window Hints
# bind esc:cmd hint
# Switch currently doesn't work well so I'm commenting it out until I fix it.
#bind tab:ctrl switch
# Grid
# bind esc:ctrl grid
bind 1:${hyper} layout 2monitors
#sequence show 'iTerm', 'Sublime Text 2', 'MacVim', 'Chrome', 'Webkit' > hide all-but: 'iTerm', 'Sublime Text 2', 'MacVim', 'Chrome', 'Webkit'
# | hide all-but: 'iTerm', 'Sublime Text 2', 'MacVim', 'Chrome', 'Webkit'
bind 2:${hyper} hide all-but: 'Webkit', 'Google Chrome'
bind 3:${hyper} chain hide all-but: 'Webkit', 'Google Chrome', 'Sublime Text 2', 'MacVim', 'Coda' | show 'Webkit' | show 'Google Chrome'
bind 4:${hyper} toggle 'Wunderlist', 'Clear','Ableton Live', 'Flint', 'Propane', 'Finder', 'Preview'
bind 5:${hyper} toggle 'Finder', 'Preview'
bind 6:${hyper} toggle 'Webkit', 'Wunderlis'
bind 9:${hyper} show all-but: 'Finder'
bind 0:${hyper} undo
# Abstract positions
alias full move screenOriginX;screenOriginY screenSizeX;screenSizeY
alias lefthalf move screenOriginX;screenOriginY screenSizeX/2;screenSizeY
alias left34 move screenOriginX;screenOriginY 3*screenSizeX/4;screenSizeY
alias righthalf move screenOriginX+screenSizeX/2;screenOriginY screenSizeX/2;screenSizeY
alias rightTwitter move screenOriginX+3*screenSizeX/4;screenOriginY screenSizeX/4;screenSizeY
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
# Numpad location bindings
bind pad1:ctrl ${bottomleft}
bind pad2:ctrl push bottom bar-resize:screenSizeY/2
bind pad3:ctrl ${bottomright}
bind pad4:ctrl ${left34}
bind pad5:ctrl ${full}
bind pad6:ctrl ${rightTwitter}
bind pad7:ctrl ${topleft}
bind pad8:ctrl push top bar-resize:screenSizeY/2
bind pad6:ctrl;cmd push right bar-resize:4*screenSizeX/5
bind pad4:ctrl;cmd push left bar-resize:screenSizeX/5
bind pad9:ctrl ${topright}
# pad symbol bindings
# bind pad-:cmd resize -10% -10%
# bind pad+:cmd resize +0 +10%
# bind pad+:${hyper} nudge +10% +0
# bind pad-:${hyper} resize -10% +0
# bind pad*:${hyper} nudge +0 -10%
# bind pad/:${hyper} nudge +0 +10%
bind pad0:${hyper} throw next
bind padEnter:ctrl layout 2monitors
#bind tab:cmd switch 1280x800
bind pad1:alt corner bottom-left
bind pad2:alt push bottom
bind pad3:alt corner bottom-right
bind pad4:alt push left
bind pad6:alt push right
bind pad7:alt corner top-left
bind pad8:alt push up
bind pad9:alt corner top-right
# hyper config test
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 35left move screenOriginX;screenOriginY 3*screenSizeX/9;screenSizeY
alias thirdmid move 3*screenSizeX/9;screenOriginY 3*screenSizeX/9;screenSizeY
alias 35right move 6*screenSizeX/9;screenOriginY 3*screenSizeX/9;screenSizeY
alias 23left move screenOriginX;screenOriginY 2*screenSizeX/3;screenSizeY
alias 23mid corner top-left resize:screenSizeX/2;screenSizeY/2
alias 32right chain move 2*screenSizeX/3;screenOriginY screenSizeX;screenSizeY
bind pad1:${hyper} ${1-bot-l}
bind pad2:${hyper} ${1-bot-m}
bind pad3:${hyper} ${1-bot-r}
bind pad4:${hyper} ${lefthalf}
bind pad5:${hyper} ${full}
bind pad6:${hyper} ${righthalf}
bind pad7:${hyper} ${1-top-l}
bind pad8:${hyper} ${1-top-m}
bind pad9:${hyper} ${1-top-r}
#bind ;:${hyper} throw next
# Location bindintgs
bind t:${hyper} move screenOriginX;screenOriginY 2*screenSizeX/3;screenSizeY
bind y:${hyper} move screenOriginX+2*screenSizeX/3;screenOriginY screenSizeX/3;screenSizeY
#bind s:${hyper} ${1-right}
bind r:${hyper} throw next
# Nudge Bindings
#bind h:${hyper} nudge -10% +0
#bind g:${hyper} nudge +10% +0
bind e:${hyper} hint ASDFGHJKLQWERTYUIOPCVBN
bind f:${hyper} grid padding:5 1280x800:6,3 1920x1080:8,5
# Focus Bindings
bind right:${hyper} focus right
bind left:${hyper} focus left
bind up:${hyper} focus up
bind down:${hyper} focus behind
## App bindings
bind e:${hyper} chain focus ${browser} | hide ${browser}
bind u:${hyper} chain focus ${editor1} | hide ${editor1}
#bind x:${hyper} chain focus 'Xcode' | hide 'Xcode'
#bind -:1;${hyper} chain focus 'Mail' | hide 'Mail'
bind s:${hyper} focus 'iTerm'
#bind 1:${hyper} chain sequence focus right > push left | sequence focus behind > push right > focus behind > push left > focus above > push right
#bind 2:${hyper} chain sequence focus behind > push left > focus above > push right | push left
bind padEnter:${hyper} relaunch
bind 0:cmd;ctrl relaunch
bind 0:${hyper} relaunch
#bind `:${hyper} switch
# Test Cases
source .slate.test if_exists
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment