summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJSDurand <mmemmew@gmail.com>2026-05-06 23:54:07 +0800
committerJSDurand <mmemmew@gmail.com>2026-05-06 23:54:07 +0800
commite667d1ee9acffa1b78b191ab3a53b2c9a1055785 (patch)
tree6105c714494a68bdc220f646b782b4a07ab9b6fc
parentef6b5c2f6f1a54ad3af5c32c0e6ab2e269173646 (diff)
Ithkuil-related
* ibuffer.el (durand-ithkuil): Filter for Ithkuil-related buffers. (durand-bongo-set-filter): Add the above filter. * input-conf.el (durand-input-method-list): Add input method for Ithkuil and Hebrew. (durand-transient-punct, global-map): Add a key-binding for transiently inputting Chinese punctuation. * ithkuil.el: Define an input method for inputting transliteration of Ithkuil.
-rw-r--r--ibuffer.el19
-rw-r--r--input-conf.el14
-rw-r--r--ithkuil.el67
3 files changed, 99 insertions, 1 deletions
diff --git a/ibuffer.el b/ibuffer.el
index 9066617..5f7f614 100644
--- a/ibuffer.el
+++ b/ibuffer.el
@@ -431,6 +431,24 @@ value of `default-directory' in that buffer."
(expand-file-name
(buffer-local-value buf default-directory)))))))
+;;; For ITHKUIL
+(define-ibuffer-filter durand-ithkuil
+ "Matches ITHKUIL buffers.
+These are EWW buffers whose URL starts with www.ithkuil.net,
+along with the buffers of files in a dedicated Ithkuil directory."
+ (:description "ITHKUIL" :reader (read-string "no effect"))
+ (with-current-buffer buf
+ (let ((buf-name default-directory))
+ (ignore-errors
+ (cond
+ ((derived-mode-p 'eww-mode)
+ (string-prefix-p
+ "https://www.ithkuil.net" (plist-get eww-data :url)))
+ (buf-name
+ (string-prefix-p
+ "/Users/durand/Desktop/Centre/Ithkuil/"
+ (expand-file-name buf-name))))))))
+
;;;###autoload
(defun durand-bongo-set-filter ()
"Set my custom filters."
@@ -441,6 +459,7 @@ value of `default-directory' in that buffer."
(mode . rustic-mode)
(mode . rust-mode))))
(cons "TeX" '((derived-mode . tex-mode)))
+ (cons "ITHKUIL" '((durand-ithkuil)))
(cons "C" '((mode . c-mode)))
(cons "ELisp" '((mode . emacs-lisp-mode)))
(cons "EWW" '((mode . eww-mode)))
diff --git a/input-conf.el b/input-conf.el
index 1ea7f0d..10cc6da 100644
--- a/input-conf.el
+++ b/input-conf.el
@@ -50,7 +50,9 @@
(setq durand-input-method-list
(list "devanagari-kyoto-harvard"
"tamil99"
- "chinese-zozy"))
+ "chinese-zozy"
+ "ithkuil"
+ "hebrew-full"))
(defun durand-toggle-input ()
"Toggle input method with my customizations."
@@ -143,5 +145,15 @@ more."
(goto-char start)
(insert converted)))
+;;; Chinese punctuation input
+
+(defun durand-transient-punct ()
+ "Switch the input method to chinese punctuation transiently."
+ (interactive)
+ (let ((default-transient-input-method "chinese-punct-b5"))
+ (activate-transient-input-method)))
+
+(define-key global-map (vector ?\C-,) #'durand-transient-punct)
+
(provide 'input-conf)
;;; input-conf.el ends here
diff --git a/ithkuil.el b/ithkuil.el
new file mode 100644
index 0000000..e409a91
--- /dev/null
+++ b/ithkuil.el
@@ -0,0 +1,67 @@
+;;; ithkuil.el --- Input-method for The New Ithkuil Language -*- lexical-binding: t; -*-
+
+;; Copyright (C) 2026 Jean Sévère Durand
+
+;; Author: Jean Sévère Durand <durand@jsdurand.xyz>
+;; Keywords: emulations, wp, abbrev
+
+;; This program is free software; you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+
+;; This program is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with this program. If not, see <https://www.gnu.org/licenses/>.
+
+;;; Commentary:
+
+;; My input-method for TNIL.
+
+;;; Code:
+
+(quail-define-package
+ "ithkuil" "TNIL" "TNIL" t "TODO")
+
+(quail-defrule ":a" ?ä)
+(quail-defrule ":e" ?ë)
+(quail-defrule ":o" ?ö)
+(quail-defrule ":u" ?ü)
+
+(quail-defrule ";a" ?â)
+(quail-defrule ";e" ?ê)
+(quail-defrule ";o" ?ô)
+(quail-defrule ";u" ?û)
+
+(quail-defrule "/a" ?á)
+(quail-defrule "/e" ?é)
+(quail-defrule "/i" ?í)
+(quail-defrule "/o" ?ó)
+(quail-defrule "/u" ?ú)
+
+(quail-defrule "\\i" ?ì)
+(quail-defrule "\\u" ?ù)
+
+(quail-defrule ",'" ?\’)
+(quail-defrule ",t" ?ţ)
+(quail-defrule ",d" ?ḑ)
+(quail-defrule ",c" ?ç)
+(quail-defrule ",l" ?ļ)
+
+(quail-defrule ">d" (vector "d͕"))
+(quail-defrule ">l" (vector "l͕"))
+
+(quail-defrule ";s" ?š)
+(quail-defrule ";z" ?ž)
+(quail-defrule ";c" ?č)
+(quail-defrule ";n" ?ň)
+(quail-defrule ";r" ?ř)
+
+(quail-defrule ".z" ?ẓ)
+
+(provide 'ithkuil)
+;;; ithkuil.el ends here