           dirs = _.reject(dirs, (path) -> path in loadedPaths)
 
     dirs.map (dir) ->
-      dir.replace fs.getHomeDirectory(), '~'
+      itemPath = dir.replace(fs.getHomeDirectory(), '~')
+      if itemPath.startsWith("~/github/atom-cursor-history")
+        itemType = 'group'
+      else
+        itemType = 'repo'
+      {itemPath, itemType}
 
   getNormalDirectories: ->
     dirs = []

    @action = if @action is 'add' then 'remove' else 'add'
    @setItems @getItems()

  add: (path) ->
    atom.project.addPath path

  remove: (path) ->
    if settings.get('closeItemsForRemovedProject')
      dir = _.detect(atom.project.getDirectories(), (d) -> d.getPath() is path)
      for e in atom.workspace.getTextEditors() when dir.contains(e.getPath())
        e.destroy()

    atom.project.removePath path

  replace: ->
    selected = @getSelectedItem()
    projectPath = fs.normalize(selected)
    @add projectPath
    for p in atom.project.getPaths() when p isnt projectPath
      @remove p
    @cancel()

  openInNewWindow: ->
    selected = @getSelectedItem()
    projectPath = fs.normalize(selected)
    atom.open({pathsToOpen: [projectPath], newWindow: true})
    @cancel()

module.exports = View

    this

  viewForItem: (item) ->
    {itemPath, itemType} = item
    matches  = match(itemPath, @getFilterQuery())
    iconName = if itemType is 'group' then 'briefcase' else 'repo'
    basename = _path.basename(itemPath)
    $$ ->
      baseOffset = itemPath.length - basename.length
      @li class: 'two-lines', =>
        @div {class: "primary-line file icon icon-#{iconName}", 'data-name': basename, 'data-path': itemPath}, =>
          highlightMatches(this, basename, matches, baseOffset)
        @div {class: 'secondary-line path no-icon'}, =>
          highlightMatches(this, itemPath, matches)

  getFilterKey: ->
    "itemPath"

  getItems: ->
    loadedPaths = atom.project.getPaths()
