# മോശം

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.