ui/zen: add +zen/toggle{,-fullscreen} commands
A more reliable "Distraction-free" fullscreen mode.
This commit is contained in:
parent
14d341530a
commit
3e32379f54
4 changed files with 37 additions and 4 deletions
29
modules/ui/zen/autoload.el
Normal file
29
modules/ui/zen/autoload.el
Normal file
|
@ -0,0 +1,29 @@
|
|||
;;; 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))))
|
Loading…
Add table
Add a link
Reference in a new issue