Variable: mode-line-invisible-mode

mode-line-invisible-mode is a buffer-local variable defined in simple.el.gz.

Documentation

Non-nil if Mode-Line-Invisible mode is enabled.

Use the command mode-line-invisible-mode(var)/mode-line-invisible-mode(fun) to change this variable.

View in manual

Probably introduced at or before Emacs version 31.1.

Key Bindings

Source Code

;; Defined in /usr/src/emacs/lisp/simple.el.gz
(define-minor-mode mode-line-invisible-mode
  "Toggle the mode-line visibility of the current buffer.
Hide the mode line if it is shown, and show it if it's hidden."
  :global nil
  :group 'mode-line
  (if mode-line-invisible-mode
      (progn
        (add-hook 'after-change-major-mode-hook #'mode-line-invisible-mode nil t)
        (setq mode-line-invisible--buf-state
              (buffer-local-set-state mode-line-format nil)))

    (remove-hook 'after-change-major-mode-hook #'mode-line-invisible-mode t)

    ;; Restore buffer mode line if buffer had one by default
    (when mode-line-invisible--buf-state
      (setq mode-line-invisible--buf-state
            (buffer-local-restore-state mode-line-invisible--buf-state)))

    ;; Otherwise display one
    (unless mode-line-format
      (setq-local mode-line-format (default-value 'mode-line-format)))

    ;; Update mode line
    (when (called-interactively-p 'any)
      (force-mode-line-update))))