complete-computing-environment/window_management_in_emacs.org

42 lines
1.2 KiB
Org Mode

:PROPERTIES:
:ID: cce/window_management_in_emacs
:ROAM_ALIASES: hydra-windowing
:END:
#+TITLE: Window Management in Emacs
#+PROPERTY: header-args :mkdirp yes :results none
#+PROPERTY: header-args:emacs-lisp :tangle window-management.el
#+ARCOLOGY_KEY: cce/window-management
#+ARCOLOGY_ALLOW_CRAWL: t
#+ARROYO_EMACS_MODULE: window-management
#+ARROYO_MODULE_WANTS: cce/evil_mode.org
#+ARROYO_MODULE_WANTS: cce/hydra.org
#+AUTO_TANGLE: t
#+begin_src emacs-lisp
(provide 'cce/window-management)
(use-package transpose-frame
:after evil-leader
:config
(require 'winner)
(winner-mode 1)
(defhydra hydra-windowing ()
("t" transpose-frame)
("r" rotate-frame-clockwise)
("R" rotate-frame-anticlockwise)
("F" flip-frame)
("f" flop-frame)
("h" windmove-left)
("j" windmove-down)
("k" windmove-up)
("l" windmove-right)
("u" winner-undo)
("U" winner-redo))
(evil-leader/set-key (kbd "w") #'hydra-windowing/body))
(global-set-key (kbd "s-o") #'other-window)
#+end_src
Right now I just use this thing to navigate windows, along with [[id:cce/exwm][EXWM]]'s =other-frame= and =other-window= bindings. I would love to have better workspace support but I don't really feel like investing in it right now.