     color = @getColor 'primary'
     @updateStylesheet primarySelector, 'background-color', color
     @updateStylesheet primarySelector, 'border-color', color
+    # also apply to blink-off state if cursor blink is disabled
     if 0 is @getConfig 'blinkInterval'
       @updateStylesheet secondarySelector, 'background-color', color
       @updateStylesheet secondarySelector, 'border-color', color
 
   applySecondaryColor: =>
+    # use primaryColor if cursor blink is disabled
     color = @getColor (if 0 is @getConfig 'blinkInterval' then 'primary' else 'secondary')
     @updateStylesheet secondarySelector, 'background-color', color
     @updateStylesheet secondarySelector, 'border-color', color

      enum: (key for own key of cursorTypeMap)
      order: 0
    primaryColor:
      description: 'Primary color of the cursor'
      type: 'color'
      default: '#393939'
      order: 1
    primaryColorAlpha:
      description: 'Alpha of the primary color in percentage, because the Linux color picker has no opacity'
      type: 'number'
      default: 1
      minimum: 0
      maximum: 1
      order: 2
    secondaryColor:
      description: 'Secondary color of the cursor'
      type: 'color'
      default: 'transparent'
      order: 3
    secondaryColorAlpha:
      description: 'Alpha of the secondary color in percentage, because the Linux color picker has no opacity'
      type: 'number'
      default: 0
      minimum: 0
      maximum: 1
      order: 4
    blinkInterval:
      description: 'Cursor blinking interval in milliseconds. Set to 0 to disable blinking.'
      type: 'integer'
      default: 800
      minimum: 0
      order: 5
    pulseDuration:
      description: 'Duration of the pulse transition in milliseconds, set to 0 to disable pulse'
      type: 'integer'
      default: 0
      minimum: 0
      order: 6
    cursorThickness:
      description: 'Thickness of the cursor in pixels. Doesn\'t apply to "block" cursor type'
      type: 'integer'
      default: 1
      minimum: 1

  applyBlinkInterval: do ->
    sub = null
    (interval) ->
      # max value for setInterval
      if interval is 0 then interval = -1 + Math.pow 2, 31
      @applySecondaryColor()
      sub?.dispose()
