 
 (use-package dired-single
   :after (dired-hide-dotfiles)
+  ;; FIXME: wrap all these commands so they don't error on the header
   :bind (:map dired-mode-map
               ("^"         . dired-single-up-directory)
               ("<mouse-1>" . dired-single-buffer-mouse)

                nil
                '(0 dired-executable-face)))))

  (remove-hook 'dired-initial-position-hook 'save-place-dired-hook)

  (add-hook 'dired-mode-hook
            (lambda ()
              (add-minor-mode 'dired-hide-details-mode "")
              (when (memq (window-system) '(mac ns))
                (bind-key "z" (lambda ()
                                (interactive)

  :bind (("C-x v M-m" . monky-status)))

;; File management
(defun add-to-invisibility-spec-override-advice (element)
  "Add ELEMENT to `buffer-invisibility-spec'.
See documentation for `buffer-invisibility-spec' for the kind of elements
that can be added.

If `buffer-invisibility-spec' isn't a list before calling this
function, `buffer-invisibility-spec' will afterwards be a list
with the value `(t ELEMENT)'.  This means that if text exists
that invisibility values that aren't either `t' or ELEMENT, that
text will become visible.

ELEMENT is only added once."
  (if (eq buffer-invisibility-spec t)
      (setq buffer-invisibility-spec (list t)))
  (setq buffer-invisibility-spec
        (delete-dups (cons element buffer-invisibility-spec))))
(advice-add 'add-to-invisibility-spec :override 'add-to-invisibility-spec-override-advice)

(with-eval-after-load 'dired
  ;; Font lock symlinks
  (defface dired-executable
    '((t (:inherit font-lock-warning-face :weight normal)))
    "Face used for symbolic links."
