Skip to content

Instantly share code, notes, and snippets.

@purcell
Last active February 7, 2018 20:57
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 purcell/9567719 to your computer and use it in GitHub Desktop.
Save purcell/9567719 to your computer and use it in GitHub Desktop.
Slate config
# See https://github.com/jigish/slate#readme
config defaultToCurrentScreen true
config nudgePercentOf screenSize
config resizePercentOf screenSize
config focusPreferSameApp false
config focusCheckWidthMax 3000
config checkDefaultsOnLoad true
config windowHintsShowIcons true
config windowHintsSpread true
config windowHintsSpreadPadding 5
config windowHintsIgnoreHiddenWindows false
alias mbp 1
alias dell 0
alias top-half move screenOriginX;screenOriginY screenSizeX;screenSizeY/2
alias bottom-half move screenOriginX;screenOriginY+screenSizeY/2 screenSizeX;screenSizeY/2
alias left-half move screenOriginX;screenOriginY screenSizeX/2;screenSizeY
alias right-half move screenOriginX+screenSizeX/2;screenOriginY screenSizeX/2;screenSizeY
alias top-left move screenOriginX;screenOriginY screenSizeX/2;screenSizeY/2
alias top-right move screenOriginX+screenSizeX/2;screenOriginY screenSizeX/2;screenSizeY/2
alias bottom-left move screenOriginX;screenOriginY+screenSizeY/2 screenSizeX/2;screenSizeY/2
alias bottom-right move screenOriginX+screenSizeX/2;screenOriginY+screenSizeY/2 screenSizeX/2;screenSizeY/2
alias maximized move screenOriginX;screenOriginY screenSizeX;screenSizeY
layout 2monitors 'Emacs':REPEAT ${right-half} ${dell}
layout 2monitors 'Google Chrome':REPEAT ${left-half} ${dell}
layout 2monitors 'Firefox':REPEAT ${left-half} ${dell}
layout 2monitors 'Safari':REPEAT ${left-half} ${dell}
layout 2monitors 'Mail' ${maximized} ${mbp}
layout 2monitors 'iTerm2':REPEAT,SORT_TITLE ${top-left} ${dell} | ${bottom-left} ${dell} | ${bottom-right} ${dell} | ${top-right} ${dell}
layout 2monitors 'iTunes' ${maximized} ${mbp}
layout 2monitors 'Spotify' ${maximized} ${mbp}
layout 2monitors 'Dash' ${maximized} ${mbp}
layout 2monitors 'Slack' ${maximized} ${mbp}
layout 2monitors 'Twitter' throw ${mbp}
layout 2monitors 'Skype' throw ${mbp}
layout 1monitor 'Emacs':REPEAT ${maximized}
layout 1monitor 'Google Chrome':REPEAT ${maximized}
layout 1monitor 'Firefox':REPEAT ${maximized}
layout 1monitor 'Safari':REPEAT ${maximized}
layout 1monitor 'iTerm2':REPEAT,SORT_TITLE ${top-left} | ${bottom-left} | ${bottom-right} | ${top-right}
default 2monitors count:2
default 1monitor count:1
bind 1:shift;ctrl;alt;cmd layout 1monitor
bind 2:shift;ctrl;alt;cmd layout 2monitors
bind q:shift;ctrl;alt;cmd relaunch
# Positioning
bind w:ctrl;alt;cmd ${top-half}
bind x:ctrl;alt;cmd ${bottom-half}
bind a:ctrl;alt;cmd ${left-half}
bind d:ctrl;alt;cmd ${right-half}
bind q:ctrl;alt;cmd ${top-left}
bind e:ctrl;alt;cmd ${top-right}
bind z:ctrl;alt;cmd ${bottom-left}
bind c:ctrl;alt;cmd ${bottom-right}
bind s:ctrl;alt;cmd ${maximized}
# Move between screens
bind /:ctrl;alt;cmd throw next
# Focus Bindings
bind right:alt;cmd focus right
bind left:alt;cmd focus left
bind up:alt;cmd focus up
bind down:alt;cmd focus down
bind down:ctrl;alt;cmd focus behind
# Window Hints
bind tab:alt hint ASDFGHJKL
# Tab switcher
#bind tab:cmd switch
#bind tab:shift;cmd switch
#bind g:ctrl;alt;cmd grid padding:5 0:screenSizeX/8,screenSizeY/8 1:screenSizeX/8,screenSizeY/8
# Local Variables:
# mode: conf
# End:
@purcell
Copy link
Author

purcell commented Jun 4, 2014

Back in 1997 I worked on a Solaris workstation with an awesome X11 window manager the name of which I can't now recall. I created the "Positioning" tiling shortcuts above back then, and missed them for many years after I left that work environment. I finally managed to recreate them when I bought Moom, and then subsequently moved to Slate.

Additionally, this config applies some basic rules for tiling a variety of apps when a large external monitor is connected to (or disconnected from) my Macbook Air.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment