Emacs frames position and dimensions are "learned" from user provided frame configurations, then restores them later. This is for users that prefer to resize Emacs frames with a key binding rather than the mouse. To use this library: 1. Position the frame how you like it. 2. Record the frame with `M-x cframe-add-or-advance-setting`. 3. Restore previous settings on start up with `cframe-restore`. 4. Cycle through configurations with `cframe-add-or-advance-setting`. You can get a list of the configuration and which is currently used with `cframe-list`. Recommended `~/.emacs` configuration to restore the frame on start up: (require 'cframe) ;; frame size settings based on screen dimentions (global-set-key "\C-x9" 'cframe-restore) ;; doesn't clobber anything in shell, Emacs Lisp buffers (maybe others?) (global-set-key "\C-\\" 'cframe-add-or-advance-setting) ;; toggle full or maximized screen (global-set-key "\C-x\C-\\" 'cframe-toggle-frame-full-or-maximized)