       # 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

  # Public variables
  # ----------------

  # Information specifying what should be displaying in the notification.  
  # This should be reset after every copy request.
  notification:
    description:      ''
    descriptionStyle: ''
    html:             ''
    icon:             utils.url '../images/icon_48.png'
    iconStyle:        ''
    title:            ''
    titleStyle:       ''

  # Pre-prepared HTML for the popup to be populated using.  
  # This should be updated whenever templates are changed/updated in any way as
  # this is generated to improve performance and load times of the popup frame.
  popupHtml: ''

  # Local copy of templates being used, ordered to match that specified by the
  # user.
  templates: []
