Back to the schedule
Previous: A tour of vterm
Next: Object Oriented Code in the Gnus Newsreader

Help wanted: main talk does not have captions

This talk does not have captions yet. Would you like to help caption this talk? You may be able to start with these autogenerated captions.

(If you want to work on this and you think it might take you a while, you can reserve this task by editing the page and adding volunteer="your-name date" or by e-mailing

Lakota Language and Emacs

Grant Shangreaux

Download compressed .webm video (36.3M)
Download compressed .webm video (11.5M, highly compressed)

Download compressed Q&A .webm video (14.3M)
Download compressed Q&A .webm video (6.8M, highly compressed)

When I began learning Lakota, the language of my ancestors, there was no way for me to type it on a computer without using non-free software. Additionally, the only software I could find supported just one of the proposed orthographies for the language.

As an Emacs user, I knew that free software offered the ability for many types of languages to co-exist in the same program and went looking for how to enable an input mode for Lakota in Emacs. This talk will discuss how Emacs enabled me to define input modes for multiple Lakota orthographies using the Quail multilingual input package.

I will also discuss some of the ethical and cultural considerations I went through when publishing the package. Lakota and many other indigenous languages were actively suppressed for many years, and are in danger of extinction. The language is being recovered now, but much of the available educational material comes from non-indian people. Before publishing an input mode for Emacs, I wanted to ensure that I included an orthography developed by Lakota people, not only the suggested orthography present in most of my educational material. Additionally, the choice of where to publish the source as an Emacs package was important, since some corporations have been known to support ongoing oppression against indigenous descended peoples.


Q4: Did you write the company backend to complete on Lakota words?

With a Lakota dictionary file, one could probably leverage other company methods for completion.

Seems to be company-dabbrev, it happens automatically when typing in Org mode at least. Unfortunately the only digital Lakota dictionary I'm aware of is non-free, so I'm not sure what to do about that.

  • Yeah, I'm not sure, but the dictionary files needed would really just be word-lists, so maybe there is a way to find or produce something of this sort.

Q3: Why did you decide on e.g. a' for á? In my country's input method (which is Dutch, and in French, German, etc.) the default is to put the accent first, so 'e -> é.

For me, this was my first experience with it and it made more sense in my head to have the modifier come after. Its possible I read about postfix notation in a tutorial I found (and lost) that demonstrated Quail input modes. The X11 input has it as a prefix, so I may change it in the future. I'd like to consult with other Lakota speakers and tribal members, however, as it seems worthwhile trying to get consensus from native speakers on usage.

Q2:Can you give us a demo of you typing in either Lakota input method?

The demo starts at 02:06 in the Q&A video.

Q1: Advantages of using Emacs Input Methods over something like xcompose?

→ Compose

Ah yes, I found something about this when making the X layout, but it was not immediately apparent. Emacs was easier for me to inspect and learn about than X, easier to iterate on as I was learning how it all worked. Emacs can re-eval the layout definition and give live feedback, while X required a restart to try different things. Emacs is also cross platform, so anyone can easily install this. also, sharing an X config seemed more difficult to me, I don't know how to tell someone to install it properly :(


Sunday, Nov 29 2020, ~ 2:58 PM - 3:14 PM EST
Sunday, Nov 29 2020, ~11:58 AM - 12:14 PM PST
Sunday, Nov 29 2020, ~ 7:58 PM - 8:14 PM UTC
Sunday, Nov 29 2020, ~ 8:58 PM - 9:14 PM CET
Monday, Nov 30 2020, ~ 3:58 AM - 4:14 AM +08

Back to the schedule
Previous: A tour of vterm
Next: Object Oriented Code in the Gnus Newsreader