From cd1deee5cd886d1ca854fd71d0b61073ac465a9f Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Sat, 2 Jan 2021 22:20:31 +0100 Subject: Save and restore window layout. --- guile-studio-configure.scm | 32 +++++++++++++++++++++----------- 1 file changed, 21 insertions(+), 11 deletions(-) diff --git a/guile-studio-configure.scm b/guile-studio-configure.scm index 470abca..f2197b7 100644 --- a/guile-studio-configure.scm +++ b/guile-studio-configure.scm @@ -416,23 +416,33 @@ with the " (add-hook 'emacs-startup-hook (lambda () + (require 'winner) + (winner-mode 1) (let ((buf (generate-new-buffer "untitled.scm"))) - (switch-to-buffer buf nil t) - (funcall (and initial-major-mode)) - (insert ";;; Welcome to Guile Studio!\n") - (insert ";;; Type your Guile program here and evaluate it.\n") - (setq buffer-offer-save t) - (delete-other-windows) - - (run-guile) - (set-window-dedicated-p (selected-window) t) - - (call-interactively 'about-guile-studio) + (with-current-buffer buf + (switch-to-buffer buf nil t) + (set-window-dedicated-p (selected-window) nil) + (set-window-parameter (selected-window) 'guile-studio/edit t) + (funcall (and initial-major-mode)) + (insert ";;; Welcome to Guile Studio!\n") + (insert ";;; Type your Guile program here and evaluate it.\n") + (setq buffer-offer-save t) + + (switch-to-geiser) + (set-window-dedicated-p (selected-window) t) + (call-interactively 'about-guile-studio)) ;; This is necessary to show the REPL prompt after ;; displaying the side window. (pop-to-buffer "* Guile REPL *")) + ;; Always restore default layout + (defvar guile-studio--layout (winner-conf)) + (define-key global-map (kbd "ESC ESC ESC") + (lambda () + (interactive) + (keyboard-escape-quit) + (winner-set guile-studio--layout))) (kill-buffer "*scratch*") ;; Hide the cluttered Tools and Options menu items -- cgit v1.2.3