Slate configuration
# ============================================================================= | |
# Configuration | |
# ============================================================================= | |
config defaultToCurrentScreen true | |
config nudgePercentOf screenSize | |
config resizePercentOf screenSize | |
config secondsBetweenRepeat 0.1 | |
config checkDefaultsOnLoad true | |
config focusCheckWidthMax 3000 | |
config windowHintsShowIcons true | |
config windowHintsBackgroundColor "0;0;0;0" | |
config windowHintsFontColor "0;0;0;1.0" | |
config windowHintsFontName Futura | |
config windowHintsFontSize 70 | |
config windowHintsIgnoreHiddenWindows false | |
config windowHintsSpread true | |
config windowHintsSpreadPadding 40 | |
config windowHintsSpreadSearchWidth 80 | |
config windowHintsSpreadSearchHeight 80 | |
config switchIconPadding 2 | |
config switchBackgroundColor 50;53;58;0.3 | |
config switchSelectedPadding 4 | |
config switchIconSize 96 | |
config switchShowTitles true | |
config switchFontSize 11 | |
config switchRoundedCornerSize 4 | |
config undoOps move,resize | |
# ============================================================================= | |
# Aliases | |
# ============================================================================= | |
# Hyper key | |
alias hyper ctrl;alt;cmd | |
# Software | |
alias chrome 'Google Chrome' | |
alias safari 'Safari' | |
alias firefox 'Firefox' | |
alias editor 'iTerm' | |
alias chat 'Nachrichten' | |
alias calender 'Kalender' | |
alias mail 'Mail' | |
alias todo 'Things' | |
alias music-stream 'Spotify' | |
alias music-home 'Sonos' | |
alias evernote 'Evernote' | |
alias diary 'Day One' | |
# Monitors (0: Main Monitor, 1: Secondary Monitor) | |
alias monitor-main 1 | |
alias monitor-secondary 0 | |
# Basic Aliases | |
alias sox screenOriginX | |
alias soy screenOriginY | |
alias ssx screenSizeX | |
alias ssy screenSizeY | |
# Positions | |
alias centered ${sox}+${ssx}/8;${soy}+${ssy}/8 ${ssx}/8*6;${ssy}/8*6 | |
alias fullscreen ${sox};${soy} ${ssx};${ssy} | |
alias leftHalf ${sox};${soy} ${ssx}/2;${ssy} | |
alias bottomHalf ${sox};${soy}+${ssy}/2 ${ssx};${ssy}/2 | |
alias topHalf ${sox};${soy} ${ssx};${ssy}/2 | |
alias rightHalf ${sox}+${ssx}/2;${soy} ${ssx}/2;${ssy} | |
alias topLeftQuarter ${sox};${soy} ${ssx}/2;${ssy}/2 | |
alias topRightQuarter ${sox}+${ssx}/2;${soy} ${ssx}/2;${ssy}/2 | |
alias bottomLeftQuarter ${sox};${soy}+${ssy}/2 ${ssx}/2;${ssy}/2 | |
alias bottomRightQuarter ${sox}+${ssx}/2;${soy}+${ssy}/2 ${ssx}/2;${ssy}/2 | |
alias leftMost ${sox};${soy} ${ssx}*0.6;${ssy} # Links (2/3) | |
alias leftLess ${sox};${soy} ${ssx}*0.4;${ssy} # Links (1/3) | |
alias rightLess ${sox}+${ssx}*0.6;${soy} ${ssx}*0.4;${ssy} # Rechts (1/3) | |
alias rightMost ${sox}+${ssx}*0.4;${soy} ${ssx}*0.6;${ssy} # Rechts (2/3) | |
# Absolute Positions | |
alias window-wide (${sox}+${ssx}-1500)/2;(${soy}+${ssy}-825)/2 1500;825 ${monitor-main} | |
alias window-medium (${sox}+${ssx}-1250)/2;(${soy}+${ssy}-825)/2 1250;825 ${monitor-main} | |
alias window-narrow (${sox}+${ssx}-1000)/2;(${soy}+${ssy}-825)/2 1000;825 ${monitor-main} | |
alias chatContacts ${sox}+${ssx}/2;${soy} ${ssx}/10;${ssy} | |
# ============================================================================= | |
# Layouts | |
# ============================================================================= | |
# Layout for Screencasting | |
layout screencast 'Google Chrome' move (${sox}+${ssx}-1295)/2;(${soy}+${ssy}-792)/2 1295;792 1 | |
# Layout Home [h] | |
layout 1monitorHome ${calender} move ${leftMost} | |
layout 1monitorHome ${mail} move ${leftMost} | |
layout 1monitorHome ${todo} move ${rightLess} | |
layout 1monitorHome ${diary} move ${leftMost} | |
layout 1monitorHome ${music-stream} move ${leftHalf} | |
layout 1monitorHome ${music-home} move ${rightHalf} | |
layout 1monitorHome ${evernote} move ${fullscreen} | |
layout 1monitorHome ${editor} move ${fullscreen} | |
layout 1monitorHome ${chat}:IGNORE_FAIL,TITLE_ORDER=Freunde move ${chatContacts} ${monitor-secondary} | move ${leftHalf} ${monitor-secondary} | |
# Layout Work (2 Monitors) [j] | |
layout 2monitorWork ${todo} move ${rightHalf} ${monitor-secondary} | |
layout 2monitorWork ${diary} move ${leftHalf} ${monitor-secondary} | |
layout 2monitorWork ${evernote} move ${fullscreen} ${monitor-main} | |
layout 2monitorWork ${chrome} move ${fullscreen} ${monitor-secondary} | |
layout 2monitorWork ${safari} move ${fullscreen} ${monitor-main} | |
layout 2monitorWork ${firefox} move ${fullscreen} ${monitor-secondary} | |
layout 2monitorWork ${mail} move ${fullscreen} ${monitor-secondary} | |
layout 2monitorWork ${calender} move ${fullscreen} ${monitor-secondary} | |
layout 2monitorWork ${music-stream} move ${fullscreen} ${monitor-main} | |
layout 2monitorWork ${editor} move ${fullscreen} ${monitor-main} | |
layout 2monitorWork ${chat}:IGNORE_FAIL,TITLE_ORDER=Freunde move ${chatContacts} ${monitor-secondary} | move ${leftHalf} ${monitor-secondary} | |
# Layout Work (1 Monitor) [f] | |
layout 1monitorWork ${editor} move ${fullscreen} ${monitor-main} | |
layout 1monitorWork ${evernote} move ${fullscreen} ${monitor-main} | |
layout 1monitorWork ${chrome} move ${fullscreen} ${monitor-main} | |
layout 1monitorWork ${firefox} move ${fullscreen} ${monitor-main} | |
layout 1monitorWork ${mail} move ${fullscreen} ${monitor-main} | |
layout 1monitorWork ${calender} move ${fullscreen} ${monitor-main} | |
layout 1monitorWork ${music-stream} move ${fullscreen} ${monitor-main} | |
layout 1monitorWork ${todo} move ${leftHalf} ${monitor-main} | |
layout 1monitorWork ${chat}:IGNORE_FAIL,TITLE_ORDER=Freunde move ${chatContacts} ${monitor-secondary} | move ${leftHalf} ${monitor-secondary} | |
# Standard Layouts | |
default 2monitorWork count:2 # trigger when 2 Monitore | |
# default myLayout2 resolutions:1440x900;1024x768;1680x1050 # trigger when 3 monitors with exactly these resolutions | |
# ============================================================================= | |
# Key Bindings | |
# ============================================================================= | |
# Window Manager | |
bind space:${hyper} hint ASDFGHJKLQWERTYUIOPCVBN | |
# Grid | |
bind g:${hyper} grid padding:5 0:10,8 1:10,8 | |
# Half Screens | |
bind left:${hyper} move ${leftHalf} | |
bind right:${hyper} move ${rightHalf} | |
bind up:${hyper} push top bar-resize:${ssy}/2 | |
bind down:${hyper} push bottom bar-resize:${ssy}/2 | |
# Quarter Screens | |
bind q:${hyper} move ${topLeftQuarter} | |
bind w:${hyper} move ${topRightQuarter} | |
bind a:${hyper} move ${bottomLeftQuarter} | |
bind s:${hyper} move ${bottomRightQuarter} | |
# Fullscreen | |
bind 0:${hyper} move ${fullscreen} | |
# Left/Right (⅓, ⅔) | |
bind 4:${hyper} move ${leftMost} | |
bind 5:${hyper} move ${leftLess} | |
bind 6:${hyper} move ${rightMost} | |
bind 7:${hyper} move ${rightLess} | |
# Special Browsersizes (centered) | |
bind 1:${hyper} move ${window-narrow} | |
bind 2:${hyper} move ${window-medium} | |
bind 3:${hyper} move ${window-wide} | |
bind c:${hyper} move ${centered} | |
# Layouts | |
bind 9:${hyper} layout screencast | |
bind h:${hyper} layout 1monitorHome | |
bind j:${hyper} layout 2monitorWork | |
bind f:${hyper} layout 1monitorWork | |
# Throw Bindings (CTRL + ALT) | |
bind 1:ctrl;alt throw ${monitor-secondary} resize | |
bind 2:ctrl;alt throw ${monitor-main} resize | |
bind right:ctrl;alt throw right resize | |
bind l:ctrl;alt throw right resize | |
bind left:ctrl;alt throw left resize | |
bind h:ctrl;alt throw left resize | |
# Focus Bindings (CTRL + CMD) | |
bind right:ctrl;cmd focus right | |
bind l:ctrl;cmd focus right | |
bind left:ctrl;cmd focus left | |
bind h:ctrl;cmd focus left | |
bind up:ctrl;cmd focus up | |
bind k:ctrl;cmd focus up | |
bind down:ctrl;cmd focus behind | |
bind j:ctrl;cmd focus behind | |
# Hide all windows | |
bind x:${hyper} hide all | |
# Undo last action | |
bind u:${hyper} undo | |
# Restart Slate | |
bind delete:${hyper} relaunch |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment