Short answer: The easiest route is a phonetic keyboard — type namaste in Roman letters and get नमस्ते. Windows has the Hindi Phonetic IME, macOS has Devanagari – QWERTY, and every phone offers transliteration. If you type Hindi professionally, learn InScript instead.
Hindi sits between the two kinds of language on this site. Like Russian, it can be a straight layout swap. Like Chinese, it can be a transliteration IME where you type Roman letters and get script back. Which you choose matters more than any individual shortcut, so that’s the first section. If you write in several languages, start at the foreign-language typing hub.
Need marks outside the Devanagari set? The full copy-and-paste symbol keyboard has every currency sign, bracket and punctuation mark on one page.
How Devanagari actually works
Five minutes here saves you a lot of confusion later. Devanagari is an abugida, not an alphabet — a middle ground between letters and syllables.
Every consonant carries a built-in “a”. क is not “k”, it’s ka. That’s why typing what looks like one letter gives you a syllable.
Vowels attach as matras. To change the vowel, you add a mark to the consonant: क + ि = कि (ki), क + ी = की (kee), क + ु = कु (ku). Note that ि appears before the consonant but is typed after it — you always type the consonant first. Standalone vowels (अ आ इ) are separate characters, used only at the start of a word.
The virama kills the vowel and builds conjuncts. To get bare “k” with no vowel, add the virama ् : क् . Put another consonant after it and they fuse into a conjunct: क + ् + ष = क्ष. This is why letters seem to merge on their own — they’re supposed to.
That’s the whole system. Consonant, optional matra, virama to join.

Choose your layout first
| Phonetic | InScript | Traditional (Remington) | |
|---|---|---|---|
| How | Type namaste → नमस्ते | Devanagari mapped to keys, vowels left, consonants right | Based on the Hindi typewriter |
| Learning | Minutes | Days to weeks | Weeks |
| Speed ceiling | Moderate | High | High |
| Transfers to other machines | Needs installing | Standard across all of India, and shared with other Indic scripts | Common in Indian offices |
| Best for | Learners, occasional writers, anyone bilingual | Anyone typing Hindi seriously | Professional typists, existing muscle memory |
Start phonetic. Move to InScript if Hindi becomes a daily language for you — it’s the government standard, it’s consistent across Devanagari, Bengali, Tamil and the rest, and its logic is genuinely good: vowels on the left hand, consonants on the right, Shift for the aspirated pair (क → ख).
Windows
Hindi installs with Hindi Traditional by default, which is the least intuitive of the three. Add the one you want:
- Settings → Time & language → Language & region → Add a language → Hindi → Install. (You don’t need to change your Windows display language.)
- Click the ⋯ next to Hindi → Language options → Add a keyboard, then pick:
- Hindi Phonetic — the transliteration IME
- Hindi (India) – Devanagari – INSCRIPT — the standard layout
- Switch with Windows key + Space. The tray shows हिं when Hindi Phonetic is active.
Using the Hindi Phonetic IME: type the transliteration of the word and candidates appear as you go — pick one, or keep typing and it resolves. It handles the matras and conjuncts for you, which is precisely the part beginners struggle with.
Windows renders Devanagari in Mangal by default; Aparajita and Kokila are also pre-installed if you want something less utilitarian.
Mac
System Settings → Keyboard → Text Input → Edit → + → Hindi, then choose:
- Devanagari – QWERTY — phonetic. त is on the
tkey, म onm, and so on. - Devanagari — the standard non-phonetic layout, closer to InScript.
Switch with Control + Space or the 🌐 globe key. Turn on Show Input menu in menu bar, then use Keyboard Viewer from that menu — with Devanagari active it shows you exactly where every letter and matra sits, including what appears on Shift and Option. That’s the fastest way to learn either layout.
macOS ships Devanagari MT and Devanagari Sangam MN. Devanagari MT doesn’t appear in every app’s font menu, which is a known quirk rather than a missing font.
iPhone and Android
Phones are the easiest place to type Hindi, because transliteration is built in.
iPhone: Settings → General → Keyboard → Keyboards → Add New Keyboard → Hindi, then pick Devanagari (the script keyboard) or Transliteration (type namaste, get नमस्ते). Add both — the transliteration keyboard for speed, the Devanagari one for when you need an exact spelling.
Android (Gboard): Settings → Languages → Add keyboard → Hindi, then choose the Devanagari layout or Hindi (Transliteration). Gboard’s Hindi prediction and glide typing are both strong, and it will suggest Devanagari while you type Roman letters.
On both, long-press a consonant to reach its matras and related forms.
Chromebook
Settings → Advanced → Languages and inputs → Inputs → Add input methods, then pick from several Hindi options — Hindi phonetic, Hindi (INSCRIPT) and Hindi transliteration are all available. Switch with Ctrl + Shift + Space.
Linux
Devanagari layouts ship with the system; a transliteration engine doesn’t.
- Layout (no install): Settings → Keyboard → Input Sources → + → Hindi, then pick the variant (
devais InScript,bolnagriis a well-designed phonetic layout). Switch with Super + Space. - Transliteration: install
ibus-m17norfcitx5-m17n, which provideshi-itransand similar phonetic engines, then log out and back in before it appears.
Matras and marks you’ll need
| Mark | Name | What it does | Unicode |
|---|---|---|---|
| ा ि ी ु ू े ै ो ौ | matras | Vowel signs attached to a consonant | U+093E–U+094C |
| ् | virama / halant | Removes the inherent a; joins consonants | U+094D |
| ं | anusvara | Nasalises — हिंदी | U+0902 |
| ँ | chandrabindu | Nasalised vowel — हाँ | U+0901 |
| ः | visarga | Breathy h, mostly Sanskrit | U+0903 |
| ़ | nukta | Modifies a letter for loan sounds — क़ ज़ फ़ | U+093C |
| ॐ | om | U+0950 |
The three nasal marks are the most-confused part of Hindi typing: ं sits on a consonant, ँ sits on a vowel sound, and they are not interchangeable.
Conjuncts, and how to control them
By default, a virama between two consonants produces a fused conjunct: क् + ष = क्ष. Sometimes you want the opposite — the letters visibly separate with the virama showing, which is standard in dictionaries and teaching material.
That’s what the joiner characters do:
- ZWNJ (U+200C) — zero-width non-joiner. Placed after the virama, it stops the conjunct forming, leaving क्ष.
- ZWJ (U+200D) — zero-width joiner. Forces the half-form where the font would otherwise use a full conjunct.
Both are invisible, which makes them easy to lose track of — see invisible characters. Most writing never needs them, but if you’re producing grammar material or transliteration tables, they’re the tool.
Hindi punctuation and numerals
| Mark | Name | Use | Unicode | HTML |
|---|---|---|---|---|
| । | danda | Full stop — not a period | U+0964 | । |
| ॥ | double danda | Verse and section endings | U+0965 | ॥ |
| ₹ | rupee sign | Currency — see the rupee symbol guide | U+20B9 | ₹ |
| ०१२३४५६७८९ | Devanagari digits | Traditional numerals | U+0966–U+096F | ०… |
The danda (।) is the Hindi full stop. Modern writing increasingly uses a period instead, especially online, but the danda is correct in formal and literary Hindi — and a | pipe character is not a substitute, even though it looks similar.
Devanagari digits appear in literary and traditional contexts; Western digits dominate everyday use, including money and dates.
Hindi in HTML and CSS
UTF-8 handles Devanagari, but two things matter:
html
<html lang="hi">
<p lang="hi">नमस्ते दुनिया।</p>
Set lang="hi" so browsers and screen readers select a Devanagari font and the right voice. Without it, rendering falls back unpredictably — see symbols showing as boxes.
The bigger issue is line-height. Devanagari has tall matras above the headline (शिरोरेखा) and marks below it, so text set at a Latin-appropriate line-height: 1.4 will visibly clip or collide. Give it room:
css
:lang(hi) { line-height: 1.8; font-size: 1.05em; }
Devanagari also renders slightly smaller than Latin at the same point size, which is why the modest size bump is worth adding. And never assume one character equals one visual unit: क्ष is three code points rendering as one cluster, so JavaScript that slices strings by index will cut conjuncts in half. Use grapheme-aware methods — background in what Unicode is.
Troubleshooting
| Problem | Fix |
|---|---|
| My letters merged into one shape | That’s a conjunct, and it’s correct. A virama between consonants fuses them |
| The vowel sign appears on the wrong side | ि displays before the consonant but is typed after it. This is normal |
| I get कि when I wanted क् | You typed a matra instead of the virama. Virama is a separate key |
| Matras get cut off at the top | Line-height too tight. Set line-height: 1.8 for Devanagari |
| I can’t type ज़ or फ़ | Those need the nukta (़) after the base letter |
| Text shows as boxes | The font lacks Devanagari. Use Mangal or Aparajita on Windows, Devanagari Sangam MN on macOS |
| The phonetic keyboard gives the wrong word | Keep typing — candidates refine with more letters. Or switch to the script keyboard for exact spelling |
| Nothing happened after installing m17n on Linux | Log out and back in — the input framework registers at session start |
| I used ` | ` as a full stop |
Which method should you use?
| If you… | Do this |
|---|---|
| Need one mark right now | Copy it from the grid above |
| Are learning Hindi | Hindi Phonetic (Windows) or Devanagari – QWERTY (Mac) |
| Type Hindi daily | Learn InScript — the standard, and it transfers to other Indic scripts |
| Already type on a Hindi typewriter | Hindi Traditional matches your muscle memory |
| Type on a phone | Transliteration keyboard, with the Devanagari one added for exact spellings |
| Are building a Hindi website | lang="hi", generous line-height, grapheme-aware string handling |
| Write teaching material | Learn ZWNJ — it’s how you show a virama without the conjunct |
Writing other languages too? See how to type in Russian and Arabic, or the foreign-language typing hub for every guide.
Frequently asked questions
What’s the easiest way to type Hindi?
A phonetic keyboard. On Windows, add the Hindi Phonetic IME and type namaste to get नमस्ते. On a Mac, use Devanagari – QWERTY. On a phone, add the Hindi transliteration keyboard. All of them let you type Roman letters and produce Devanagari, with no new layout to learn.
What is the difference between InScript and phonetic typing?
Phonetic input converts Roman letters into Devanagari, so you type what the word sounds like. InScript is a keyboard layout where each key produces a specific Devanagari character — vowels on the left hand, consonants on the right. Phonetic is faster to start; InScript is faster once learned and is the standard across Indian languages.
Why do my Hindi letters join together?
Because they’re meant to. When a virama (्) sits between two consonants, Devanagari fuses them into a conjunct — क + ् + ष becomes क्ष. If you need them separated, insert a zero-width non-joiner (U+200C) after the virama.
How do I type matras (vowel signs)?
Type the consonant first, then the matra. The vowel sign attaches to the consonant automatically. Note that the “i” matra ि displays to the left of the consonant even though you type it afterwards — that’s correct behaviour, not an error.
How do I type the Hindi full stop?
Use the danda । (U+0964). It’s on the Hindi keyboard layouts and can be copied from this page. Don’t substitute a pipe character | — it looks similar but is a different character entirely. Modern informal Hindi often uses a period instead.
Do I need a special font for Hindi?
Usually not. Windows includes Mangal, Aparajita and Kokila; macOS includes Devanagari Sangam MN and Devanagari MT; phones include Devanagari fonts as standard. If Hindi text shows as boxes, the font in use lacks Devanagari coverage — switching fonts fixes it.
Written by Igor R. Tested on Windows 11, macOS, iOS, Android, ChromeOS and Linux. Last updated August 2026. Character code points follow the Unicode Standard.