Hacker News new | ask | show | jobs
by visitor4rmindia 5956 days ago
Here you go:

    (defun fullscreen ()
      (interactive)
      (let (f w l r cb b)
        (setq cb (current-buffer))
        (setq b (switch-to-buffer "*NOSUCHBUFFER*")) ;Temp buffer otherwise
        (setq f (make-frame '((fullscreen . fullboth)))) ;settings don't take effect
        (select-frame-set-input-focus f)
        (setq w (frame-width f))
        (setq l (/ (- w 80) 2))
        (setq r (- w (+ l 80)))
        (seq-default left-margin-width l
                      right-margin-width r)
        (delete-other-frames f)             ;Only one main window
        (kill-buffer b) ;Kill temp buffer - now original buffer will get new margins
        (switch-to-buffer cb)))
    
    (defun fullscreen-off ()
      (interactive)
      (let (f cb b p)
        (setq cb (current-buffer))
        (setq b (switch-to-buffer "*NOSUCHBUFFER*")) ;Temp buffer
        (setq-default left-margin-width nil
                      right-margin-width nil)
        (kill-buffer b)
        (delete-other-frames (make-frame))
        (switch-to-buffer cb)))