Insert Pali and Sanskrit Characters with diacritical marks on Discourse and operating systems

Chrome OS is, of course, just Linux that runs Chrome. I think you can use the “Compose” key just as in any other Linux, but you need a way to set it up. This plugin says it does what you need. (Disclaimer! I haven’t used it!)

3 Likes

EVAM ME SUTAM—
ekam samayam bhagavā sāvatthiyam viharati jetavane anāthapiņḑikassa ārāme.

Magic. Thank you, Bhante.

EDIT

I figured out how to add underdots to ComposeKey! :smiley:

EVAṂ ME SUTAṂ—
ekaṃ samayaṃ bhagavā sāvatthiyaṃ viharati jetavane anāthapiņḑikassa ārāme.

2 Likes

Could you share simple explanation of how you did this please?

1 Like

Yes. Writing a blog post tomorrow.

1 Like

Super! (I have long had underdot envy).

1 Like

Finished!

3 Likes

Here is another script using AutoHotkey to cover every character from the IAST range (used by Pali and Sanskrit), and much more. For a full list shortkeys and download, see here: News: AutoHotkey script for easy unicode typing. Once memorized, I found myself quickly being able to type full sentences using any kind of diacritic.

2 Likes

In case this is helpful for anyone else, the best way I’ve found on iOS (my only computing device) is to set up “Text Replacements” in “Settings->General->Keyboard->Text Replacements”

In addition to replacing d_· with ḍ etc I also hooked it up to automatically add the correct diacritics to common Pali words: diṭṭhi, kalyāṇamitta, etc While not perfect (especially for serious Pāli work) it’s served me well enough for now

Happy to hear of any better hacks for iOS if people have them :smile:

Someone advised me to install the Hinglish font. It works well for everything except the characters with dots beneath (forget what it’s called) so big thanks for this suggestion.

Thank you very much @Subharo, for the scripts and very easy-to-follow readme file.
I am a Xubuntu user, and it was the perfect! Although I would not describe myself as an Orange belt Linux user, thank to the step-by-step instructions in the readme file, I managed to install pps keyboard layout, and now I can type tricky ones like ṭ ṃ ŋ with ease! Thank you very much. Sadhu sadhu sadhu. :pray: :smile:

1 Like

Thank you for sharing.

I’ve installed it. Seems to work as well and almost the same as Compose Key in Lubuntu: āīūṅñṭḍṇḷ(ṃ/ŋ/ṁ)
(except ā is ComposeKey + a + -/_ instead of ComposeKey + -/_ + a which gives ª or ₐ).
(Maybe just need to learn how to override it, using .xcompose file)

So I’ve switched from my beloved old iMac (“Impermanence,” says the spoiled whelp playing sage-games) to a Windows 10 computer. Is anyone else on here using Windows 10 and willing to walk a computer-illiterate through how they got their Pali/Sanskrit diacritics working? PM me, or we’ll discuss it here for Windows 10 users. Either way would be wonderful please. I did a search for Windows 10 on the page and didn’t find anything in particular. If this has already been discussed and I’m too computer-dumb to know, apologies.

2 Likes

I use AutoHotkey on Windows.

Download .zip file to create portable hotkey application with your own custom mappings (using Ahk2exe compiler and your own .ahk file).

Sample .ahk file which I use (it will likely require customization, as it uses AltGr key (left+right Ctrl), not present on standard keyboards:

; Pali + Sanskrit glyphs shortcuts
; ā ī ū ē ō ṝ ḹ ḍ ḷ ṃ ṇ ṭ ḥ ṛ ṣ ṅ ṁ ś ñ
; Ā Ī Ū Ē Ō Ṝ Ḹ Ḍ Ḷ Ṃ Ṇ Ṭ Ḥ Ṛ Ṣ Ṅ Ṁ Ś Ñ
; {Shift +} AltGr + [- . , ~] + key

#InstallKeybdHook
EndKeys = {LControl}{RControl}{LAlt}{RAlt}{LShift}{RShift}{LWin}{RWin}{AppsKey}{F1}{F2}{F3}{F4}{F5}{F6}{F7}{F8}{F9}{F10}{F11}{F12}{Left}{Right}{Up}{Down}{Home}{End}{PgUp}{PgDn}{Del}{Ins}{BS}{Capslock}{Numlock}{PrintScreen}{Pause}

<^>!-::
Input, SingleKey, L1, %EndKeys%
IfInString,SingleKey,-
Send,{U+2013} ;–
IfInString,SingleKey,a
Send,{U+0101} ;ā
IfInString,SingleKey,i
Send,{U+012B} ;ī
IfInString,SingleKey,u
Send,{U+016B} ;ū
IfInString,SingleKey,e
Send,{U+0113} ;ē
IfInString,SingleKey,o
Send,{U+014D} ;ō
IfInString,SingleKey,r
Send,{U+1E5D} ;ṝ
IfInString,SingleKey,l
Send,{U+1E39} ;ḹ
IfInString,SingleKey,n
Send,{U+00F1} ;ñ
return
return

+<^>!-::
Input, SingleKey, L1, %EndKeys%
IfInString,SingleKey,-
Send,{U+2014} ;—
IfInString,SingleKey,a
Send,{U+0100} ;Ā
IfInString,SingleKey,i
Send,{U+012A} ;Ī
IfInString,SingleKey,u
Send,{U+016A} ;Ū
IfInString,SingleKey,e
Send,{U+0112} ;Ē
IfInString,SingleKey,o
Send,{U+014C} ;Ō
IfInString,SingleKey,r
Send,{U+1E5C} ;Ṝ
IfInString,SingleKey,l
Send,{U+1E38} ;Ḹ
IfInString,SingleKey,n
Send,{U+00D1} ;Ñ
return
return

<^>!.::
Input, SingleKey, L1, %EndKeys%
IfInString,SingleKey,d
Send,{U+1E0D} ;ḍ
IfInString,SingleKey,l
Send,{U+1E37} ;ḷ
IfInString,SingleKey,m
Send,{U+1E43} ;ṃ
IfInString,SingleKey,n
Send,{U+1E47} ;ṇ
IfInString,SingleKey,t
Send,{U+1E6D} ;ṭ
IfInString,SingleKey,h
Send,{U+1E25} ;ḥ
IfInString,SingleKey,r
Send,{U+1E5B} ;ṛ
IfInString,SingleKey,s
Send,{U+1E63} ;ṣ
return
return

+<^>!.::
Input, SingleKey, L1, %EndKeys%
IfInString,SingleKey,d
Send,{U+1E0C} ;Ḍ
IfInString,SingleKey,l
Send,{U+1E36} ;Ḷ
IfInString,SingleKey,m
Send,{U+1E42} ;Ṃ
IfInString,SingleKey,n
Send,{U+1E46} ;Ṇ
IfInString,SingleKey,t
Send,{U+1E6C} ;Ṭ
IfInString,SingleKey,h
Send,{U+1E24} ;ḥ
IfInString,SingleKey,r
Send,{U+1E5A} ;Ṛ
IfInString,SingleKey,s
Send,{U+1E62} ;Ṣ
return
return

<^>!,::
Input, SingleKey, L1, %EndKeys%
IfInString,SingleKey,n
Send,{U+1E45} ;ṅ
IfInString,SingleKey,m
Send,{U+1E41} ;ṁ
IfInString,SingleKey,s
Send,{U+015B} ;ś
return
return

+<^>!,::
Input, SingleKey, L1, %EndKeys%
IfInString,SingleKey,n
Send,{U+1E44} ;Ṅ
IfInString,SingleKey,m
Send,{U+1E40} ;Ṁ
IfInString,SingleKey,s
Send,{U+015A} ;Ś
return
return