diff --git a/common/_global.el b/common/_global.el index dbcd890..58ad5d0 100644 --- a/common/_global.el +++ b/common/_global.el @@ -228,8 +228,6 @@ (global-set-key (kbd "") 'keyboard-escape-quit) (global-set-key (kbd "M-g") 'keyboard-quit) (global-set-key (kbd "M-m") 'menu-bar-open) -(global-set-key (kbd "C-M-n") 'make-frame) -(global-set-key (kbd "C-M-k") 'delete-frame) (global-set-key (kbd "C-x C-z") nil) (global-set-key (kbd "C-g") 'goto-line) @@ -250,11 +248,42 @@ ) ) -(global-set-key (kbd "M-k") 'delete-window) +; tmux keybind compatibility +(setq windmove-wrap-around t) ; tmux does wraparound for window movements, enable for emacs (define-key global-map (kbd "C-b") (make-sparse-keymap)) -(global-set-key (kbd "C-b n") 'make-frame) -(global-set-key (kbd "C-b \"") 'split-window-below) -(global-set-key (kbd "C-b %") 'split-window-right) +; prevent ardux typos w/ window sizing +(global-set-key (kbd "C-") nil) +(global-set-key (kbd "C-") nil) +(global-set-key (kbd "C-") nil) +(global-set-key (kbd "C-") nil) +; main tmux key binds +; *remember* C-b b in tmux sends a single C-b to the underlying tty +(global-set-key (kbd "C-b c") (lambda () (interactive) + (let ((frame (make-frame)) + ; yes, this is silly + ; need a name for the buffer and emacs always re-uses buffers based on name + ; to keep w/ tmux, use an arbitrary, 'unique' name of the new buffer + (buffer (get-buffer-create (format-time-string "%Y-%m-%d %H:%M:%S" (current-time))))) + (select-frame-set-input-focus frame) + (display-buffer buffer) + (switch-to-buffer buffer) + (delete-other-windows) +))) +(global-set-key (kbd "C-b &") 'delete-frame) +(global-set-key (kbd "C-b \"") 'split-window-below) +(global-set-key (kbd "C-b %") 'split-window-right) +(global-set-key (kbd "C-b x") 'delete-window) +(global-set-key (kbd "C-b ") 'windmove-up) +(global-set-key (kbd "C-b ") 'windmove-down) +(global-set-key (kbd "C-b ") 'windmove-left) +(global-set-key (kbd "C-b ") 'windmove-right) +(global-set-key (kbd "C-b !") 'make-frame) +(global-set-key (kbd "C-b C-") 'enlarge-window) +(global-set-key (kbd "C-b C-") 'shrink-window) +(global-set-key (kbd "C-b C-") 'enlarge-window-horizontally) +(global-set-key (kbd "C-b C-") 'shrink-window-horizontally) +(global-set-key (kbd "C-b :") 'helm-M-x) +(global-set-key (kbd "C-b SPC") 'zoom-mode) ; use 'balance-windows function if not using zoom.el or golden-ratio ;; Lookup the current symbol at point. C-c C-d is a common keybinding ;; for this in lisp modes.