bug#81598: [PATCH] Add new input method for toki pona
Joshua Murphy <[email protected]>
| Newsgroups | gmane.emacs.bugs |
|---|---|
| Message-ID | <[email protected]> |
Tags: patch This adds an input method for Toki Pona that allows typing sitelen pona characters using sitelen lasina (Latin script). You need a font that supports the UCSUR range that sitelen pona covers to view the glyphs. GNU Unifont covers it as well as some other more specialized free software fonts [1]. I haven't added an etc/NEWS entry yet because I didn't know the best header to put it under. [1] https://www.kreativekorp.com/software/fonts/sitelenselikiwen/
0001-Add-new-input-method-for-toki-pona.patch
(text/patch, 5.2 KB)
From 328cde0157cd0401a3b66ed449bbc76bc19543ee Mon Sep 17 00:00:00 2001 From: Joshua Murphy <[email protected]> Date: Tue, 11 Aug 2026 15:03:18 -0400 Subject: [PATCH] Add new input method for toki pona * lisp/leim/quail/tokipona.el: Define new input method. --- lisp/leim/quail/tokipona.el | 230 ++++++++++++++++++++++++++++++++++++ 1 file changed, 230 insertions(+) create mode 100644 lisp/leim/quail/tokipona.el diff --git a/lisp/leim/quail/tokipona.el b/lisp/leim/quail/tokipona.el new file mode 100644 index 00000000000..5ff07a0cd21 --- /dev/null +++ b/lisp/leim/quail/tokipona.el @@ -0,0 +1,230 @@ +;;; tokipona.el --- Quail package for Toki Pona character composition -*- lexical-binding: t -*- + +;; Copyright (C) 2026 Free Software Foundation, Inc. + +;; Author: Joshua Murphy <[email protected]> +;; Keywords: multilingual, input method, Toki Pona + +;; This file is part of GNU Emacs. + +;; GNU Emacs 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. + +;; GNU Emacs 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 GNU Emacs. If not, see <https://www.gnu.org/licenses/>. + +;;; Commentary: + +;; This input method allows you to type sitelen pona using +;; sitelen lasina. + +;;; Code: + +(require 'quail) + +(quail-define-package + "tokipona" "UTF-8" "" t + "Toki Pona input method using sitelen lasina to sitelen pona conversion. + +In addition to the standard sitelen lasina to sitelen pona +conversions, the following keys can be used to type extra +glyphs that act as modifiers for existing glyphs. + +[ start cartouche +] end cartouche +^ stack joiner +* scale joiner +( start long glyph +) end long glyph +. middle dot +: colon +, tally mark +- zero width joiner" + nil t nil nil nil nil nil nil nil nil t) + +(quail-define-rules + ("a" ?) + ("akesi" ?) + ("ala" ?) + ("alasa" ?) + ("ale" ?) + ("anpa" ?) + ("ante" ?) + ("anu" ?) + ("awen" ?) + ("e" ?) + ("en" ?) + ("esun" ?) + ("ijo" ?) + ("ike" ?) + ("ilo" ?) + ("insa" ?) + ("jaki" ?) + ("jan" ?) + ("jelo" ?) + ("jo" ?) + ("kala" ?) + ("kalama" ?) + ("kama" ?) + ("kasi" ?) + ("ken" ?) + ("kepeken" ?) + ("kili" ?) + ("kiwen" ?) + ("ko" ?) + ("kon" ?) + ("kule" ?) + ("kulupu" ?) + ("kute" ?) + ("la" ?) + ("lape" ?) + ("laso" ?) + ("lawa" ?) + ("len" ?) + ("lete" ?) + ("li" ?) + ("lili" ?) + ("linja" ?) + ("lipu" ?) + ("loje" ?) + ("lon" ?) + ("luka" ?) + ("lukin" ?) + ("lupa" ?) + ("ma" ?) + ("mama" ?) + ("mani" ?) + ("meli" ?) + ("mi" ?) + ("mije" ?) + ("moku" ?) + ("moli" ?) + ("monsi" ?) + ("mu" ?) + ("mun" ?) + ("musi" ?) + ("mute" ?) + ("nanpa" ?) + ("nasa" ?) + ("nasin" ?) + ("nena" ?) + ("ni" [? ? ? ?]) + ("nimi" ?) + ("noka" ?) + ("o" ?) + ("olin" ?) + ("ona" ?) + ("open" ?) + ("pakala" ?) + ("pali" ?) + ("palisa" ?) + ("pan" ?) + ("pana" ?) + ("pi" ?) + ("pilin" ?) + ("pimeja" ?) + ("pini" ?) + ("pipi" ?) + ("poka" ?) + ("poki" ?) + ("pona" ?) + ("pu" ?) + ("sama" ?) + ("seli" ?) + ("selo" ?) + ("seme" ?) + ("sewi" [? ?]) + ("sijelo" ?) + ("sike" ?) + ("sin" ?) + ("sina" ?) + ("sinpin" ?) + ("sitelen" ?) + ("sona" ?) + ("soweli" ?) + ("suli" ?) + ("suno" ?) + ("supa" ?) + ("suwi" ?) + ("tan" ?) + ("taso" ?) + ("tawa" ?) + ("telo" ?) + ("tenpo" ?) + ("toki" ?) + ("tomo" ?) + ("tu" ?) + ("unpa" ?) + ("uta" ?) + ("utala" ?) + ("walo" ?) + ("wan" ?) + ("waso" ?) + ("wawa" ?) + ("weka" ?) + ("wile" ?) + ("namako" ?) + ("kin" ?) + ("oko" ?) + ("kipisi" ?) + ("leko" ?) + ("monsuta" ?) + ("tonsi" ?) + ("jasima" ?) + ("kijetesantakalu" ?) + ("soko" ?) + ("meso" ?) + ("epiku" ?) + ("kokosila" ?) + ("lanpan" ?) + ("n" ?) + ("misikeke" ?) + ("ku" ?) + ("[" ?) + ("]" ?) + ("^" ?) + ("*" ?) + ("(" ?) + (")" ?) + ("." ?) + (":" ?) + ("," ?) + ("-" ?) + ("pake" ?) + ("apeja" ?) + ("majuna" ?) + ("powe" ?) + ("linluwi" ?) + ("kiki" ?) + ("su" ?) + ("isipin" ?) + ("kamalawala" ?) + ("kapesi" ?) + ("melome" ?) + ("mijomi" ?) + ("misa" ?) + ("nimisin" ?) + ("nja" ?) + ("oke" ?) + ("omekapo" ?) + ("puwa" ?) + ("san" ?) + ("taki" ?) + ("te" ?) + ("to" ?) + ("unu" ?) + ("usawi" ?) + ("wa" ?) + ("wuwojiti" ?) + ("yupekosi" ?)) + +(provide 'tokipona) + +;;; tokipona.el ends here -- 2.55.0