about summary refs log tree commit diff
path: root/configs/shared/.emacs.d/wpc/kaomoji.el
diff options
context:
space:
mode:
authorWilliam Carroll <wpcarro@gmail.com>2019-10-09T11·13+0100
committerWilliam Carroll <wpcarro@gmail.com>2019-12-24T15·21+0000
commit6b456c1b7a4f6899f063a6e65355af51901d9c7a (patch)
treecfc70d74818ae9fabdbbfb0cf16cce092e4c1a09 /configs/shared/.emacs.d/wpc/kaomoji.el
parenta7c72adb2ebec1e497fc040eaf3551d564d61a5b (diff)
Massive configuration overhaul
Currently paying the price of months of non-diligent git usage.

Here's what has changed.

- Theming support in Gvcci and wpgtk
- Dropping support for i3
- Supporting EXWM
- Many Elisp modules
- Collapsed redundant directories in ./configs
Diffstat (limited to 'configs/shared/.emacs.d/wpc/kaomoji.el')
-rw-r--r--configs/shared/.emacs.d/wpc/kaomoji.el45
1 files changed, 45 insertions, 0 deletions
diff --git a/configs/shared/.emacs.d/wpc/kaomoji.el b/configs/shared/.emacs.d/wpc/kaomoji.el
new file mode 100644
index 000000000000..d6d509c14667
--- /dev/null
+++ b/configs/shared/.emacs.d/wpc/kaomoji.el
@@ -0,0 +1,45 @@
+;;; 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