anchor.diff:    "Install select packages."
     (assert-package-manager)
     ;; TODO: Allow profile creation.  Need multi-source support for that?
  -  (let* ((profile (prompt-minibuffer
  -                   :suggestion-function (os-profile-suggestion-filter)
  -                   :input-prompt "Target profile"))
  -         (packages (prompt-minibuffer
  -                    :suggestion-function (os-package-output-suggestion-filter)
  -                    :input-prompt "Install OS package(s)"
  -                    :multi-selection-p t)))
  +  (let* ((profile (first
  +                   (prompt
  +                    :sources '(os-profile-source)
  +                    :prompt "Target profile")))
  +         (packages (prompt
  +                    :sources '(os-package-output-source)
  +                    :prompt "Install OS package(s)")))
       (operate-os-package "Installing packages..." #'ospm:install profile packages)))
   
   (define-command uninstall-os-package ()
     "Uninstall select packages."
     (assert-package-manager)
  -  (let* ((profile (prompt-minibuffer
  -                   :suggestion-function (os-profile-suggestion-filter)
  -                   :input-prompt "Target profile"))
  -         (packages (prompt-minibuffer
  -                    :suggestion-function (os-installed-package-suggestion-filter profile)
  -                    :input-prompt "Uninstall OS package(s)"
  -                    :multi-selection-p t)))
  +  (let* ((profile (first
  +                   (prompt
  +                    :sources '(os-profile-source)
  +                    :prompt "Target profile")))
  +         (packages (prompt
  +                    :sources (list (make-instance 'os-installed-package-source
  +                                                  :profile profile))
  +                    :prompt "Uninstall OS package(s)")))
       (operate-os-package "Uninstalling packages..." #'ospm:uninstall profile packages)))
   
   (define-command install-package-manifest ()
     "Install select manifest to a profile."
     (assert-package-manager)
  -  (let* ((profile (prompt-minibuffer
  -                   :suggestion-function (os-profile-suggestion-filter)
  -                   :input-prompt "Target profile"))
  -         (manifest (prompt-minibuffer
  -                    :suggestion-function (os-manifest-suggestion-filter)
  -                    :input-prompt "Manifest")))
  +  (let* ((profile (first
  +                   (prompt
  +                    :sources '(os-profile-source)
  +                    :prompt "Target profile")))
  +         (manifest (first
  +                    (prompt
  +                     :sources '(os-manifest-source)
  +                     :prompt "Manifest"))))
       (operate-os-package "Installing package manifest..." #'ospm:install-manifest profile manifest)))
   
   (define-command edit-package-manifest ()
     "Edit select manifest."
     (assert-package-manager)
  -  (let ((manifest (prompt-minibuffer
  -                   :suggestion-function (os-manifest-suggestion-filter)
  -                   :input-prompt "Manifest")))
  +  (let ((manifest (first
  +                   (prompt
  +                    :sources '(os-manifest-source)
  +                    :prompt "Manifest"))))
       (echo "Opening ~s with ~a" manifest (external-editor-program *browser*))
       (uiop:launch-program (list (external-editor-program *browser*) manifest))))
   
   (define-command describe-os-generation ()
     "Show the packages of a given profile generation."
     (assert-package-manager)
  -  (let* ((profile (prompt-minibuffer
  -                   :suggestion-function (os-profile-suggestion-filter
  -                                         :include-manager-p t)
  -                   :input-prompt "Profile"))
  -         (generation (prompt-minibuffer
  -                      :suggestion-function (os-generation-suggestion-filter profile)
  -                      :input-prompt "Generation"))
  +  (let* ((profile (first
  +                   (prompt
  +                    :sources (list (make-instance 'os-profile-suggestion-filter
  +                                                  :include-manager-p t))
  +                    :prompt "Profile")))
  +         (generation (first
  +                      (prompt
  +                       :sources '(os-generation-source)
  +                       :prompt "Generation")))
            (buffer (or (find-buffer 'os-package-manager-mode)
                        (nyxt/os-package-manager-mode:os-package-manager-mode
                         :activate t
  
positive.code:               " (current)"
                "")))
  
  (defun os-package-suggestion-filter ()
    (echo "Loading package database...")
    (let* ((all-packages (ospm:list-packages)))
      (echo "")
      (lambda (minibuffer)
        (fuzzy-match (input-buffer minibuffer) all-packages))))
  
  (defun os-manifest-suggestion-filter ()
    (let* ((all-manifests (mapcar #'namestring (ospm:list-manifests))))
      (lambda (minibuffer)
        (fuzzy-match (input-buffer minibuffer) all-manifests))))
  
  (defun os-package-output-suggestion-filter ()
    (echo "Loading package database...")
    (let* ((all-outputs (ospm:list-package-outputs)))
      (echo "")
      (lambda (minibuffer)
        (fuzzy-match (input-buffer minibuffer) all-outputs))))
  
  (defun os-installed-package-suggestion-filter (profile)
    (let* ((installed-packages (ospm:list-packages profile)))
      (lambda (minibuffer)
        (fuzzy-match (input-buffer minibuffer) installed-packages))))
  
  (defun os-profile-suggestion-filter (&key include-manager-p)
    (let* ((all-profiles (ospm:list-profiles :include-manager-p include-manager-p)))
      (lambda (minibuffer)
        ;; TODO: Don't prompt when there is just 1 profile.
        (fuzzy-match (input-buffer minibuffer) all-profiles))))
  
  (defun os-generation-suggestion-filter (profile)
    (let* ((all-generations (ospm:list-generations profile)))
      (lambda (minibuffer)
        ;; TODO: Don't prompt when there is just 1 profile.
        (fuzzy-match (input-buffer minibuffer) all-generations))))
  
  (defun %describe-os-package (packages)
    (let* ((buffer (or (find-buffer 'os-package-manager-mode)
  
negative.code: (define-command describe-os-package ()
    "Show description of select packages."
    (assert-package-manager)
    (let* ((packages (prompt
                      :sources '(os-package-source)
                      :prompt "Describe OS package(s)")))
      (%describe-os-package packages)))
  
  (defun viewable-file-type-p (path)
  