Subject: bug#58070: [PATCH] Add tamil99 input method

From: Visuwesh <[email-masked]>
Date: Tue, 27 Sep 2022 15:45:40 +0530

[செவ்வாய் செப்டம்பர் 27, 2022] Eli Zaretskii wrote:

>> Arun's implementation precalculates the key sequences that produce
>> vowel-consonant pairs and adds them as separate Quail rules, kind of
>> what happens in the itrans IMs.  So in the quail-map, you have rules
>> like "h" = க, "d" = உ, "hd" = கு which works great until you run into a
>> situation like Eric described in emacs-devel here:
>> https://yhetil.org/emacs-devel/[email-masked]/T/#m5b261c1a7bb06c7c074fdcdb746fb53ab7af1aa1
>> 
>> I'm sure that situation is familiar to many who use Quail IMs regularly,
>> which is why I decided to make my IM consider the character before point
>> to decide what codepoint Quail should insert in the buffer.  In my
>> implementation, the quail-map only has "h" = க, "d" = உ.  I use the
>> UPDATE-TRANSLATION-FUNCTION to see what the character before point is
>> and change what Quail should insert: if the user types 'd' and the
>> character before point is a 'க', then I make Quail insert ு (instead of
>> உ) to get கு.  This lets you insert vowel-consonant pairs out-of-order
>> which is akin to what Eric wants.
>
> But the price is that, after typing "h", your implementation doesn't
> show in the echo-area that one of the possible next candidates is "d",
> whereas Arun's implementation does, is that right?

Yes, you are correct.  However, the price is small and it is the same
one Dvorak users pay when using a laptop that has a qwerty layout
keyboard, so not much IMO.

>> > Emacs 29 also has the composition-break-at-point variable, which you
>> > could set non-nil, in which case <Delete> will also work by
>> > codepoints.  So perhaps the out-of-sequence vowel insertion would be
>> > possible without further complications if composition-break-at-point
>> > is non-nil?
>> 
>> Unfortunately, composition-break-at-point is not enough here since the
>> layout does not have keys to insert the *vowel signs* (the grave accent
>> in Arun's example), only *vowels*.
>
> One could add those missing keys, no?

The problem is finding the place to put them.  All the alphabet keys and
all symbol keys except one or two in a standard US layout are occupied.
Tamil99 does put the vowel signs under ^[LETTER] but that is simply
cumbersome to type.