;;; greek-ao.el --- insert Greek chars -*- lexical-binding: t -*- ;; ;;; Commentary: ;; ;; Author: Emanuel Berg (incal) ;; Created: 2021-12-09 ;; Keywords: key ;; License: GPL3+ ;; URL: https://dataswamp.org/~incal/emacs-init/greek-ao.el ;; Version: 1.0.3 ;; ;; Invoke this mode. Insert a Greek char. ;; Return automatically. ;; ;;; Code: (defun char-to-greek (c) "Convert C to the corresponding Greek char." (when (and (<= ?A c) (<= c ?Y) ) (+ c 848) )) (defun greek-ao-mode-self-insert-command (n) "Insert the `last-command-event' char N times, in Greek." (interactive "p") (let*((chr last-command-event) (greek-char (char-to-greek chr)) ) (when greek-char (insert-char greek-char n)) (greek-ao-mode 0) )) (defvar greek-ao-mode-map (let ((map (make-keymap))) (substitute-key-definition #'self-insert-command #'greek-ao-mode-self-insert-command map global-map) map) ) (define-minor-mode greek-ao-mode "Greek Alpha Omega (ao) mode (greek-ao-mode)." :init-value nil :lighter " Caps") (defun toggle-greek-ao-mode () "Toggle Greek Alpha Omega (ao) mode (greek-ao-mode)." (interactive) (greek-ao-mode 'toggle) ) (provide 'greek-ao) ;;; greek-ao.el ends here