Divvy
Divvy is a good window management tool with Modal Key like cmd + `
, c
for centerring screen. However it is not cheap with only windows management function.
Window Tidy
Window Tidy is a tool I bought when it was limited free. When you drag the window, it will give you options for different layout. But I like use shortcuts more and it does not support Modal Key.
Slate
I finally choose Slate because it is open source and it is much more powerful than others. If you like using shortcuts and frustrated by the limited shortcuts, this could be a good choice.
Here is the config I used:
config defaultToCurrentScreen true
config nudgePercentOf screenSize
config resizePercentOf screenSize
# Resize Bindings
bind right:cmd,` resize +10% +0
bind left:cmd,` resize -10% +0
bind up:cmd,` resize +0 -10%
bind down:cmd,` resize +0 +10%
# bind right:ctrl;alt resize -10% +0 bottom-right
# bind left:ctrl;alt resize +10% +0 bottom-right
# bind up:ctrl;alt resize +0 +10% bottom-right
# bind down:ctrl;alt resize +0 -10% bottom-right
bind f:cmd,` move screenOriginX;screenOriginY screenSizeX;screenSizeY
bind c:cmd,` move screenOriginX+screenSizeX/6;screenOriginY+screenSizeY/6 4*screenSizeX/6;4*screenSizeY/6
# Push Bindings
bind d:cmd,` push right bar-resize:screenSizeX/2
bind a:cmd,` push left bar-resize:screenSizeX/2
bind w:cmd,` push up bar-resize:screenSizeY/2
bind s:cmd,` push down bar-resize:screenSizeY/2
# Nudge Bindings
# bind right:shift;alt nudge +10% +0
# bind left:shift;alt nudge -10% +0
# bind up:shift;alt nudge +0 -10%
# bind down:shift;alt nudge +0 +10%
# Throw Bindings
bind 1:cmd,` throw 0 resize
bind 2:cmd,` throw 1 resize
bind 3:cmd,` throw 2 resize
bind right:ctrl;alt;cmd throw right resize
bind left:ctrl;alt;cmd throw left resize
bind up:ctrl;alt;cmd throw up resize
bind down:ctrl;alt;cmd throw down resize
# Focus Bindings
# bind right:cmd focus right
# bind left:cmd focus left
# bind up:cmd focus up
# bind down:cmd focus down
# bind up:cmd;alt focus behind
# bind down:cmd;alt focus behind
# Window Hints
bind esc:cmd hint
bind `:cmd,` grid padding:5 1680x1050:16,9 1050x1680:9,16 1920x1200:16,10 1440x900:16:9
Karabiner - A Keyboard Tool
Karabiner is a powerful and stable keyboard customizer for OS X. I like my Cherry 3494 but sometimes I need the Mac function keys like volume up and down. This could be a good choice. It can maps those f1-f12
keys to the Mac function keys.
Here is the private.xml
from Zhihu:
command
interchange withoption
,win
changes tocommand
menu
change tofn
f1-f3
control brightnessf2
mission controlf4
launchpadf5-f6
keyboard backlightf7-f9
media controlf10-f12
volume controlPrintScreen
change toEject
NumLock
change toCommand+Delete
<?xml version="1.0"?>
<root>
<devicevendordef>
<vendorname>CHERRY_KEYBORD</vendorname>
<vendorid>0x046a</vendorid>
</devicevendordef>
<deviceproductdef>
<productname>PC_KEYBOARD</productname>
<productid>0x0011</productid>
</deviceproductdef>
<item>
<name>CHERRY G80-3000 KEYBOARD</name>
<identifier>private.deviceproductdef</identifier>
<device_only>DeviceVendor::CHERRY_KEYBORD, DeviceProduct::PC_KEYBOARD</device_only>
<identifier>private.remap.pc_to_mac</identifier>
<autogen>__KeyToKey__ KeyCode::PC_APPLICATION, KeyCode::FN</autogen>
<autogen>__KeyToKey__ KeyCode::COMMAND_L, KeyCode::OPTION_L</autogen>
<autogen>__KeyToKey__ KeyCode::COMMAND_R, KeyCode::OPTION_R</autogen>
<autogen>__KeyToKey__ KeyCode::OPTION_L, KeyCode::COMMAND_L</autogen>
<autogen>__KeyToKey__ KeyCode::OPTION_R, KeyCode::COMMAND_R</autogen>
<autogen>__KeyToKey__ KeyCode::F1, ConsumerKeyCode::BRIGHTNESS_DOWN</autogen>
<autogen>__KeyToKey__ KeyCode::F2, ConsumerKeyCode::BRIGHTNESS_UP</autogen>
<autogen>__KeyToKey__ KeyCode::F3, KeyCode::EXPOSE_ALL</autogen>
<autogen>__KeyToKey__ KeyCode::F4, KeyCode::DASHBOARD</autogen>
<autogen>__KeyToKey__ KeyCode::F7, ConsumerKeyCode::MUSIC_PREV</autogen>
<autogen>__KeyToKey__ KeyCode::F8, ConsumerKeyCode::MUSIC_PLAY</autogen>
<autogen>__KeyToKey__ KeyCode::F9, ConsumerKeyCode::MUSIC_NEXT</autogen>
<autogen>__KeyToKey__ KeyCode::F10, ConsumerKeyCode::VOLUME_MUTE</autogen>
<autogen>__KeyToKey__ KeyCode::F11, ConsumerKeyCode::VOLUME_DOWN</autogen>
<autogen>__KeyToKey__ KeyCode::F12, ConsumerKeyCode::VOLUME_UP</autogen>
<autogen>__KeyToKey__ KeyCode::KEYPAD_CLEAR, KeyCode::DELETE, ModifierFlag::COMMAND_L</autogen>
<autogen>__KeyToKey__ KeyCode::PC_PRINTSCREEN, ConsumerKeyCode::EJECT</autogen>
</item>
</root>
So what do you think of it? Do I miss something? Leave your comments below...