Skip to content

Instantly share code, notes, and snippets.

@phatboyg
Last active October 13, 2015 05:48
Show Gist options
  • Star 3 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save phatboyg/4148656 to your computer and use it in GitHub Desktop.
Save phatboyg/4148656 to your computer and use it in GitHub Desktop.
Slate Configuration
# Configs
config defaultToCurrentScreen true
config nudgePercentOf screenSize
config resizePercentOf screenSize
config secondsBetweenRepeat 0.1
config checkDefaultsOnLoad true
config focusCheckWidthMax 3000
config windowHintsShowIcons true
config windowHintsBackgroundColor 96;96;64;0.5
config windowHintsIgnoreHiddenWindows true
#config windowHintsOrder persist
config windowHintsSpread true
config windowHintsSpreadPadding 40
config windowHintsSpreadSearchWidth 80
config windowHintsSpreadSearchHeight 80
config switchIconPadding 2
config switchBackgroundColor 50;53;58;0.7
config switchSelectedPadding 4
config switchIconSize 96
config switchShowTitles true
config switchFontSize 11
config switchRoundedCornerSize 4
config undoOps move,resize
# Misc Aliases
alias showHintsLeftHand hint ASDFGTRBVECWXQZ
alias showNormalHint hint ASDFGHJKLRVECWXTBYNUMIQZOP
alias browser 'Google Chrome'
alias editor 'Sublime Text 2'
alias skype 'Skype'
alias outlook 'Microsoft Outlook'
alias vmware "VMware Fusion"
alias twitter "Twitter"
alias mscomm "Microsoft Communicator"
alias iterm "iTerm"
alias finder "Finder"
alias messages "Messages"
alias itunes 'iTunes'
# Positions
alias full move screenOriginX;screenOriginY screenSizeX;screenSizeY
alias topmiddle move screenOriginX+screenSizeX/6;screenOriginY screenSizeX-screenSizeX/3;screenSizeY
alias lefthalf move screenOriginX;screenOriginY screenSizeX/2;screenSizeY
alias righthalf move screenOriginX+screenSizeX/2;screenOriginY screenSizeX/2;screenSizeY
alias leftmost move screenOriginX;screenOriginY screenSizeX/4*3;screenSizeY
alias rightmost move screenOriginX+screenSizeX/4;screenOriginY screenSizeX/4*3;screenSizeY
alias leftless move screenOriginX;screenOriginY screenSizeX*0.4;screenSizeY
alias rightless move screenOriginX+screenSizeX*0.6;screenOriginY screenSizeX*0.4;screenSizeY
alias column1 move screenOriginX;screenOriginY screenSizeX/5;screenSizeY
alias column2 move screenOriginX+screenSizeX/5;screenOriginY (screenSizeX-screenSizeX/5*2)/2;screenSizeY
alias column3 move screenOriginX+screenSizeX/5;screenOriginY screenSizeX-screenSizeX/5*2;screenSizeY
alias column4 move screenOriginX+screenSizeX/2;screenOriginY (screenSizeX-screenSizeX/5*2)/2;screenSizeY
alias column5 move screenOriginX+screenSizeX/5*4;screenOriginY screenSizeX/5;screenSizeY
# =====
# Layouts!
# =====
layout lay1 ${twitter} ${column5} 0
layout lay1 ${skype} ${leftless} 0
layout lay2 ${twitter} ${column5} 0
layout lay2 ${skype} ${leftless} 0
layout lay2 ${vmware} ${full} 1
layout lay3 ${twitter} ${column5} 0
layout lay3 ${skype} ${leftless} 0
default lay1 count:1
default lay2 resolutions:1920x1200,1920x1200
default lay3 resolutions:1920x1200,1920x1200,1920x1080
# ======================================
# The HYPER key (bound using PCKeyboardHack and KeyRemap4Macbook)
# ======================================
alias hyper ctrl;shift;alt;cmd
# Goto app
bind space:${hyper} ${showHintsLeftHand}
# Location bindings
bind h:${hyper} ${lefthalf}
bind j:${hyper} ${leftmost}
bind k:${hyper} ${topmiddle}
bind l:${hyper} ${rightmost}
bind ;:${hyper} ${righthalf}
bind u:${hyper} ${leftless}
bind i:${hyper} ${full}
bind o:${hyper} ${rightless}
bind [:${hyper} resize -10% +0
bind ]:${hyper} resize +10% +0
bind z:${hyper} undo
bind backslash:${hyper} relaunch
bind 1:${hyper} ${column1} 0
bind 2:${hyper} ${column2} 0
bind 3:${hyper} ${column3} 0
bind 4:${hyper} ${column4} 0
bind 5:${hyper} ${column5} 0
bind 6:${hyper} ${column1} 1
bind 7:${hyper} ${column2} 1
bind 8:${hyper} ${column3} 1
bind 9:${hyper} ${column4} 1
bind 0:${hyper} ${column5} 1
bind -:${hyper} ${lefthalf} 2
bind =:${hyper} ${righthalf} 2
bind g:${hyper} grid padding:4 1920x1200:6,3 1920x1080:6,3
# Throw window to next monitor
bind n:${hyper} throw next
bind right:${hyper} ${topmiddle} right
bind left:${hyper} ${topmiddle} left
bind home:${hyper} ${full} left
bind end:${hyper} ${full} right
# App bindings
bind b:${hyper} focus ${browser}
bind e:${hyper} focus ${editor}
bind m:${hyper} focus ${outlook}
bind s:${hyper} focus ${skype}
bind v:${hyper} focus ${vmware}
bind t:${hyper} focus ${twitter}
bind c:${hyper} focus ${mscomm}
bind d:${hyper} focus ${iterm}
bind f:${hyper} focus ${finder}
bind r:${hyper} focus ${messages}
bind a:${hyper} focus ${itunes}
<?xml version="1.0"?>
<root>
<appdef>
<appname>ECLIPSE</appname>
<equal>org.eclipse.eclipse</equal>
</appdef>
<appdef>
<appname>CODE</appname>
<equal>com.github.atom-shell</equal>
</appdef>
<item>
<name>Swap Fn-Keys and Functional Keys in Virtual Machine</name>
<appendix>For MacBook Pro</appendix>
<identifier>private.phatboyg_swap_fkeys_vm</identifier>
<not>VIRTUALMACHINE, REMOTEDESKTOPCONNECTION, ECLIPSE, CODE</not>
<autogen>--KeyToConsumer-- KeyCode::F1, ConsumerKeyCode::BRIGHTNESS_DOWN</autogen>
<autogen>--KeyToConsumer-- KeyCode::F2, ConsumerKeyCode::BRIGHTNESS_UP</autogen>
<autogen>--KeyToKey-- KeyCode::F3, KeyCode::MISSION_CONTROL</autogen>
<autogen>--KeyToKey-- KeyCode::F4, KeyCode::LAUNCHPAD</autogen>
<autogen>--KeyToConsumer-- KeyCode::F5, ConsumerKeyCode::KEYBOARDLIGHT_LOW</autogen>
<autogen>--KeyToConsumer-- KeyCode::F6, ConsumerKeyCode::KEYBOARDLIGHT_HIGH</autogen>
<autogen>--KeyToConsumer-- KeyCode::F7, ConsumerKeyCode::MUSIC_PREV</autogen>
<autogen>--KeyToConsumer-- KeyCode::F8, ConsumerKeyCode::MUSIC_PLAY</autogen>
<autogen>--KeyToConsumer-- KeyCode::F9, ConsumerKeyCode::MUSIC_NEXT</autogen>
<autogen>--KeyToConsumer-- KeyCode::F10, ConsumerKeyCode::VOLUME_MUTE</autogen>
<autogen>--KeyToConsumer-- KeyCode::F11, ConsumerKeyCode::VOLUME_DOWN</autogen>
<autogen>--KeyToConsumer-- KeyCode::F12, ConsumerKeyCode::VOLUME_UP</autogen>
</item>
<item>
<name>Add Control Brightness Settings (Lion)</name>
<appendix>Control+Brightness Down to Brightness Down</appendix>
<appendix>Control+Brightness Up to Brightness Up</appendix>
<identifier>private.controlbrightness2brightness</identifier>
<autogen>--ConsumerToConsumer-- ConsumerKeyCode::BRIGHTNESS_DOWN, VK_CONTROL, ConsumerKeyCode::BRIGHTNESS_DOWN</autogen>
<autogen>--ConsumerToConsumer-- ConsumerKeyCode::BRIGHTNESS_UP, VK_CONTROL, ConsumerKeyCode::BRIGHTNESS_UP</autogen>
</item>
<item>
<name>Add Control Expose/Dashboard Settings (Lion)</name>
<appendix>Control+Expose to Expose</appendix>
<appendix>Control+Dashboard to Dashboard</appendix>
<appendix>Control+Launchpad to Launchpad</appendix>
<identifier>private.controlexpose2expose</identifier>
<autogen>--KeyToKey-- KeyCode::EXPOSE_ALL, VK_CONTROL, KeyCode::EXPOSE_ALL</autogen>
<autogen>--KeyToKey-- KeyCode::DASHBOARD, VK_CONTROL, KeyCode::DASHBOARD</autogen>
<autogen>--KeyToKey-- KeyCode::LAUNCHPAD, VK_CONTROL, KeyCode::LAUNCHPAD</autogen>
</item>
<item>
<name>Remap F19 to Hyper</name>
<appendix>This maps F19 (CapsLock if remapped) to Control + Shift + Option + Command.</appendix>
<appendix>Use PCKeyboardHack to remap CapsLock to F19</appendix>
<identifier>phatboyg.F19_to_hyper</identifier>
<autogen>
--KeyToKey--
KeyCode::F19,
KeyCode::COMMAND_L, ModifierFlag::OPTION_L | ModifierFlag::SHIFT_L | ModifierFlag::CONTROL_L
</autogen>
</item>
<item>
<name>Fn to Control on Internal Keyboard</name>
<identifier>private.internalfntocontrol</identifier>
<device_only>DeviceVendor::APPLE_INC, DeviceProduct::APPLE_INTERNAL_KEYBOARD_TRACKPAD_0x0262</device_only>
<autogen>
--KeyToKey--
KeyCode::FN,
KeyCode::CONTROL_L
</autogen>
</item>
<item>
<name>Control to Fn on Internal Keyboard</name>
<identifier>private.internalcontroltofn</identifier>
<device_only>DeviceVendor::APPLE_INC, DeviceProduct::APPLE_INTERNAL_KEYBOARD_TRACKPAD_0x0262</device_only>
<autogen>
--KeyToKey--
KeyCode::CONTROL_L,
KeyCode::FN
</autogen>
</item>
</root>
Select "Change Caps Lock" to 80 (F19)
(Be sure to change the modifier key in the regular System Preferences for Caps Lock to do nothing)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment