           :Lv "r"   #'+email/mark-multiple))
   (add-hook 'mu4e-headers-mode-hook #'+email|headers-keybinds)
 
-  ;; (defun +email|view-keybinds ())
-  ;; (add-hook 'mu4e-view-mode-hook #'+email|view-keybinds)
+  (defun +email|view-keybinds ()
+    (map! :Lm "-"   #'mu4e-headers-mark-for-unflag
+          :Lm "+"   #'mu4e-headers-mark-for-flag
+          :Lm "v"   #'evil-visual-line
+          :Lm "q"   #'mu4e~headers-quit-buffer))
+  (add-hook 'mu4e-view-mode-hook #'+email|view-keybinds)
 
   (defun +email|main-keybinds ()
-    (map! :Ln "q" #'mu4e-quit
-          :Ln "u" #'mu4e-update-index
-          :Ln "U" #'mu4e-update-mail-and-index))
+    (map! :Lm "q" #'mu4e-quit
+          :Lm "u" #'mu4e-update-index
+          :Lm "U" #'mu4e-update-mail-and-index))
   (add-hook 'mu4e-main-mode-hook #'+email|main-keybinds))
 
 

              (format "%s" (substring maildir 1 (string-match-p "/" maildir 1))))))
        mu4e-header-info-custom)

  ;; By default, mark-for-trash deletes the email completely, even from the
  ;; server. This fix sends trashed email to the trash folder, instead. Note:
  ;; you have to update your mail for them to actually show up in Trash.
  ;; (setq mu4e-marks (assq-delete-all 'delete mu4e-marks))
  (setq mu4e-marks (assq-delete-all 'trash mu4e-marks))
  (push '(trash :char ("d" . "▼")
                :prompt "dtrash"
                :dyn-target (lambda (target msg) (mu4e-get-trash-folder msg))
                :action
                (lambda (docid msg target)
                  (mu4e~proc-move docid (mu4e~mark-check-target target) "-N")))
        mu4e-marks)

  ;; Refile will set mail to All Mail (basically archiving them). I want this to
  ;; auto-mark them as read, so I redefine refile to add the +S tag.
  (setq mu4e-marks (assq-delete-all 'refile mu4e-marks))
  (push '(refile :char ("r" . "▶")
                 :prompt "refile"
                 :dyn-target (lambda (target msg) (mu4e-get-refile-folder msg))
                 :action
                 (lambda (docid msg target)
                   (mu4e~proc-move docid (mu4e~mark-check-target target) "-u-N")))
        mu4e-marks)

  ;; This hook correctly modifies the \Inbox and \Starred flags on email when
  ;; they are marked. Without it refiling (archiving) and flagging (starring)
  ;; email won't properly result in the corresponding gmail action.
  (defun +email|gmail-fix-flags (mark msg)
    (cond ((memq mark '(trash refile)) (mu4e-action-retag-message msg "-\\Inbox"))
          ((eq mark 'flag) (mu4e-action-retag-message msg "+\\Starred"))
          ((eq mark 'unflag) (mu4e-action-retag-message msg "-\\Starred"))))
  (add-hook 'mu4e-mark-execute-pre-hook #'+email|gmail-fix-flags)

  (when (featurep! :feature spellcheck)
    (add-hook 'mu4e-compose-mode-hook #'flyspell-mode))

  ;; Brighter + no mode-line in message windows
  (after! doom-themes
    (add-hook! 'mu4e-view-mode-hook
      #'(doom-buffer-mode doom-hide-modeline-mode)))

  ;; Wrap text in messages
  (add-hook! 'mu4e-view-mode-hook

          (:human-date . 12)
          (:flags . 4)
          (:from . 25)
          (:subject))
        mu4e-bookmarks `(("\\\\Inbox" "Inbox" ?i)
                         ("flag:unread AND \\\\Inbox" "Unread messages" ?u)
                         ("flag:flagged" "Starred messages" ?s)
                         ("date:today..now" "Today's messages" ?t)
                         ("date:7d..now" "Last 7 days" ?w)
                         ("mime:image/*" "Messages with images" ?p)))

  ;; Add a column to display what email account the email belongs to.
  (push '(:account
          :name "Account"
          :shortname "Account"
