 
   setShortcut: (model) ->
 
+    disabled = model.options and model.options.enabled is false
+
+    if disabled
+      @editor.commands.removeCommand model.name
+      return
+
     key = model.name
     exec =
     switch key

      .join '-'


  toCommand = (model, exec) ->

    # given a keyconfig model json and a callback, converts it to
    # conform to the ace command spec.
    #
    # see: https://github.com/ajaxorg/ace/blob/v1.1.4/lib/ace/commands/default_commands.js

    binding = model.binding[0]

    # since shortcuts#change emits a raw keyconfig.Model, binding prop might include
    # all bindings for all platforms.
    # in that case we need to get platform bindings explicitly:
    if _.isArray binding
      { shortcuts } = kd.singletons
      binding = shortcuts.getPlatformBinding(model)[0]

    @setSyntax()
    @setEditorListeners()
    @setShortcuts yes

    @appStorage.fetchStorage (storage) =>

