From 9a094e3eaf22d4f15d88859ca28af6a3779d3c61 Mon Sep 17 00:00:00 2001 From: Tom Willemse Date: Fri, 10 Jun 2016 15:04:25 +0200 Subject: [PATCH] Add window managing hydra --- emacs/.emacs.d/init.el | 2 +- emacs/.emacs.d/site-lisp/oni-window-hydra.el | 56 ++++++++++++++++++++ 2 files changed, 57 insertions(+), 1 deletion(-) create mode 100644 emacs/.emacs.d/site-lisp/oni-window-hydra.el diff --git a/emacs/.emacs.d/init.el b/emacs/.emacs.d/init.el index e504188..03d6845 100644 --- a/emacs/.emacs.d/init.el +++ b/emacs/.emacs.d/init.el @@ -671,7 +671,6 @@ MODE1 is enabled and vice-versa." (global-set-key (kbd "C-c h r") 'hypo-region) (global-set-key (kbd "C-c i p") 'identica-update-status-interactive) (global-set-key (kbd "C-c m") 'gnus) -(global-set-key (kbd "C-c s") #'split-window-below) (global-set-key (kbd "C-c t") 'oni:raise-ansi-term) (global-set-key (kbd "C-c u") 'upcase-transient-mode) (global-set-key (kbd "C-c w d") 'oni:downcase-prev) @@ -696,6 +695,7 @@ MODE1 is enabled and vice-versa." (global-set-key (kbd "C-c o") 'hydra-org/body) ;; (global-set-key (kbd "C-c f") #'hydra-vimish-fold/body) (global-set-key (kbd "C-c g") 'hydra-magit/body) +(global-set-key (kbd "C-c w") 'oni-window-hydra/body) (setq org-completion-use-ido t) (setq magit-completing-read-function 'magit-ido-completing-read) diff --git a/emacs/.emacs.d/site-lisp/oni-window-hydra.el b/emacs/.emacs.d/site-lisp/oni-window-hydra.el new file mode 100644 index 0000000..e97f14b --- /dev/null +++ b/emacs/.emacs.d/site-lisp/oni-window-hydra.el @@ -0,0 +1,56 @@ +;;; oni-window-hydra.el --- A Hydra to manage windows/buffers -*- lexical-binding: t; -*- + +;; Copyright (C) 2016 Tom Willemse + +;; Author: Tom Willemse +;; Keywords: convenience + +;; This program is free software; you can redistribute it and/or modify +;; it under the terms of the GNU General Public License as published by +;; the Free Software Foundation, either version 3 of the License, or +;; (at your option) any later version. + +;; This program is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. + +;; You should have received a copy of the GNU General Public License +;; along with this program. If not, see . + +;;; Commentary: + +;; This is a hydra used to make managing windows and buffers easier. + +;;; Code: + +(require 'hydra) +(require 'winner) + +;;;###autoload(autoload 'oni-window-hydra/body "oni-window-hydra") +(defhydra oni-window-hydra (:hint nil) + " + Split: _v_ertical _h_orizontal +Delete: _c_urrent _o_thers +Switch: _b_:left _n_:down _p_:up _f_:right +Layout: _u_ndo _r_edo" + ("v" split-window-below) + ("h" split-window-right) + + ("c" delete-window) + ("o" delete-other-windows) + + ("b" windmove-left) + ("n" windmove-down) + ("p" windmove-up) + ("f" windmove-right) + + ("u" winner-undo) + ("r" winner-redo) + + ;; Resize windows + + ("q" nil)) + +(provide 'oni-window-hydra) +;;; oni-window-hydra.el ends here