config/slate/.slate

105 lines
3.5 KiB
Plaintext

# This is my modified .slate file.
# It is based off the default (https://raw.githubusercontent.com/jigish/slate/master/Slate/default.slate)
# as well as pdilyard's (https://github.com/pdilyard/dotfiles/blob/master/.slate).
config defaultToCurrentScreen true
config nudgePercentOf screenSize
config resizePercentOf screenSize
# set screens
alias macbook 1680x1050
alias monitor 3008x1692
# variables
alias width screenSizeX
alias height screenSizeY
alias originX screenOriginX
alias originY screenOriginY
alias oneThirdWidth ${width}/3
alias oneHalfWidth ${width}/2
alias twoThirdsWidth (${oneThirdWidth}*2)
alias oneHalfHeight ${height}/2
# positions
alias full move ${originX};${originY} ${width};${height}
alias leftHalf move ${originX};${originY} ${oneHalfWidth};${height}
alias rightHalf move (${originX}+${oneHalfWidth});${originY} ${oneHalfWidth};${height}
alias topHalf move ${originX};${originY} ${width};${oneHalfHeight}
alias bottomHalf move ${originX};${originY}+${oneHalfHeight} ${width};${oneHalfHeight}
alias leftOneThird move ${originX};${originY} ${oneThirdWidth};${height}
alias leftTwoThirds move ${originX};${originY} ${twoThirdsWidth};${height}
alias centerOneThird move (${originX}+${oneThirdWidth});${originY} ${oneThirdWidth};${height}
alias rightTwoThirds move (${originX}+${oneThirdWidth});${originY} ${twoThirdsWidth};${height}
alias rightOneThird move (${originX}+${twoThirdsWidth});${originY} ${oneThirdWidth};${height}
# static positions
alias macbookFull ${full} ${macbook}
alias monitorFull ${full} ${monitor}
alias monitorLeft ${leftHalf} ${monitor}
alias monitorRight ${rightHalf} ${monitor}
# keybinding alias
alias movetrigger cmd,alt
alias extramovetrigger shift,cmd,alt
alias apptrigger ctrl,shift
# quick switching to commonly used apps
bind space:${apptrigger} focus 'Terminal'
bind t:${apptrigger} focus 'Terminal'
bind c:${apptrigger} focus 'Google Chrome'
bind s:${apptrigger} focus 'Slack'
# movement keys
bind f:${movetrigger} ${full}
bind left:${movetrigger} ${leftHalf}
bind right:${movetrigger} ${rightHalf}
bind up:${movetrigger} ${topHalf}
bind down:${movetrigger} ${bottomHalf}
bind left:${extramovetrigger} ${leftOneThird}
bind right:${extramovetrigger} ${rightOneThird}
bind m:${extramovetrigger} ${centerOneThird}
bind up:${extramovetrigger} ${leftTwoThirds}
bind down:${extramovetrigger} ${rightTwoThirds}
# move to other monitors
bind left:shift,ctrl,cmd throw 0 resize
bind right:shift,ctrl,cmd throw 1 resize
# laptop layout for coding
layout laptop-coding 'Terminal':REPEAT ${full}
layout laptop-coding 'Google Chrome':REPEAT ${full}
layout laptop-coding 'Slack':REPEAT ${full}
# laptop layout for code review
layout laptop-code-review 'Terminal':REPEAT ${rightHalf}
layout laptop-code-review 'Google Chrome':REPEAT ${leftHalf}
layout laptop-coding 'Slack':REPEAT ${full}
# in-the-office layout for coding
layout office-coding 'Terminal':REPEAT ${monitorFull}
layout office-coding 'Google Chrome':REPEAT ${macbookFull}
layout office-coding 'Slack':REPEAT ${macbookFull}
# in-the-office layout for code review
layout office-code-review 'Terminal':REPEAT ${monitorRight}
layout office-code-review 'Google Chrome':REPEAT ${monitorLeft}
layout office-code-review 'Slack':REPEAT ${macbookFull}
# default layouts
default laptop-coding resolutions:${macbook}
default office-coding resolutions:${macbook},${monitor}
# bind layouts to keys
bind 1:${movetrigger} layout office-coding
bind 2:${movetrigger} layout office-code-review
bind 3:${movetrigger} layout laptop-coding
bind 4:${movetrigger} layout laptop-code-review