   (defun my/circe-prompt ()
     (lui-set-prompt
      (concat (propertize "━━━" 'face 'circe-prompt-face) " ")))
-  (add-hook 'circe-chat-mode-hook 'my/circe-prompt))
+  (add-hook 'circe-chat-mode-hook 'my/circe-prompt)
+
+  ;; Auto-track ignored channels on talk.
+  (defadvice circe-command-SAY (after my/circe-unignore-target)
+    (let ((ignored (tracking-ignored-p
+                    (current-buffer) '(circe-highlight-nick-face))))
+      (when ignored
+        (setq tracking-ignored-buffers
+              (remove ignored tracking-ignored-buffers))
+        (my/lui-enable-tracked-logging))))
+  (ad-activate 'circe-command-SAY))
 
 ;; Theme
 ;; =====

  ;; Going to have to change these into an alists for multiple servers because
  ;; at the moment they just work for one server (Freenode).
  (defvar my/circe-nick "xd1le")
  (defvar my/circe-channels '("#ai" "#blink" "#chromium" "#chromium-extensions"
  "#chromium-support" "#conservancy" "#elm" "#emacs" "#emacs-circe" "#firefox"
  "#fsf" "#fsfe" "#github" "#gnu" "#gnulinuxlovers" "#guile" "#guix" "#haskell"
  "#herbstluftwm" "#idris" "#julia" "#latex" "#nixos" "#org-mode"
  "#qutebrowser" "##rust" "#scheme" "#space" "#syncthing" "##vegan" "#vim"
  "#webkit" "#zsh"))

  (defun circe-command-ID (passwd)
    (circe-command-NICK my/circe-nick)

        lui-fill-type              "             ┃ "
        lui-logging-directory      (expand-file-name "~/archive/irc")
        lui-scroll-behavior        nil
        lui-time-stamp-position    nil
        tracking-ignored-buffers
        (mapcar (lambda (channel) (list channel 'circe-highlight-nick-face))
                '("#emacs$" "#haskell$" "irc.freenode.net" "nickserv"
                  "#vim$")))

  :preface
  (defun irc ()
