       # Ensure that the user is notified if they have attempted to copy an
       # empty string to the system clipboard.
       if result.success and not result.contents
-        result.message = i18n.get 'copy_fail_empty'
+        result.message = i18n.get 'result_bad_empty_description',
+          result.template.title
         result.success = no
       if result.success
+        ext.notification.title       = i18n.get 'result_good_title'
+        ext.notification.titleStyle  = 'color: #050'
+        ext.notification.description = result.message ?
+          i18n.get 'result_good_description', result.template.title
         ext.copy result.contents
       else
-        ext.message = result.message
-        ext.status  = no
+        ext.notification.title       = i18n.get 'result_bad_title'
+        ext.notification.titleStyle  = 'color: #A00'
+        ext.notification.description = result.message ?
+          i18n.get 'result_bad_description', result.template.title
         showNotification()
       if result.template?
         updateTemplateUsage result.template.key

  queryUrlShortener: (filter, singular = yes) ->
    utils.query SHORTENERS, singular, filter

  # Reset the message and status associated with the current copy request.  
  # This should be called when a copy request is completed regardless of its
  # outcome.
  reset: ->
    @message = ''
    @status  = no

  # Update the context menu items to reflect the currently enabled templates.  
  # If the context menu option has been disabled by the user, just remove all

      # Oops! Something went wrong so we should probably let the user know.
      runner.finish
        message: i18n.get if error instanceof URIError
          'result_bad_uri_description'
        else
          'result_bad_error_description'
        success: no
  runner.pushPacked null, addAdditionalData, ->
    [tab, data, ->
