 
 class Keyboard
   @hotkeys:
-    BOLD:       { key: 'B',          meta: true }
-    INDENT:     { key: DOM.KEYS.TAB, shift: false }
-    ITALIC:     { key: 'I',          meta: true }
-    OUTDENT:    { key: DOM.KEYS.TAB, shift: true }
-    UNDERLINE:  { key: 'U',          meta: true }
-    UNDO:       { key: 'Z',          meta: true, shift: false }
-    REDO:       { key: 'Z',          meta: true, shift: true }
+    BOLD:       { key: 'B',          metaKey: true }
+    INDENT:     { key: DOM.KEYS.TAB, shiftKey: false }
+    ITALIC:     { key: 'I',          metaKey: true }
+    OUTDENT:    { key: DOM.KEYS.TAB, shiftKey: true }
+    UNDERLINE:  { key: 'U',          metaKey: true }
+    UNDO:       { key: 'Z',          metaKey: true, shiftKey: false }
+    REDO:       { key: 'Z',          metaKey: true, shiftKey: true }
 
   @NAVIGATION: [DOM.KEYS.UP, DOM.KEYS.DOWN, DOM.KEYS.LEFT, DOM.KEYS.RIGHT]
 


  addHotkey: (hotkey, callback) ->
    hotkey = if _.isObject(hotkey) then _.clone(hotkey) else { key: hotkey }
    hotkey.key = hotkey.key.toUpperCase().charCodeAt(0) if _.isString(hotkey.key)
    hotkey.callback = callback
    @hotkeys[hotkey.key] ?= []
    @hotkeys[hotkey.key].push(hotkey)


  _initListeners: ->
    DOM.addEventListener(@editorContainer, 'keydown', (event) =>
      prevent = false
      if @hotkeys[event.key]?
        range = @quill.getSelection()
        _.each(@hotkeys[event.key], (hotkey) =>
          return if hotkey.metaKey? and (event.metaKey != hotkey.metaKey and event.ctrlKey != hotkey.metaKey)
          return if hotkey.shiftKey? and event.shiftKey != hotkey.shiftKey
          prevent = hotkey.callback(range) == false or prevent
        )
      return !prevent
    )

