I constantly open new emacs Frames and reposition relative to other applications (Ik, can't believe I'm not fully emacs yet), and found that manually repositioning the windows was a pain. Here's a script and some keybindings I made to make that easier. These functions can also be called at startup to change how you want the initial emacs screen size to be.

Explanation: It's pretty simple, these functions just set the frame position, and size as portions of your initial starting screen size.

Hopefully, this helps someone, and any suggestions for improving code readability would be appreciated!

 (defun left-two-thirds () (interactive) (set-frame-position (selected-frame) 0 0) (set-frame-size (selected-frame) (* 2 (/ max-frame-width 3)) max-frame-height t)) (defun left-one-thirds () (interactive) (set-frame-position (selected-frame) 0 0) (set-frame-size (selected-frame) (- (* 1 (/ max-frame-width 3)) 34) max-frame-height t)) (defun right-two-thirds () (interactive) (set-frame-size (selected-frame) (- (* 2 (/ max-frame-width 3)) 17) max-frame-height t) (set-frame-position (selected-frame) (- (- (/ max-frame-width 3) 10) -10) 0)) (defun right-one-thirds () (interactive) (set-frame-position (selected-frame) (* 2 (/ max-frame-width 3)) 0) (set-frame-size (selected-frame) (* 1 (/ max-frame-width 3)) max-frame-height t)) (defun center-third () (interactive) (set-frame-position (selected-frame) (/ max-frame-width 3) 0) (set-frame-size (selected-frame) (- (* 1 (/ max-frame-width 3)) 20) max-frame-height t)) (defun left-half () (interactive) (set-frame-position (selected-frame) 0 0) (set-frame-size (selected-frame) (* 1 (/ max-frame-width 2)) max-frame-height t)) (defun right-half () (interactive) (set-frame-position (selected-frame) (/ max-frame-width 2) 0) (set-frame-size (selected-frame) (* 1 (/ max-frame-width 2)) max-frame-height t)) (defun full-screen () (interactive) (set-frame-position (selected-frame) 0 0) (set-frame-size (selected-frame) (* 1 (/ max-frame-width 1)) max-frame-height t)) (global-set-key (kbd "C-c w e") 'left-two-thirds) (global-set-key (kbd "C-c w d") 'left-one-thirds) (global-set-key (kbd "C-c w t") 'right-two-thirds) (global-set-key (kbd "C-c w g") 'right-one-thirds) (global-set-key (kbd "C-c w <left>") 'left-half) (global-set-key (kbd "C-c w <right>") 'right-half) (global-set-key (kbd "C-c w f") 'center-third) (global-set-key (kbd "C-c w <return>") 'full-screen) 
submitted by /u/Pr0Thr0waway
[link] [comments]