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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.