   initialize: ({@uri, @activePanelName}={}) ->
     super
     @packageManager = new PackageManager()
+    @handlePackageEvents()
+
     @panelToShow = null
     process.nextTick => @activatePackages => @initializePanels()
+
+  handlePackageEvents: ->
+    @subscribe @packageManager, 'package-installed theme-installed', ({name}) =>
+      if pack = atom.packages.getLoadedPackage(name)
+        @addPanel(name, new InstalledPackageView(pack, @packageManager))
+
+    @subscribe @packageManager, 'package-uninstalled theme-uninstalled', ({name}) =>
+      @removePanel(name)
+      @showPanel('Packages') if name is @activePanelName
 
   initializePanels: ->
     return if @panels.size > 0

      panel = iconName
      iconName = null

    panelItem = $$ ->
      @li name: name, =>
        if iconName
          @a class: "icon icon-#{iconName}", name
        else
          @a name

    @panelMenu.append(panelItem)
    panel.hide()

    @addPanelMenuSeparator()

    for pack in packages
      @addPanel(pack.name, new InstalledPackageView(pack, @packageManager))

    @showPanel(activePanelName) if activePanelName

