Skip to content
RightYantra
Text & developer

Virtual Keyboard

An on-screen keyboard for sixteen scripts, including nine Indian ones. Click the keys to build a sentence, or use the keyboard already in front of you and have its keys remapped as you type. Nothing is installed, no language pack is downloaded, and the text stays in the page.

Processed entirely on your device — nothing is uploaded

How to use the virtual keyboard

  1. 1Pick a language from the list — the keyboard and the text direction change with it.
  2. 2Click the keys on screen, or just type: your own keyboard is remapped to the layout shown.
  3. 3Use Shift for the second layer, where the independent vowels and the rarer consonants live.
  4. 4Copy the text, or download it as a .txt file.

Why type in a browser instead of installing a keyboard

Adding a language to an operating system is a settings-menu expedition that ends in a keyboard you cannot see. The letters are not printed on your keys, so you are typing blind in a script you may not have muscle memory for, and you have changed a system-wide setting to send one message.

The common alternative is worse: hunting for characters in a character-map utility and pasting them one at a time, or copying words out of search results and hoping the spelling survived.

A virtual keyboard solves the specific problem of typing a script occasionally. You can see every key, the arrangement is the standard one, and when you are finished there is nothing to undo. It is the right tool for filling in a form in Tamil, writing a greeting in Gujarati, searching for something in Russian, or getting a name spelled correctly in Bengali.

As with everything else here, the text never leaves the page. There is no request to a server, which matters more than it sounds: the things people type in a script they cannot otherwise type are frequently names, addresses and personal messages.

InScript, and why nine Indian keyboards are really one keyboard

The Indian layouts use InScript, the Bureau of Indian Standards arrangement that ships with Windows, macOS, Android and Linux. If you have ever typed Hindi on a computer without installing anything extra, this is the layout you used.

InScript has an elegant property that is easy to miss: it is defined for a script rather than for a language, and it is the same keyboard in all of them. The vowel signs sit on the top row, the common consonants on the home row, and the aspirated pairs sit on Shift above their unaspirated partners — so घ is Shift over ग, and थ is Shift over त, in every script that has the pair.

This works because of how Unicode encodes these scripts. Devanagari begins at U+0900, Bengali at U+0980, Gurmukhi at U+0A00 and so on to Malayalam at U+0D00, each block 128 codepoints apart with the letters in the same relative order. The same key position lands on the corresponding letter in every script.

The practical consequence is worth knowing: learning InScript once gives you all nine. Someone who can type Marathi can sit down at the Kannada keyboard here and find every letter exactly where they expect it, even without reading the script.

What the blank keys mean

Some layouts have keys that are visibly empty, and they are most noticeable on Tamil. That is not an omission — it is the point.

Tamil does not have aspirated consonants. There is no Tamil equivalent of ख, घ, छ or झ, so the positions those letters occupy in Devanagari are genuinely empty in Tamil, and every one of Tamil's own eighteen consonants plus its five Grantha letters is present and reachable. Gurmukhi has no ष, so the क्ष conjunct key is blank there too. Bengali writes both v and b with ব, so the separate व position is empty.

Each layout is built by moving the standard layout into the target script and then checking, character by character, that what it lands on is a letter that actually exists in that script. Where it does not, the key is left blank rather than emitting an unassigned codepoint that would render as an empty box.

This is checked automatically rather than by eye. The test suite asserts that every key on every layout belongs to the script it claims, that the Shift layer lines up with the unshifted one, and that the full consonant and vowel inventory of each script is reachable from somewhere on the board.

Using the keyboard already in front of you

Clicking keys is fine for a word and tedious for a paragraph, so the keyboard in front of you is remapped while you type. Press the key where ब sits on the picture and ब is what appears.

The mapping follows the physical position of the key rather than the letter printed on it. If you already run a French AZERTY or a Dvorak layout underneath, the remapping still lands on the right character, because the browser reports which key was pressed independently of what your system does with it.

Space, Enter, Backspace and the arrow keys are deliberately left alone — they mean the same thing in every language — and Ctrl and Cmd shortcuts pass straight through, so copy, paste and select-all keep working. The small grey letter on each key shows which of your keys produces it. If you would rather type normally, the checkbox turns the remapping off.

On a phone the layout on screen is the one you use, and the device's own keyboard is kept from opening over it. Text still pastes in from elsewhere as usual.

Frequently asked questions

Is what I type sent anywhere?

No. The layouts are a few kilobytes of data in the page, and every keystroke is handled in your browser. There is no request to a server, no account and no history.

Which layout do the Indian languages use?

InScript, the Bureau of Indian Standards layout that ships with every major operating system. It is the same arrangement across all nine Indian scripts here, so learning it once covers all of them.

Why are some keys blank?

Because that script does not have that letter. Tamil has no aspirated consonants, so those positions are genuinely empty. A blank key is the honest answer; emitting a codepoint the script does not define would just render as a box.

Can I use my own keyboard instead of clicking?

Yes, and it is on by default. Your keys are remapped to the layout shown, matched by physical position so it works even if you already run a non-QWERTY layout. The checkbox turns it off.

How do I type a conjunct like क्ष?

It has its own key on the Shift layer of the number row, alongside ज्ञ and त्र. Any other conjunct is formed the normal way: consonant, then the halant key, then the next consonant.

Does it work on a phone?

Yes. The on-screen keyboard is the one you tap, and the device's own keyboard is kept from opening on top of it so it does not cover the layout.

Related tools