Table of Content

  1. Nulisa Aksara Jawa keyboard shortcuts
  2. Typing tests and input samples
  3. Usage Notes
  4. Development Notes
  5. Change History

Welcome! ꧁ꦱꦸꦒꦼꦁꦫ‌ꦮꦸꦃ‌ꦲꦶꦁꦤꦸꦭꦶꦱ꧀ꦱ‌ꦄꦏ꧀ꦱꦫꦗꦮ꧂


Thank you for using this keyboard. This keyboard aim to simplify the writing of Javanese script (Js). Nowadays Javanese speakers do not write (nor type) much in this script anymore, largely because the writing system has been supplanted by Latin script.

The current Js keyboard layouts that exist in the world require people to memorize an arbitrary placement of characters (for example the default Javanese keyboard layout in Win 10), since there are more than 26 letters/characters in Js.

This keyboard aim to simplify that by requiring user to memorize only very small amount of placement, and user can type naturally just like they type in Latin script. The users are only required, at minimal, to remember that the letter 'x' is mapped to 'ě' (pěpět) or schwa sound (IPA: /ə/).

Technically, this is achieved by making the software to be smart enough to look the characters typed previously (look-back algorithm) to accomplish this seamlessly.

If you have never tried my web-based Js transliterator, of which this is based from, I suggest you can give it a try here: is.gd/nulisa (url link shortener to my Github page)

How does it work?
Well, to simply put it, if you want to write "aku", just type "a-k-u" and it will give you ꦲꦏꦸ. You don't need to know which button to press for ꦲ, ꦏ‌, or ꦸ. It would work for 95% of the time.
The best part about it? It's language independent (as long as they're 26-letters-Latin based). It means, you can type in any language, e.g. Indonesian, or even English. For example: "rumah", just type "r-u-m-a-h" to get ꦫꦸꦩꦃ, or "far", just type "f-a-r" to get ꦥ꦳ꦂ.

But... you still need to know how the Javanese script work to be able to get the correct output. Js is phonetic-based writing. It means that you write what you hear, not what is written (in Latin). For example, if I want to write my name, "Benny", I need to first visualize how the it sounds (if you familiar with IPA, think of it as broad-transcription IPA), so I get either "/be-ni/" or "/ben-ni/". Now I would say that both are correct, but I prefer the second one, so I'm typing it as "b-e-n-n-i" to get ꦧꦺꦟꦶ. And this cannot be solved in the software level, because the software couldn't have any idea how a word sounds.

What about the space bar? Javanese script is a scriptio continua script; it doesn't have any space between words. In fact, adding a space between words would make the sentence look bad (it broke the pasangans, among others). Therefore, that long space bar in the bottom of you keyboard is largely unused (what a waste of space :p). If you type space, nothing would happen. But what if you want to force a space? There are two alternatives: regular space, type Ctrl+Space, zero-width space (ZWS), type ` (on the left of number 1 on most keyboard layouts).

With this approach, I believe typing Javanese script using Nulisa Aksara Jawa is the easiest way to type Javanese script!

 

Surakarta, International Mother's Tongue Day 2020,

 

Benny Lin

 

 

Nulisa Aksara Jawa keyboard shortcuts


ToC: Welcome! | Nulisa Aksara Jawa keyboard shortcuts | Typing tests and input samples | Usage Notes | Development Notes | Change History

The keyboard layout is designed with Indonesian qwerty keyboard layout (equal to American/US-basic layout) as the logic basis. Therefore, even though theoritically it could also work for other keyboard layout (British, German, DVORAK, etc), but no test have been done on those layouts. If you use non-Indonesian keyboard, I would love to hear your feedback!

Please refer to this combination table for the intended output. Don't rely on the On-Screen keyboard, as it has many limitations. If the pressed button doesn't produce the same result as below, please contact the author.

If you type the key on the left, followed by key on top, you'll get the following characters.

a b c d e f g h i j k l m
ꦧ꧀ ꦕ꧀ ꦢ꧀ ꦲꦺ ꦥ꦳꧀ ꦒ꧀ ꦲꦶ ꦗ꧀ ꦏ꧀ ꦭ꧀ ꦩ꧀
꧀+ ꧀ꦧ꧀ ꧀ꦕ꧀ ꧀ꦢ꧀ ꧀ꦥ꦳꧀ ꧀ꦒ꧀ ꧀ꦗ꧀ ꧀ꦏ꧀ ꧀ꦭ꧀ ꧀ꦩ꧀
n o p q r s t u v w x=ě y z
ꦤ꧀ ꦲꦺꦴ ꦥ꧀ ꦱ꧀ ꦠ꧀ ꦲꦸ ꦮ꦳꧀ ꦮ꧀ ꦲꦼ ꦪ꧀ ꦗ꦳꧀
꧀+ ꧀ꦤ꧀ ꦺꦴ ꧀ꦥ꧀ ꧀ꦱ꧀ ꧀ꦠ꧀ ꧀ꦮ꦳꧀ ꧀ꦮ꧀ ꧀ꦪ꧀ ꧀ꦗ꦳꧀

If you type the key on the top, followed by key on left, you'll get the following characters.

Aksara Nglegena & Sandhangan

a b c d e f g h i j k l m
+a ꦲꦴ ꦲꦺꦪ ꦥ꦳ ꦲꦶꦪ
+e ꦲꦲꦺ ꦧꦺ ꦕꦺ ꦢꦺ ꦲꦺꦲꦺ ꦥ꦳ꦺ ꦒꦺ ꦲꦺ ꦲꦶꦪꦺ ꦗꦺ ꦏꦺ ꦭꦺ ꦩꦺ
+i ꦲꦻ ꦧꦶ ꦕꦶ ꦢꦶ ꦲꦺꦪꦶ ꦥ꦳ꦶ ꦒꦶ ꦲꦶ ꦲꦷ ꦗꦶ ꦏꦶ ꦭꦶ ꦩꦶ
+o ꦲꦲꦺꦴ ꦧꦺꦴ ꦕꦺꦴ ꦢꦺꦴ ꦲꦺꦪꦺꦴ ꦥ꦳ꦺꦴ ꦒꦺꦴ ꦲꦺꦴ ꦲꦶꦪꦺꦴ ꦗꦺꦴ ꦏꦺꦴ ꦭꦺꦴ ꦩꦺꦴ
+u ꦲꦻꦴ ꦧꦸ ꦕꦸ ꦢꦸ ꦲꦺꦵ ꦥ꦳ꦸ ꦒꦸ ꦲꦸ ꦲꦶꦪꦸ ꦗꦸ ꦏꦸ ꦭꦸ ꦩꦸ
+x=ě ꦲꦲꦼ ꦧꦼ ꦕꦼ ꦢꦼ ꦲꦺꦲꦼ ꦥ꦳ꦼ ꦒꦼ ꦲꦼ ꦲꦶꦪꦼ ꦗꦼ ꦏꦼ ꦩꦼ
+h ꦲꦃ ꦨ꧀ ꦖ꧀ ꦝ꧀ ꦲꦺꦃ ꦥ꦳꧀ꦃ ꦓ꧀ ꦃꦲ꧀ ꦲꦶꦃ ꦙ꧀ ꦑ꧀ ꦭ꧀ꦃ ꦩ꧀ꦃ
+r ꦲꦂ ꦧꦿ꧀ ꦕꦿ꧀ ꦢꦿ꧀ ꦲꦺꦂ ꦥ꦳ꦿ꧀ ꦒꦿ꧀ ꦲꦿ꧀ ꦲꦶꦂ ꦗꦿ꧀ ꦏꦿ꧀ ꦭꦿ꧀ ꦩꦿ꧀
+y ꦲꦪ꧀ ꦧꦾ꧀ ꦕꦾ꧀ ꦢꦾ꧀ ꦲꦺꦪ꧀ ꦥ꦳ꦾ꧀ ꦒꦾ꧀ ꦲꦾ꧀ ꦲꦶꦪ꧀ ꦗꦾ꧀ ꦏꦾ꧀ ꦭꦾ꧀ ꦩꦾ꧀
n o p q r s t u v w x=ě y z
+a ꦲꦺꦴꦮ ꦲꦸꦮ ꦮ꦳ ꦲꦼꦲ ꦗ꦳
+e ꦤꦺ ꦲꦺꦴꦮꦺ ꦥꦺ ꦫꦺ ꦱꦺ ꦠꦺ ꦲꦸꦮꦺ ꦮ꦳ꦺ ꦮꦺ ꦲꦼꦲꦺ ꦪꦺ ꦗ꦳ꦺ
+i ꦤꦶ ꦲꦺꦴꦮꦶ ꦥꦶ ꦫꦶ ꦱꦶ ꦠꦶ ꦲꦸꦮꦶ ꦮ꦳ꦶ ꦮꦶ ꦲꦼꦲꦶ ꦪꦶ ꦗ꦳ꦶ
+o ꦤꦺꦴ ꦲꦺꦴꦲꦺꦴ ꦥꦺꦴ ꦺꦴ ꦫꦺꦴ ꦱꦺꦴ ꦠꦺꦴ ꦲꦸꦮꦺꦴ ꦮ꦳ꦺꦴ ꦮꦺꦴ ꦲꦼꦲꦺꦴ ꦪꦺꦴ ꦗ꦳ꦺꦴ
+u ꦤꦸ ꦲꦺꦴꦮꦸ ꦥꦸ ꦫꦸ ꦱꦸ ꦠꦸ ꦲꦹ ꦮ꦳ꦸ ꦮꦸ ꦲꦼꦲꦸ ꦪꦸ ꦗ꦳ꦸ
+x=ě ꦤꦼ ꦲꦺꦴꦮꦼ ꦥꦼ ꦱꦼ ꦠꦼ ꦲꦸꦮꦼ ꦮ꦳ꦼ ꦮꦼ ꦲꦼꦲꦼ ꦪꦼ ꦗ꦳ꦼ
+h ꦟ꧀ ꦲꦺꦴꦃ ꦦ꧀ ꧀ꦃ ꦂꦲ꧀ ꦯ꧀ ꦛ꧀ ꦲꦸꦃ ꦮ꦳꧀ꦃ ꦮ꧀ꦃ ꦲꦼꦃ ꦪ꧀ꦃ ꦗ꦳꧀ꦃ
+r ꦤꦿ꧀ ꦲꦺꦴꦂ ꦥꦿ꧀ ꧀ꦂ ꦂꦫ꧀ ꦱꦿ꧀ ꦠꦿ꧀ ꦲꦸꦂ ꦮ꦳ꦿ꧀ ꦮꦿ꧀ ꦲꦼꦂ ꦪꦿ꧀ ꦗ꦳ꦿ꧀
+y ꦚ꧀ ꦲꦺꦴꦪ꧀ ꦥꦾ꧀ ꧀ꦪ꧀ ꦂꦪ꧀ ꦱꦾ꧀ ꦠꦾ꧀ ꦲꦸꦪ꧀ ꦮ꦳ꦾ꧀ ꦮꦾ꧀ ꦲꦼꦪ꧀ ꦪꦾ꧀ ꦗ꦳ꦾ꧀

Aksara Swara and Murda

A B C D E F G H I J K L M
ꦨ꧀ ꦖ꧀ ꦣ꧀ ꦥ꦳꧀ ꦓ꧀ ꦙ꧀ ꦑ꧀ ꦭ꧀ ꦩ꧀
꧀+ ꧀ꦄ ꧀ꦨ꧀ ꧀ꦖ꧀ ꧀ꦣ꧀ ꧀ꦌ ꧀ꦥ꦳꧀ ꧀ꦓ꧀ ꧀ꦆ ꧀ꦙ꧀ ꧀ꦑ꧀ ꧀ꦭ꧀ ꧀ꦩ꧀
N O P Q R S T U V W X Y Z
ꦟ꧀ ꦦ꧀ ꦐ꧀ ꦯ꧀ ꦡ꧀ ꦮ꦳꧀ ꦮ꧀ ꦄꦼ ꦰ꧀
꧀+ ꧀ꦟ꧀ ꧀ꦎ ꧀ꦦ꧀ ꧀ꦐ꧀ ꧀ꦯ꧀ ꧀ꦡ꧀ ꧀ꦈ ꧀ꦮ꦳꧀ ꧀ꦮ꧀ ꧀ꦄꦼ ꧀ꦰ꧀

Punctuation and symbols

` 1 2 3 4 5 6 7 8 9 0 - = [ ] \ ; ' , . /
  ZWJ[1]
shift+ ꦿ [2]
alt+ ꦿ
(ketik) ? ?? ?x3 ?x4 ?x5 ?x6

[1] ZWJ = Zero-Width Joiner

[2] The question mark sign (?) = switcher. Type it multiple times to go through the 6 long vowels (sandhangan)

Hidden features. They're still in testing mode, and may change in the future.

How to write down:

This is the inverse table of the tables above. You can get the output displayed on the top row (white) by typing the letters on the lower row (grey). There might be more than one way to type a character.

These are based on the complete list of Javanese Unicode block. So this table shows that you are able to write any Javanese character using this keyboard.

A II I Ii O rx lx lxu E Ai O ka Qa Ka ga Ga nga
! @ kha gha #
ca Ca ja jnya Ja nya tha Tha dha Dha Na ta Ta da Da na
cha ) jha $ % ) ^ +
pa Pa ba Ba ma ya ra RRa la wa Sa Za sa ha
pha bha sha
ꦿ
ng r h ALT+1 ALT+2 ALT+3 qi ALT+4 qu ALT+5 qe ALT+6 qx ALT+7
or &
ALT+8
or *
ALT+9
or (
q
ꦥꦁ ꦥꦂ ꦥꦃ ꦥ꦳ ꦥꦴ ꦥꦵ ꦥꦶ ꦥꦷ ꦥꦸ ꦥꦹ ꦥꦺ ꦥꦻ ꦥꦼ ꦥꦽ ꦥꦾ ꦥꦿ ꦥ꧀
pang par pah fa paa * pi pii pu puu pe pai px prx pya pra p
- { } ; ' / " : , . \ | [ ] = < >
ꦎꦀ
O- 0 1 2 3 4 5 6 7 8 9
* To type ꦥ+ꦵ (tolong), type 'p' then ALT+3

Typing tests and input samples


ToC: Welcome! | Nulisa Aksara Jawa keyboard shortcuts | Typing tests and input samples | Usage Notes | Development Notes | Change History

These are some sample text and how you can achive the output. These are the intended input and output. If you tried them and they mismatch, please inform the author.

If you have a better example, I would also like to know, so I can add them here.

These are mostly in modern Javanese language. But I also include some example of old Javanese. For non-Javanese language, theoretically they can also be typed, phonetically, using the keyboard.

Latinjer basuki mawa béa
Aksaraꦗꦼꦂꦧꦱꦸꦏꦶꦩꦮꦧꦺꦪ
Karakterꦗ+ꦼ+ꦂ+ꦧ+ꦱ+ꦸ+ꦏ+ꦶ+ꦩ+ꦮ+ꦧ+ꦺ+ꦪ
Input[j] [x] [r] [ba] [s] [u] [k] [i] [ma] [wa] [b] [e] [a]
Latinlambé biru kecu
Aksaraꦭꦩ꧀ꦧꦺꦧꦶꦫꦸꦏꦼꦕꦸ
Karakterꦭ+ꦩ+꧀+ꦧ+ꦺ+ꦧ+ꦶ+ꦫ+ꦸ+ꦏ+ꦼ+ꦕ+ꦸ
Input[la] [m] [b] [e] [b] [i] [r] [u] [k] [x] [c] [u]
Latinflamboyan wungu
Aksaraꦥ꦳꧀ꦭꦩ꧀ꦧꦺꦴꦪꦤ꧀ꦮꦸꦔꦸ
Karakterꦥ+꦳+꧀+ꦭ+ꦩ+꧀+ꦧ+ꦺ+ꦴ+ꦪ+ꦤ+꧀+ꦮ+ꦸ+ꦔ+ꦸ
Input[f] [la] [m] [b] [o] [ya] [n] [w] [u] [ng] [u]
Latinmangan krupuk lan klepon
Aksaraꦩꦔꦤ꧀ꦏꦿꦸꦥꦸꦏ꧀ꦭꦤ꧀‌ꦏ꧀ꦊꦥꦺꦴꦤ꧀
Karakterꦩ+ꦔ+ꦤ+꧀+ꦏ+ꦿ+ꦸ+ꦥ+ꦸ+ꦏ+꧀+ꦭ+ꦤ+꧀+‌+ꦏ+꧀+ꦊ+ꦥ+ꦺ+ꦴ+ꦤ+꧀
Input[ma] [nga] [n] [k] [r] [u] [p] [u] [k] [la] [n] [k] [l] [x] [p] [o] [n]
Latincumplung kecemplung jumbleng
Aksaraꦕꦸꦩ꧀‌ꦥ꧀ꦭꦸꦁꦏꦼꦕꦼꦩ꧀‌ꦥ꧀ꦭꦸꦁꦗꦸꦩ꧀‌ꦧ꧀ꦊꦁ
Karakterꦕ+ꦸ+ꦩ+꧀+‌+ꦥ+꧀+ꦭ+ꦸ+ꦁ+ꦏ+ꦼ+ꦕ+ꦼ+ꦩ+꧀+‌+ꦥ+꧀+ꦭ+ꦸ+ꦁ+ꦗ+ꦸ+ꦩ+꧀+‌+ꦧ+꧀+ꦊ+ꦁ
Input[c] [u] [m] [p] [l] [u] [ng] [k] [x] [c] [x] [m] [p] [l] [u] [ng] [j] [u] [m] [b] [l] [x] [ng]
Latinkonferènsi Asia Afrika
Aksaraꦏꦺꦴꦤ꧀ꦥ꦳ꦼꦫꦺꦤ꧀ꦱꦶꦪꦱꦶꦪꦃꦄꦥ꦳ꦿꦶꦏꦃ
Karakterꦏ+ꦺ+ꦴ+ꦤ+꧀+ꦥ+꦳+ꦼ+ꦫ+ꦺ+ꦤ+꧀+ꦱ+ꦶ+ꦪ+ꦱ+ꦶ+ꦪ+ꦃ+ꦄ+ꦥ+꦳+ꦿ+ꦶ+ꦏ+ꦃ
Input[k] [o] [n] [f] [x] [r] [e] [n] [s] [i] [A] [s] [i] [a] [h] [A] [f] [r] [i] [ka] [h]
LatinSumantri liwat kreteg
Aksaraꦱꦸꦩꦤ꧀ꦠꦿꦶꦭꦶꦮꦠ꧀ꦏꦽꦠꦼꦒ꧀
Karakterꦱ+ꦸ+ꦩ+ꦤ+꧀+ꦠ+ꦿ+ꦶ+ꦭ+ꦶ+ꦮ+ꦠ+꧀+ꦏ+ꦽ+ꦠ+ꦼ+ꦒ+꧀
Input[s] [u] [ma] [n] [t] [r] [i] [l] [i] [wa] [t] [k] [rx] [t] [x] [g]
Latinisor bréngos nyakil mrongos
Aksaraꦲꦶꦱꦺꦴꦂꦧꦿꦺꦔꦺꦴꦱ꧀ꦚꦏꦶꦭ꧀ꦩꦿꦺꦴꦔꦺꦴꦱ꧀
Karakterꦲ+ꦶ+ꦱ+ꦺ+ꦴ+ꦂ+ꦧ+ꦿ+ꦺ+ꦔ+ꦺ+ꦴ+ꦱ+꧀+ꦚ+ꦏ+ꦶ+ꦭ+꧀+ꦩ+ꦿ+ꦺ+ꦴ+ꦔ+ꦺ+ꦴ+ꦱ+꧀
Input[i] [s] [o] [r] [b] [r] [e] [ng] [o] [s] [nya] [k] [i] [l] [m] [r] [o] [ng] [o] [s]
Latinwaiḍūryyāmaranīla
Aksaraꦮꦻꦝꦹꦂꦪꦾꦴꦩꦫꦤꦷꦭ
Karakterꦮ+ꦻ+ꦝ+ꦹ+ꦂ+ꦪ+ꦾ+ꦴ+ꦩ+ꦫ+ꦤ+ꦷ+ꦭ
Input[wa] [i] [dh] [u] [u] [r] [y] [ya] [a] [ma] [ra] [n] [i] [i] [la]
Latinnarāryya kṛṣṇān laku
Aksaraꦤꦫꦴꦂꦪꦾꦏꦽꦰ꧀ꦟꦴꦤ꧀ꦭꦏꦸ
Karakterꦤ+ꦫ+ꦴ+ꦂ+ꦪ+ꦾ+ꦏ+ꦽ+ꦰ+꧀+ꦟ+ꦲ+ꦤ+꧀+ꦭ+ꦏ+ꦸ
Input[na] [ra] [a] [r] [y] [ya] [k] [rx] [Z] [Na] [a] [n] [la] [k] [u]
Latinsākṣāt sěkar ning suji
Aksaraꦱꦴꦏ꧀ꦰꦴꦠ꧀ꦱꦼꦏꦂꦤꦶꦁꦱꦸꦗꦶ
Karakterꦱ+ꦴ+ꦏ+꧀+ꦰ+ꦲ+ꦠ+꧀+ꦱ+ꦼ+ꦏ+ꦂ+ꦤ+ꦶ+ꦁ+ꦱ+ꦸ+ꦗ+ꦶ
Input[sa] [a] [k] [Za] [a] [t] [s] [x] [ka] [r] [n] [i] [ng] [s] [u] [j] [i]
Latinjalesveva jayamahe
Aksaraꦗꦭꦺꦱ꧀ꦮꦺꦮꦗꦪꦩꦲꦺ
Karakterꦗ+ꦭ+ꦺ+ꦱ+꧀+ꦮ+ꦺ+ꦮ+ꦗ+ꦪ+ꦩ+ꦲ+ꦺ
Input[ja] [l] [e] [s] [w] [e] [wa] [ja] [ya] [ma] [h] [e]

Usage Notes


ToC: Welcome! | Nulisa Aksara Jawa keyboard shortcuts | Typing tests and input samples | Usage Notes | Development Notes | Change History

How to use the keyboard (for user), or read the codes (for developer)

Development Notes


ToC: Welcome! | Nulisa Aksara Jawa keyboard shortcuts | Typing tests and input samples | Usage Notes | Development Notes | Change History

Version 1.0

A month later

Further plan

Change History


ToC: Welcome! | Nulisa Aksara Jawa keyboard shortcuts | Typing tests and input samples | Usage Notes | Development Notes | Change History

1.02: Changing the .kmn file, put a name for every character, for greater readibility of the code and possible development for other Indonesian scripts in the future.

1.01: Adding web version, android version, mobile/tablet version (touch screen layout)

2020-02-21: Version 1.0 (desktop version) is published. Happy International Mother's Tongue Day!

2019-01-28: Adding documentation, help file, welcome file, fix bugs, more Sundanese support, rekan support, code simplification with store()s, less comments, harder to read, but shorter code

1.0: Initial release - 2019-01-24

License and copyrights:

This keyboard is developed by Benny Lin using Keyman software. It is available for free to use from Github and elsewhere. If you make modification, please credit Benny Lin and Keyman software. You can find him in his Github, Wikipedia, or Telegram, all under the name @bennylin