 ;; Commands
 ;;
 
+(defvar +twitter--old-wconf nil)
 ;;;###autoload
-(defun =twitter ()
+(defun =twitter (arg)
   "Opens a workspace dedicated to `twittering-mode'."
-  (interactive)
+  (interactive "P")
   (condition-case _
       (progn
-        (+workspace/new "*Twitter*")
+        (if (and (not arg) (featurep! :feature workspaces))
+            (+workspace/new +twitter-workspace-name)
+          (setq +twitter--old-wconf (current-window-configuration))
+          (delete-other-windows)
+          (switch-to-buffer (doom-fallback-buffer)))
         (call-interactively #'twit)
         (unless (get-buffer (car twittering-initial-timeline-spec-string))
           (error "Failed to open twitter"))

  (interactive)
  (when (eq major-mode 'twittering-mode)
    (twittering-kill-buffer)
    (+workspace/close-window-or-workspace)))

;;;###autoload
(defun +twitter/quit-all ()
  "Close all open `twitter-mode' buffers and the associated workspace, if any."
  (interactive)
  (+workspace/delete "*Twitter*")
  (dolist (buf (doom-buffers-in-mode 'twittering-mode (buffer-list) t))
    (twittering-kill-buffer buf)))


;;; app/twitter/autoload.el -*- lexical-binding: t; -*-

(defvar +twitter-workspace-name "*Twitter*"
  "The name to use for the twitter workspace.")

;;;###autoload
(defun +twitter-display-buffer (buf)
