Moved social section into its own file.
This commit is contained in:
21
config.org
21
config.org
@@ -210,26 +210,7 @@ features.
|
|||||||
|
|
||||||
#+INCLUDE: "config/documentation.org" :minlevel 1
|
#+INCLUDE: "config/documentation.org" :minlevel 1
|
||||||
|
|
||||||
* Socializing
|
#+INCLUDE: "config/social.org" :minlevel 1
|
||||||
|
|
||||||
Here are some things I use to optionally communicate with the rest of the world
|
|
||||||
via Emacs. I keep them in separate files so I can optionally load them easily
|
|
||||||
on a system by system basis.
|
|
||||||
|
|
||||||
#+begin_src emacs-lisp
|
|
||||||
;;; Extra optional files
|
|
||||||
|
|
||||||
(defun maybe-load-rel (relpath)
|
|
||||||
"Loads a file relative to the user-emacs-directory fi it exists."
|
|
||||||
(let ((path (concat (file-name-as-directory user-emacs-directory) relpath)))
|
|
||||||
(when (file-exists-p path)
|
|
||||||
(load-file path))))
|
|
||||||
|
|
||||||
(maybe-load-rel "extra/email.el")
|
|
||||||
(maybe-load-rel "extra/feed.el")
|
|
||||||
(maybe-load-rel "extra/social.el")
|
|
||||||
;;;
|
|
||||||
#+end_src
|
|
||||||
|
|
||||||
* Hail Hydra?!
|
* Hail Hydra?!
|
||||||
|
|
||||||
|
|||||||
105
config/hydra.org
Normal file
105
config/hydra.org
Normal file
@@ -0,0 +1,105 @@
|
|||||||
|
* Hail Hydra?!
|
||||||
|
|
||||||
|
I find that [[https://github.com/abo-abo/hydra][Hydra]] is great for providing visual menus for tasks that might
|
||||||
|
otherwise be fairly unwieldy. I use them hydra's for windows, tabs, and a
|
||||||
|
few other things in the future perhaps.
|
||||||
|
|
||||||
|
** Tabs
|
||||||
|
|
||||||
|
Pretty simple tab hydra. Handles opening, closing, and simple navigation.
|
||||||
|
|
||||||
|
#+name: tab-hydra
|
||||||
|
#+begin_src emacs-lisp :tangle no
|
||||||
|
(defhydra hydra-tab (:color red :hint nil)
|
||||||
|
"
|
||||||
|
Movement^^ ^Modifier^
|
||||||
|
----------------------------------------------------------------
|
||||||
|
_h_ ← _n_ ew
|
||||||
|
_l_ → _c_ lose
|
||||||
|
"
|
||||||
|
("h" tab-previous)
|
||||||
|
("l" tab-next)
|
||||||
|
("n" tab-new)
|
||||||
|
("c" tab-close)
|
||||||
|
("SPC" nil))
|
||||||
|
(global-set-key (kbd "C-c t") 'hydra-tab/body)
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
** Windows
|
||||||
|
|
||||||
|
Quite a helpful window hydra. I cannot take credit for this. I copied it
|
||||||
|
from somewhere. When I find the link I'll add it here.
|
||||||
|
|
||||||
|
#+name: window-hydra
|
||||||
|
#+begin_src emacs-lisp :tangle no
|
||||||
|
(defhydra hydra-window (:color red :hint nil)
|
||||||
|
"
|
||||||
|
Movement^^ ^Split^ ^Switch^ ^Resize^
|
||||||
|
----------------------------------------------------------------
|
||||||
|
_h_ ← _v_ertical _b_uffer _q_ X←
|
||||||
|
_j_ ↓ _x_ horizontal _f_ind files _w_ X↓
|
||||||
|
_k_ ↑ _z_ undo _a_ce 1 _e_ X↑
|
||||||
|
_l_ → _Z_ reset _s_wap _r_ X→
|
||||||
|
_F_ollow _D_lt Other _S_ave max_i_mize
|
||||||
|
_SPC_ cancel _o_nly this _d_elete
|
||||||
|
"
|
||||||
|
("h" windmove-left )
|
||||||
|
("j" windmove-down )
|
||||||
|
("k" windmove-up )
|
||||||
|
("l" windmove-right )
|
||||||
|
("q" hydra-move-splitter-left)
|
||||||
|
("w" hydra-move-splitter-down)
|
||||||
|
("e" hydra-move-splitter-up)
|
||||||
|
("r" hydra-move-splitter-right)
|
||||||
|
("b" consult-buffer)
|
||||||
|
("f" consult-fd)
|
||||||
|
("F" follow-mode)
|
||||||
|
("a" (lambda ()
|
||||||
|
(interactive)
|
||||||
|
(ace-window 1)
|
||||||
|
(add-hook 'ace-window-end-once-hook
|
||||||
|
'hydra-window/body))
|
||||||
|
)
|
||||||
|
("v" (lambda ()
|
||||||
|
(interactive)
|
||||||
|
(split-window-right)
|
||||||
|
(windmove-right))
|
||||||
|
)
|
||||||
|
("x" (lambda ()
|
||||||
|
(interactive)
|
||||||
|
(split-window-below)
|
||||||
|
(windmove-down))
|
||||||
|
)
|
||||||
|
("s" (lambda ()
|
||||||
|
(interactive)
|
||||||
|
(ace-window 4)
|
||||||
|
(add-hook 'ace-window-end-once-hook
|
||||||
|
'hydra-window/body)))
|
||||||
|
("S" save-buffer)
|
||||||
|
("d" delete-window)
|
||||||
|
("D" (lambda ()
|
||||||
|
(interactive)
|
||||||
|
(ace-window 16)
|
||||||
|
(add-hook 'ace-window-end-once-hook
|
||||||
|
'hydra-window/body))
|
||||||
|
)
|
||||||
|
("o" delete-other-windows)
|
||||||
|
("i" ace-maximize-window)
|
||||||
|
("z" (progn
|
||||||
|
(winner-undo)
|
||||||
|
(setq this-command 'winner-undo))
|
||||||
|
)
|
||||||
|
("Z" winner-redo)
|
||||||
|
("SPC" nil))
|
||||||
|
(global-set-key (kbd "C-c w") 'hydra-window/body)
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
** Pulling it all together
|
||||||
|
|
||||||
|
#+begin_src emacs-lisp
|
||||||
|
(use-package hydra
|
||||||
|
:demand t
|
||||||
|
:config
|
||||||
|
<<tab-hydra>>
|
||||||
|
<<window-hydra>>)
|
||||||
|
#+end_src
|
||||||
21
config/social.org
Normal file
21
config/social.org
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
* Socializing
|
||||||
|
|
||||||
|
Here are some things I use to optionally communicate with the rest of the world
|
||||||
|
via Emacs. I keep them in separate files so I can optionally load them easily
|
||||||
|
on a system by system basis.
|
||||||
|
|
||||||
|
#+begin_src emacs-lisp
|
||||||
|
;;; Extra optional files
|
||||||
|
|
||||||
|
(defun maybe-load-rel (relpath)
|
||||||
|
"Loads a file relative to the user-emacs-directory fi it exists."
|
||||||
|
(let ((path (concat (file-name-as-directory user-emacs-directory) relpath)))
|
||||||
|
(when (file-exists-p path)
|
||||||
|
(load-file path))))
|
||||||
|
|
||||||
|
(maybe-load-rel "extra/email.el")
|
||||||
|
(maybe-load-rel "extra/feed.el")
|
||||||
|
(maybe-load-rel "extra/social.el")
|
||||||
|
;;;
|
||||||
|
#+end_src
|
||||||
|
|
||||||
Reference in New Issue
Block a user