Skip to main content
Andrés Movilla
← Back to essays
Draft May 5, 2026

A keyboard for two languages

On living between Spanish and English, the strange scarcity of good Spanish keyboards, and the layout I built to stop choosing.

keyboards spanish tools workflow

I write in two languages every day. Slack threads in English, voice notes to my mom in Spanish, code comments in English, an essay draft in Spanish, a recruiter email in English, a birthday message in Spanish. For most of my life I never thought about it. I had a Spanish keyboard, I typed Spanish on it, and when I needed to write in English the same board worked fine — every letter I needed was right there. The keyboard was invisible, the way a good tool should be.

Then I started wanting a nicer keyboard.

The hardware problem

The first thing you discover is that there’s nowhere local to go and look. Where I live, dedicated keyboard shops don’t exist — the closest equivalent is a generic tech store, and those don’t even stock entry-level mechanical boards. It’s membrane keyboards and more membrane keyboards, all in Spanish layout — that part isn’t the issue. If you want anything better than that, you’re shopping online.

There are a handful of local-ish brands that sell online with physical Spanish layouts. The catch is that none of them are what you’d call good. Mediocre switches, mediocre cases, the kind of keycaps that look fine in the product photo and then arrive feeling hollow. They have ñ printed on the keycap, and that’s about the most flattering thing you can say about them.

So if you want a keyboard that’s actually nice to use — mechanical, ergonomic, split, low-profile, custom, anything in that world — you end up on the international vendors. And that’s where the second thing becomes obvious: almost none of them sell a Spanish layout. Pick any niche, browse the catalog, and the options are overwhelmingly ANSI. English legends on the keycaps, no ñ printed anywhere. The few that do offer Spanish variants treat it as a special-order afterthought, often with limited switch choices, longer lead times, and a quiet disclaimer that returns aren’t easy.

The market reason is obvious. Spanish-speaking countries import most of their high-end peripherals, the manufacturers optimize for the largest single market, and that market types in English. So if you want a really nice keyboard — the kind worth saving up for, the kind you’ll use for ten years — your realistic options are almost all English.

The small daily papercut

After months of browsing, comparing, opening tabs and closing them again, adding things to carts and abandoning them, I finally took the leap. I bought a really nice English-layout keyboard. I told myself the layout part would sort itself out — that I’d adapt, that the rest of the board was good enough to be worth a little inconvenience.

The board arrived. It was beautiful. And the inconvenience showed up about twenty minutes after I plugged it in.

Suddenly I was on a board that had no key for ñ, no key for á, no key for any of the accented vowels. In theory you can produce them with Alt codes — hold Alt, type a four-digit number, hope you remembered it right. In practice, nobody types like that, and I certainly wasn’t going to start.

So I just… stopped using them. ano instead of año. esta instead of está. Mas instead of más. Every accent in every Spanish sentence I wrote quietly disappeared, including, I should mention, the one in my own first name. Andrés became Andres on every form, every email signature, every Slack profile — I had personally demoted myself, in writing, to make peace with my keyboard. My grandmother would not have approved.

When ñ was genuinely unavoidable — a name, a word that turns into something else without it — I’d swap in nh and trust that the reader would figure it out. Mañana became manhana. Niño became ninho. It looked vaguely Portuguese, it was definitely wrong, and it was the path of least resistance.

I told myself it was fine. It mostly was, in the way that any small daily compromise is mostly fine. But over months it added up. Writing my own language on my own keyboard had become a thing I did with an asterisk attached. The keyboard had stopped being invisible, and the language had started looking a little uglier on the page every time I used it.

The fix

Eventually I got annoyed enough to actually go look for a solution. I didn’t have one in mind. I just started searching — “type ñ on english keyboard,” “spanish accents windows,” that kind of thing — half expecting to find some app I could install, half expecting to find nothing at all.

What I found instead was the concept of a software keyboard mapping. The idea that the physical keys on the keyboard are one thing, and the characters they produce are a separate thing entirely — defined in software, by a small file your operating system reads. The layout printed on the keycaps is just paint. The actual behavior is configurable. You can edit it. You can write your own.

That was the unlock. I’d spent years thinking of “the keyboard” as one indivisible object — what you bought is what you got — when in fact half of it was a text file I could change.

So I wrote one. The idea is simple. Start from a standard US English mapping — every symbol exactly where a developer expects it. Then add a single modifier-based “Spanish mode” on top. A short chord — nothing fancy, just a combination my fingers could absorb into normal typing without much friction — and the next keystroke produces an accented character. á, é, í, ó, ú, ñ. That’s it. I cut the ones I don’t realistically use day-to-day — ü, ¿ and ¡. They’re nice in theory, almost never necessary in practice, and every extra mapping is one more thing for the muscle memory to absorb. Better to keep the set small and the chord cheap. The vowels live on the vowel keys. ñ lives on n. Nothing else moves. Nothing dead-keys when I don’t want it to. The English mapping I rely on for code is completely untouched.

In practice, typing mañana now costs me one extra keystroke compared to manana. That’s it. That’s the whole tax. And the muscle memory came faster than I expected — within a week I’d stopped thinking about it, the same way I’d stopped thinking about Shift years ago.

The unexpected bonus is that it works on any keyboard. Because the mapping is just a file, I can drop it onto a new machine and have my whole bilingual setup running in under a minute. The hardware stops mattering. I can buy whatever board I actually want — the nice one, the pretty one, the weird split one — and know my language will follow me onto it.

The layout, if you want it

I packaged it up. It’s a small thing — a keyboard layout file plus a one-page readme explaining the chord and the mappings. Free, no signup, no telemetry, just a file you install and forget about.

Download the layout (zip)

If you write Spanish and English on an English keyboard and you’re tired of dropping every accent, give it a try — it’s built specifically for that pair. And if you take the same idea and adapt it for Portuguese, French, German, or anything else with diacritics, please send me what you did. I’d love to see how other people have solved the same small, stubborn problem.

The bigger thing

The deeper lesson, the one I keep relearning, is that bilingual life is full of these tiny frictions that nobody who lives in one language ever sees. Autocorrect that fights you. Spellcheckers that flag every other word. Voice assistants that pick the wrong language halfway through a sentence. Forms that demand a single “native language.” Keyboards that make you choose.

Most of them you can’t fix. This one, it turned out, you can. And once it’s fixed, you stop noticing it — which is the highest compliment a tool can earn.