okay, sorry for self-posting… :)
#+begin_src emacs-lisp :results none
(setq tokipona-face-family "linja pona" tokipona-toki-face 'org-verbatim)
(ligature-set-ligatures 'org-mode
'("a" "akesi" "ala" "alasa" "ale" "ali" "anpa" "apeja" "ante" "anu" "awen"
"e" "en" "esun"
"ijo" "ike" "ilo" "insa"
"jaki" "jan" "jelo" "jo"
"kala" "kalama" "kama" "kasi" "ken" "kepeken" "kili" "kin" "kipisi" "kiwen" "ko" "kon" "kule" "kulupu" "kute"
"la" "lape" "laso" "lawa" "leko" "len" "lete" "li" "lili" "linja" "lipu" "loje" "lon" "luka" "lukin" "lupa"
"ma" "mama" "mani" "meli" "mi" "mije" "moku" "moli" "monsi" "monsuta" "mu" "mun" "musi" "mute"
"nanpa" "nasa" "nasin" "nena" "ni" "nimi" "noka"
"o" "oko" "olin" "ona" "open"
"pakala" "pake" "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" "tonsi" "tu"
"unpa" "uta" "utala"
"walo" "wan" "waso" "wawa" "weka" "wile"))
(define-minor-mode tokipona-mode
"Show tokipona ligtures in a heiroglyph font" nil nil nil
(if tokipona-mode
(progn
(setq-local tokipona-mode-remap-cookie
(face-remap-add-relative tokipona-toki-face :family tokipona-face-family))
(ligature-mode 1))
(when (boundp 'tokipona-mode-remap-cookie)
(face-remap-remove-relative tokipona-mode-remap-cookie))))
#+end_src
this supports the basic vocabulary but does NOT support things like the cartouche or stacked glyphs. it also causes my Emacs to fall in to an unkillable loop when I un-fold a heading, either the gc gets unhappy or it loops deep inside the text-properties code, probably both!
careful with this, you can put # -*- eval: (tokipona-mode 1) -*-
in the top of any file to get this code to run when it’s opened or add it to org-mode-hook to play Russian Roulette with all your org files!