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
 |