README.md

മോശം

Genesis 1

Mosham is a Kakoune client with advanced text shaping capabilities.

I wrote it because I wanted to write text in Malayalam but no terminal does (or feasibly could) support a highly proportional and ligated script like it.

Mosham uses rustybuzz(A full port of harfbuzz to Rust) so it can shape pretty much anything.

Usage

Currently, it is in early days and doesn't support all features. Most notably, menus and completion popups are not yet implemented.

pijul clone https://nest.pijul.com/cadrgtsecond/mosham
cd mosham
cargo install -p .

Make sure to build in release mode.

Configuration

We use ui_options.

  • mosham_fonts: A comma seperated list of strings representing fonts to be loaded.
  • mosham_font_size: A font size, specified as an integer
  • mosham_black, mosham_red, mosham_green, mosham_yellow, mosham_blue, mosham_magenta, mosham_cyan, mosham_white, mosham_bright_black, mosham_bright_red, mosham_bright_green, mosham_bright_yellow, mosham_bright_blue, mosham_bright_magenta, mosham_bright_cyan, mosham_bright_white: Colors. Note that mosham will use rgb "true color" faces if present for a particular face. This acts as fallback.

Limitations

  • Kakoune always operates in terms of codepoints. This means that j and k will always be unpredictable in a proportional font, unless you use some kind of plugin to modify the behaviour on the side of Kakoune.
  • Alignment is hard with proportional fonts. Expect some cursed looking code if you plan on using one. I plan on implementing elastic tabstops to mitigate this.