Function: toggle-frame-maximized

toggle-frame-maximized is an interactive and byte-compiled function defined in frame.el.gz.

Signature

(toggle-frame-maximized &optional FRAME)

Documentation

Toggle maximization state of FRAME.

Maximize selected frame or un-maximize if it is already maximized.

If the frame is in fullscreen state, don't change its state, but set the frame's fullscreen-restore parameter to maximized, so the frame will be maximized after disabling fullscreen state.

Note that with some window managers you may have to set frame-resize-pixelwise to non-nil in order to make a frame appear truly maximized. In addition, you may have to set x-frame-normalize-before-maximize in order to enable transitions from one fullscreen state to another.

See also toggle-frame-fullscreen.

Probably introduced at or before Emacs version 24.4.

Key Bindings

Source Code

;; Defined in /usr/src/emacs/lisp/frame.el.gz
;; Frame maximization/fullscreen

(defun toggle-frame-maximized (&optional frame)
  "Toggle maximization state of FRAME.
Maximize selected frame or un-maximize if it is already maximized.

If the frame is in fullscreen state, don't change its state, but
set the frame's `fullscreen-restore' parameter to `maximized', so
the frame will be maximized after disabling fullscreen state.

Note that with some window managers you may have to set
`frame-resize-pixelwise' to non-nil in order to make a frame
appear truly maximized.  In addition, you may have to set
`x-frame-normalize-before-maximize' in order to enable
transitions from one fullscreen state to another.

See also `toggle-frame-fullscreen'."
  (interactive)
  (let ((fullscreen (frame-parameter frame 'fullscreen)))
    (cond
     ((memq fullscreen '(fullscreen fullboth))
      (set-frame-parameter frame 'fullscreen-restore 'maximized))
     ((eq fullscreen 'maximized)
      (set-frame-parameter frame 'fullscreen nil))
     (t
      (set-frame-parameter frame 'fullscreen 'maximized)))))