       enum: (key for own key of cursorTypeMap)
       order: 0
     primaryColor:
-      description: 'Primary color of the cursor'
+      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'
+      description: 'Alpha of the primary color. 0 means invisible, 1 means fully opaque.'
       type: 'number'
       default: 1
       minimum: 0
       maximum: 1
       order: 2
     secondaryColor:
-      description: 'Secondary color of the cursor'
+      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'
+      description: 'Alpha of the secondary color. 0 means invisible, 1 means fully opaque.'
       type: 'number'
       default: 0
       minimum: 0
       maximum: 1
       order: 4
     blinkInterval:
-      description: 'Cursor blinking interval in milliseconds. Set to 0 to disable blinking.'
+      description: 'Cursor blinking interval in milliseconds. Set to 0 to disable cursor blinking.'
       type: 'integer'
       default: 800
       minimum: 0
       order: 5
     pulseDuration:
-      description: 'Duration of the pulse transition in milliseconds, set to 0 to disable pulse'
+      description: 'Duration of the pulse transition in millisecond. Set to 0 to disable.'
       type: 'integer'
       default: 0
       minimum: 0
       order: 6
     cursorThickness:
-      description: 'Thickness of the cursor in pixels. Doesn\'t apply to "block" cursor type'
+      description: 'Thickness of the cursor in pixels. Doesn\'t apply to "block" cursor type.'
       type: 'integer'
       default: 1
       minimum: 1

    color = @getColor 'primary'
    @updateStylesheet primarySelector, 'background-color', color
    @updateStylesheet primarySelector, 'border-color', color
    if 0 is @getConfig 'blinkInterval'
      @updateStylesheet secondarySelector, 'background-color', color
      @updateStylesheet secondarySelector, 'border-color', color

  applySecondaryColor: =>
    color = @getColor (if 0 is @getConfig 'blinkInterval' then 'primary' else 'secondary')
    @updateStylesheet secondarySelector, 'background-color', color
    @updateStylesheet secondarySelector, 'border-color', color

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