29 lines
1.2 KiB
EmacsLisp
29 lines
1.2 KiB
EmacsLisp
;;; ui/zen/autoload.el -*- lexical-binding: t; -*-
|
|
|
|
;;;###autoload
|
|
(defalias '+zen/toggle #'writeroom-mode)
|
|
|
|
(defvar +zen--last-wconf nil)
|
|
;;;###autoload
|
|
(defun +zen/toggle-fullscreen ()
|
|
"Toggle `writeroom-mode' fullscreen and delete all other windows.
|
|
Invoke again to revert to the window configuration before it was activated."
|
|
(interactive)
|
|
(require 'writeroom-mode)
|
|
(let ((writeroom-global-effects +zen--old-writeroom-global-effects)
|
|
(writeroom-maximize-window t))
|
|
(if writeroom-mode
|
|
(progn
|
|
(set-frame-parameter
|
|
nil 'fullscreen
|
|
(let ((fullscreen-restore (frame-parameter nil 'fullscreen-restore)))
|
|
(if (memq fullscreen-restore '(maximized fullheight fullwidth))
|
|
fullscreen-restore
|
|
nil)))
|
|
(set-window-configuration +zen--last-wconf))
|
|
(setq +zen--last-wconf (current-window-configuration))
|
|
(modify-frame-parameters
|
|
nil `((fullscreen . fullboth)
|
|
(fullscreen-restore . ,(frame-parameter nil 'fullscreen)))))
|
|
(let ((writeroom-global-effects (remq 'writeroom-set-fullscreen writeroom-global-effects)))
|
|
(call-interactively #'+zen/toggle))))
|