   (add-hook! kill-emacs 'narf|projectile-invalidate-cache-maybe)
 
   (setq-default projectile-enable-caching t)
-  (setq projectile-sort-order 'recentf
-        projectile-require-project-root nil
+  (setq projectile-require-project-root nil
         projectile-cache-file (concat narf-temp-dir "projectile.cache")
         projectile-known-projects-file (concat narf-temp-dir "projectile.projects")
         projectile-indexing-method 'alien


(use-package helm
  :init
  (defvar helm-global-prompt ">>> ")
  (setq-default
   helm-quick-update t
   helm-reuse-last-window-split-state t

   helm-buffers-fuzzy-matching t
   helm-apropos-fuzzy-match nil
   helm-M-x-fuzzy-match t
   helm-recentf-fuzzy-match t
   ;; helm-mode-fuzzy-match t

   helm-display-header-line nil
   helm-ff-auto-update-initial-value nil

        (set-face-attribute 'helm-source-header nil :height 0.1 :foreground "#111111")
      (set-face-attribute 'helm-source-header nil :height 1.0 :foreground narf-helm-header-fg)))

  (defun narf*helm-hide-header (source &optional force)
    (setq header-line-format nil)
    (setq mode-line-format nil))

  (defun narf*helm-replace-prompt (plist)
    (if (keywordp (car plist))
