emacs window mgmt global minor mode
|
|
||
|---|---|---|
| meskot.el | chore: better comments | |
| README.org | fix readme | |
meskot.el
A global minor mode to make working with emacs windows a bit more intuitive for people used to tiling window managers
Usage
Here's how I configured it
(use-package meskot
:load-path "~/dev/emacs/meskot/"
:config((lambda ()
(defvar meskot-resize-delta 1 "unit to resize window by")
(add-hook 'meskot-enter-full-frame-hook
(lambda ()
(setq olivetti-body-width 95)
(set-fringe-style 0)
(olivetti-mode 1)
(keycast-mode-line-mode 0)
(tab-bar-mode -1)))
(add-hook 'meskot-exit-full-frame-hook
(lambda ()
(olivetti-mode 0)
(tab-bar-mode 1)
(set-fringe-style nil)
(keycast-mode-line-mode 1)))
(meskot-mode 1)))
:bind (("<f10>" . meskot-toggle-full-frame)
;; resize
("C-<up>". (lambda () (interactive) (meskot-intuitive-resize 'up meskot-resize-delta)))
("C-<down>" . (lambda () (interactive) (meskot-intuitive-resize 'down meskot-resize-delta)))
("C-<left>". (lambda () (interactive) (meskot-intuitive-resize 'left meskot-resize-delta)))
("C-<right>". (lambda () (interactive) (meskot-intuitive-resize 'right meskot-resize-delta)))
;; meskot new buffer mappings
("S-<return>". (lambda () (interactive) (meskot-new-sensible-buffer nil '(eshell)))) ; eshell
("C-S-<return>". (lambda () (interactive) (meskot-new-sensible-buffer nil '(ansi-term "/run/current-system/sw/bin/fish")))) ; ansi-term
("<f6>". (lambda () (interactive) (meskot-new-sensible-buffer "*scratch*"))) ; scratch
("<f7>". meskot-consult-buffer-new-window)
;; tabs
("C-M-<tab>". (lambda () (interactive) (meskot-move-window-to-new-tab)))
;; related non-meskot bindings
("C-<tab>". tab-next)
("C-x t 5". tab-bar-mode)
("<f3>". shell-command)))
Features
- Intuitive resize
- resize windows in a more intuitive manner based on where in the frame they reside. For example, up in a top corner window means shrink vertically and in a bottom corner window would mean enlarge vertically
- Full-frame
- toggle full-frame for the selected window, you can use the hook to turn on modes like olivetti to make it look nicer.
- New sensible windows
- just split selected window in the most spacious direction when opening a new buffer, not reusing other windows
- Tabs
- move out windows to another tab