578ed1ba98
Moving all of my Emacs-related files into their own directory at the root of this repository.
45 lines
1.4 KiB
EmacsLisp
45 lines
1.4 KiB
EmacsLisp
;;; kaomoji.el --- Supporting kaomoji usage -*- lexical-binding: t -*-
|
||
;; Author: William Carroll <wpcarro@gmail.com>
|
||
|
||
;;; Commentary:
|
||
;; Simple keyboards like this make life a bit better.
|
||
|
||
;;; Code:
|
||
|
||
(defvar kaomoji/install-kbds?
|
||
nil
|
||
"Set to t if you'd like the keybindings to be installed.")
|
||
|
||
(defconst kaomoji/symbols '(("Joy" . "(⌒‿⌒)")
|
||
("Love" . "(ღ˘⌣˘ღ)")
|
||
("Sympathy" . "ヽ(~_~(・_・ )ゝ")
|
||
("Dissatisfaction" . "(>﹏<)")
|
||
("Anger" . "ヽ(‵﹏´)ノ")
|
||
("Hugging" . "(づ ̄ ³ ̄)づ")
|
||
("Hiding" . "┬┴┬┴┤( ͡° ͜ʖ├┬┴┬┴")
|
||
("Sleeping" . "(-_-) zzZ")
|
||
("Embarrassed" . "(×﹏×)")
|
||
("Shrug" . "ヽ(ー_ー )ノ"))
|
||
"Alist of human-readable emotions to the kaomoji.")
|
||
|
||
;; TODO: Consider supporting a hydra for these.
|
||
|
||
(defun kaomoji/select ()
|
||
"Interactively select a kaomoji and copy it to the clipboard."
|
||
(interactive)
|
||
(ivy-read
|
||
"Select a kaomoji: "
|
||
kaomoji/symbols
|
||
:action (lambda (entry)
|
||
(kill-new (cdr entry))
|
||
(alert "Copied to clipboard!"))))
|
||
|
||
;; TODO: Define Hydra for all custom keyboards.
|
||
;; TODO: Define a better keybinding in a different keymap.
|
||
(when kaomoji/install-kbds?
|
||
(general-define-key
|
||
:keymaps 'global
|
||
"M-k" #'kaomoji/select))
|
||
|
||
(provide 'kaomoji)
|
||
;;; kaomoji.el ends here
|