     @subscriptions.dispose()
 
   browsePackages: ->
-    if @fileManager isnt null
+    packageDir: atom.packages.getPackageDirPaths()[0]
 
-      # Does packages folder exist?
-      try
-        fs.accessSync(@packageDir, fs.F_OK)
-      catch error
-        atom.notifications.addError(@self, detail: error, dismissable: true)
-        return
+    # Does packages folder exist?
+    try
+      fs.accessSync(packageDir, fs.F_OK)
+    catch error
+      atom.notifications.addError(@self, detail: error, dismissable: true)
+      return
 
-      # Open packages folder
-      exec "#{@fileManager} #{@packageDir}"
+    # Open packages folder
+    shell.showItemInFolder(packageDir)
 
   revealFile: ->
     # Get parent folder of active file

        continue

      # Open project folder
      exec "#{@fileManager} #{project}"

  browseConfig: ->
    configPath = path.dirname(@configFile)

    if @fileManager isnt null
      # Does config folder exist?
      try
        fs.accessSync(configPath, fs.F_OK)
      catch error
        atom.notifications.addError(@self, detail: error, dismissable: true)
        return

      args = configPath

      # Open config folder
      exec "#{@fileManager} #{args}"

  getFileManager: ->
    fm = atom.config.get('browse.fileManager')

    if typeof fm isnt 'undefined'
      if @debug?
        console.log "[#{@self}] Load from config: #{fm}"
      return fm

    switch process.platform
      when "darwin"
        return "open"
      when "win32"
        return "explorer"
      when "linux"
        # There are many possible file managers on Linux, let's iterate over
        # the most popular ones
        @loopWhich (result) ->
          if typeof result isnt 'undefined'
            fm = result.trim()
            if @debug
              console.log "[browse] Saving #{fm} for future use"
            atom.config.set('browse.fileManager', fm)
            return fm

          atom.notifications.addWarning("**browse**: No supported file manager detected", dismissable: true)

  loopWhich: (callback) ->
    for fm in @linuxFileManagers

      if @debug
        console.log "[#{@self}] Trying: #{fm}"
      exec "which #{fm}", (error, stdout, stderr) ->
        if error is null
          callback stdout

    if file isnt null
      filePath = path.dirname(file?.path)

      # Reveal file
      shell.showItemInFolder(file.path)
      return

    atom.notifications.addWarning("**#{@self}**: No active file", dismissable: false)
