CVT_KEY_TBL(5)
๐ NAME (ๅ็งฐ) ๐
cvt_key_tbl โ the key code conversion table file for the kana-kanji conversion front-end processor (uum). yes bestie that is literally what it is ๐
๐ SYNOPSIS (ๅฝขๅผ) ๐
/usr/local/lib/wnn/cvt_key_tbl (ใใใฉใซใ)
That's the default path, (ใใใฉใซใ) = default, don't @ me. Don't move it, don't rename it, just let it vibe where it lives. ๐
โจ DESCRIPTION (ๆฉ่ฝ) โจ
Okay so here's the whole situation. This file pulls the data for the character string that your keyboard generates from terminfo, and then โ following the data you set up in here โ it converts that into 1-byte characters. Slay. ๐ฆ
And there's a timeout moment too, because of course there is: while a conversion is in progress, if the continuation of the character string being converted doesn't get input for 1 second or more (๏ผ็งไปฅไธ), it gets output with no conversion at all. Not a single conversion. It just gives up and hands you the raw thing. ๐ญ
๐ FORMAT (ๆธๅผ) ๐
[ terminfo ใจใณใใช <็ฉบ็ฝๆๅญ> ใณใผใ ] ( SYSV ใฎๅ ดๅ )
[ termcap ใจใณใใช <็ฉบ็ฝๆๅญ> ใณใผใ ] ( BSD ใฎๅ ดๅ )
- Lines that start with
;are comments. That's it, that's the rule. ๐
๐ terminfo entries that get converted ๐
These are the terminfo entries that are subject to conversion:
kf0, kf1, kf2, kf3, kf4, kf5, kf6, kf7, kf8,
kf9, kf10, kf11, kf12, kf13, kf14, kf15, kf16, kf17,
kf18, kf19, kf20, kf21, kf22, kf23, kf24, kf25, kf26,
kf27, kf28, kf29, kf30, kf31,
kbs, ktbc, kclr, kctab, kdch1, kdl1, kcud1, krmir,
kel, ked, khome, kich1, kil1, kcub1, kll, knp, kpp,
kcuf1, kind, kri, khts, kcuu1,
๐ termcap entries that get converted ๐
And these are the termcap entries that are subject to conversion:
cs, rc, sc, se, so, us, ue, cm, ce, cl, bl, li, co
๐ธ HOW TO WRITE A CODE (ใณใผใใฎ่กจ็พ) ๐ธ
Five flavors, bestie. Pick your fighter. โญ
- A single character that isn't whitespace,
\, or^โ just writes that character itself. Simple. Iconic. No notes. - A
^character โ the character can be@,A(a),B(b),C(c),D(d),E(e),F(f)...Z(z), [,\,],^,_, and:^@means control + space (0x00)^Ameans control + A (0x01)- .
- .
^_means control +_(0x1f)
\8้ฒๆฐ,\o8้ฒๆฐ,\d10้ฒๆฐ,\x16้ฒๆฐโ for when you want to write the character code directly, no filter.- Any one of
\n,\t,\b,\r,\f,\e,\Eโ these representNEWLINE,TAB,BACKSPACE,CR,FORMFEED,ESC,ESCrespectively. \+ a character โ where the character is anything other than0โ7,o,d,x,n,t,b,r,f,e,E. And if you need to represent\itself? You write"\\". Periodt.
๐ง EXAMPLE CONFIG (่จญๅฎไพ) ๐ง
kf1 \x81
kf2 \x82
kf3 \x83
kf4 \x84
kcud1 \x92
kcub1 \x91
kcuf1 \x90
kcuu1 \x93
Look at that. Gorgeous. ๐ซถ
๐ NOTES (ๆณจๆไบ้ ) ๐
The codes converted by this table then get evaluated by 2A_CTRL (ใใใฉใซใ) โ which is the table for the romaji-kana conversion automaton โ and then further evaluated by uumkey. So it's a whole pipeline, bestie. A little relay race of evaluation. ๐โโ๏ธ๐จ
๐ฅ SEE ALSO (้ข้ฃ้ ็ฎ) ๐ฅ
uum(1)2A_CTRL(5)uumkey(5)
okay that's the whole page, ily, go forth and convert some key codes responsibly ๐ This little legend dropped on 28 January 1992 and lives in the manual as CVT_KEY_TBL(5) โ File Formats Manual, section 5, main character energy since day one. ๐
๐ฆ where this page comes from
- debian bookworm: freewnn-cserver 1.1.1~a021+cvs20130302-7+b2
- ubuntu jammy: freewnn-cserver 1.1.1~a021+cvs20130302-7build1
- ubuntu noble: freewnn-cserver 1.1.1~a021+cvs20130302-8build1
- ubuntu questing: freewnn-cserver 1.1.1~a021+cvs20130302-8build1
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms