;;; Frame config (defvar cke-window-top-left nil "Top left window of intial frame") (defvar cke-window-bottom-left nil "Bottom left window of initial frame") (defvar cke-frame-height 70 "Height of frames in my emacs") (defvar cke-frame-width 81 "Width of frames in my emacs") (defvar cke-initial-frame-width (* 86 2) "Width of first emacs frame") ;; Set up the initial frame (cond ((eq window-system 'x) (add-to-list 'initial-frame-alist (cons 'height cke-frame-height)) (add-to-list 'initial-frame-alist (cons 'width cke-initial-frame-width)) (split-window-horizontally) (split-window-vertically) (save-selected-window (setq cke-window-top-left (selected-window)) (other-window 1) (setq cke-window-bottom-left (selected-window))))) (defun cke-make-frame () "Creates a frame controlled by cke-frame-height and cke-initial-frame-width" (interactive) (let ((f (make-frame))) (cond ((eq (framep f) 'x) (set-frame-height f cke-frame-height) (set-frame-width f cke-frame-width) (split-window (frame-first-window f))) ((framep f) (set-face-attribute 'default f :background "black"))) f)) (defun cke-make-wide-frame () "Creates a 120 character wide frame for viewing/editing wide data" (interactive) (let ((cke-frame-width 121)) (cke-make-frame))) (defun cke-make-big-frame () "Creates a frame the size of the initial frame" (interactive) (let ((cke-frame-width cke-initial-frame-width)) (cke-make-frame))) ;; Double height and split all new frames created manually (global-set-key [?\C-x ?5 ?2] #'cke-make-frame) (global-set-key [?\C-x ?5 ?@] #'cke-make-wide-frame) (global-set-key [?\C-x ?5 ?\M-2] #'cke-make-big-frame) (winner-mode t) (windmove-default-keybindings) ;;; Special Windows (defvar cke-window-html-docs cke-window-top-left "Window that HTML documentation should be shown in") (defun cke-browse-url-docs (url new-session) (save-selected-window (cond ;; Only use the dedicated html doc frame in the frame it is ;; presently in ((and (window-live-p cke-window-html-docs) (eq (selected-frame) (window-frame cke-window-html-docs))) (select-window cke-window-html-docs)) (t (switch-to-buffer-other-window "*scratch*" t))) (w3m-browse-url url new-session)))