惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

T
Tenable Blog
博客园_首页
Vercel News
Vercel News
WordPress大学
WordPress大学
美团技术团队
G
Google Developers Blog
大猫的无限游戏
大猫的无限游戏
小众软件
小众软件
Y
Y Combinator Blog
博客园 - 【当耐特】
量子位
酷 壳 – CoolShell
酷 壳 – CoolShell
The Cloudflare Blog
T
The Blog of Author Tim Ferriss
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Google DeepMind News
Google DeepMind News
云风的 BLOG
云风的 BLOG
腾讯CDC
M
MIT News - Artificial intelligence
爱范儿
爱范儿
Recent Announcements
Recent Announcements
雷峰网
雷峰网
Last Week in AI
Last Week in AI
宝玉的分享
宝玉的分享
The Register - Security
The Register - Security
Jina AI
Jina AI
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Hugging Face - Blog
Hugging Face - Blog
P
Privacy & Cybersecurity Law Blog
Recorded Future
Recorded Future
Help Net Security
Help Net Security
N
News and Events Feed by Topic
博客园 - Franky
P
Proofpoint News Feed
L
LINUX DO - 热门话题
S
SegmentFault 最新的问题
The GitHub Blog
The GitHub Blog
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
月光博客
月光博客
D
Docker
Google DeepMind News
Google DeepMind News
有赞技术团队
有赞技术团队
IT之家
IT之家
Security Latest
Security Latest
L
LangChain Blog
V
V2EX
阮一峰的网络日志
阮一峰的网络日志
J
Java Code Geeks

Fabien Sanglard

The art and engineering of Silpheed Magic the Gathering format: Fun 40 How Michael Abrash doubled Quake framerate Let's compile Quake like it's 1997! Is QSpy still cool? Let's play QuakeWorld! Building a 1997 Quake PC: Benchmarking GLquake Building a 1997 Quake PC: Benchmarking Vquake Building a 1997 Quake PC: Benchmarking Quake Building a 1997 Quake PC! Why WinQuake exists and how it works Quake Engine Indicators How quake.exe got its TCP/IP stack Building my childhood dream PC Why fastDoom is fast Watching sunsets SNES: Sprites and backgrounds rendering How the SNES Graphics System works Carving the Super Nintendo Video System Inside the Super Nintendo cartridges The evolution of the Super Nintendo motherboard The hearts of the Super Nintendo How the DevTeam conquered the iPhone Why Android developers no longer need Windows USB drivers How Apple's Pro Display XDR takes Thunderbolt 3 to its limit The bash book to rule them all 0x4 reasons to write and publish Forty years of programming Exploring Command-line space time Ode to the M1 mDNS Primer Commander Keen: Adaptive Tile Scrolling 10NES Good Vibrations Driving Compilers The Joy of Computer History Books All you may need is HTML Mjolnir A Linux evening... Books update The Book Of CP-System, paper version CCPS: A CPS-1 SDK The Book Of CP-System The Beautiful Diablo 2 Resurrected machine USB Cheat Sheet CPS-1: GFX system internals Street Fighter 2: Sound System Internals Street Fighter 2: Subtile accurate animation Street Fighter 2: Spin when you can't Street Fighter 2: The World Warrier Following Street Fighter 2 paper trails Observing my cellphone switch towers Game Engine Black Book: DOOM, Korean Edition The confusing world of USB The beautiful silent thunderbolt-3 PC These are called opportunities Game Engine Black Book: Wolfenstein 3D, Korean Edition WHEN 13.3 > 14 Switching to Lenovo Carbon X1 Discret 11, the French TV encryption of the 80's A tale of Ghosts'n Goblins'n Crocos Revisiting the postcard pathtracer 0x10 rules An history of NVidia Stream Multiprocessor Revisiting the Businesscard Raytracer The Making Of Stunt Island The Polygons of DOOM: PSX The Polygons of Another World: Jaguar The beautiful machine The Polygons of Another World: GBA The Polygons of Another World: SNES The Polygons of Another World: Genesis The Polygons of Another World: PC DOC The Polygons of Another World: Atari ST The Polygons of Another World: Amiga The Polygons of Another World Strike Commander: Interview with Frank Savage A trip down NBA Jam graphics pipeline Game Engine Black Book update The story of the 3dfx Voodoo 1 The story of the Rendition Vérité 1000 How DOOM fire was made Deciphering the postcard sized raytracer How the Dreamcast copy protection was defeated Game Engine Black Book: DOOM Game Engine Black Book: Wolfenstein 3D, 2nd Edition Bloated Game Engine Black Book Postmortem FizzleFade Game Engine Black Book ReleaseDate Let's compile like it's 1992 Game Engine Black Books Trespasser: Jurassic Park CG Source Code Review Git Source Code Review The Computer Graphics Library Algorithms and Data structures books: One size doesn't fit them all Learning Legendary Hardware Decyphering the Business Card Raytracer More Doom III BFG Documentation Doom III BFG Documentation Reverse Engineer Strike Commander
My favorite keyboards
2026-06-29 · via Fabien Sanglard

June 28th, 2025

My favorite keyboards

When I started using computers, we had a Sinclair ZX Spectrum at home and a nano-reseau of Thomson MO5s at elementary school. I distinctly remember how unpleasant it was to type with them. These must have been the worst keyboards I ever used[1]. Ever since, I have paid close attention to the keyboards I use. Here is the list of my all-time favorites.

IBM Model M


I discovered the IBM Model M in 1993 when I went over to the neighbor who owned an IBM PS/1 6128. I was immediately hooked to the feel of the keys and their clicky sound. It felt like using a typewriter and I loved it.

It took me many years to find one. I vividly remember the Craigslist ad for a dilapidated computer shop in a Toronto suburb. Inside I found piles of them, stacked six feet high. All of them had some kind of damage so I picked a few for $20 apiece and rebuilt one that looked pristine. I used it for nearly 10 years after that.

My IBM Model M while studying Quake 2 engine (2011)

8BitDo has released a Model-M inspired modern mechanical keyboard. It looks gorgeous (1, 2, 3, 4, 5), sounds like a dream, and is overall an excellent keyboard that I have used a lot to play Diablo II: Resurrected.

IBM Model M SSK


It is only in 2025, when I was building my own IBM PS/1 6128, that I discovered the IBM Model M, SSK (Space Saving Keyboard) with 84 keys. Not having that cumbersome keypad eat up the space and pushing the mouse location further right is so convenient, it surpasses the 101/102-key version.

IBM Model M SSK

ConcertMaster


John Carmack working on DOOM 3 (2003)

The NMB RT-9100W, ConcertMaster, is an icon. After id Software shipped Quake, they retired their NeXT-based stack in favor of Intergraph workstations running Windows NT. The RT-9100W came standard with the TDZ RealiZm purchased by id. This is the keyboard programmers used to write QuakeWorld, WinQuake, and QuakeGL.

John Carmack enjoyed working with this keyboard so much that he kept it for many years after Quake shipped. All subsequent id games, from Quake II, Quake III, to Doom 3 were written using this keyboard as assessed by the documentary G4 Documentary: The History of Doom and Making of Doom 3 (2003).

NMB ConcertMaster RT-9100W. Super-hard to find in good condition nowadays.

The membrane base makes the keys feel quite peculiar and not on par with a Model M. It is also a beast of a keyboard. But it has the advantage of packing the best sound system I have ever come across on a keyboard. The sound quality is surprisingly high, even when powered only by a 6-pin mini-DIN (PS/2) connector. The volume knob is ultra-convenient. And not having to add speakers on the desk is gold. It is a lovely keyboard that became the signature of my Quake build.

Nothing screams 2000s like John Carmack wearing a NEXT Generation magazine T-shirt, surrounded by a ConcertMaster, a Mac G3, a 28″ InterView monitor, and an SGI Visual Workstation.

Ergodox EZ


As I was getting older, I started to feel discomfort when I typed for extended periods of time. The problem was solved when I started using a keyboard that let my wrists and forearms be stable while working.

Ergodox EZ (2016). Notice the custom 3D-printed legs to increase the tilt.

With its detached parts, the Ergodox EZ is able to adjust to any typist. I used that keyboard for 10 years. I liked it so much that I bought one for home and one for work.

Moonlander


I have raved and rambled about the Ergodox EZ. It solved my RSI problems. I thought it was going to be my last keyboard. There was just one problem.

It was impossible to tilt properly. I tried many ways to solve the issue, from the official Ergodox Tilt/Tent Kit to 3D-printing my own solutions. The result was always wobbly. Occasionally the legs would slip and the keyboard would crash onto the desk. I developed muscle memory to avoid pressing too hard on the keys, but that made me miss keystrokes.

Six months ago, I was invited to visit Ollama's HQ in Palo Alto. It turned out they had many keyboard connoisseurs there. One of them even worked with a gorgeous Model M. Another engineer's setup piqued my curiosity. They had something tilted nearly 50° that felt solid and stable. I immediately noticed that I was no longer afraid to press hard on the keys.

Moonlander with Platform Tilt kit (2026).

As soon as I got home, I ordered a ZSA Moonlander (Black / Kailh Box Brown / Printed Keys) with its Platform accessory. The Moonlander is my dream keyboard. It has everything the Ergodox EZ offers, and it remains ultra-stable while tilted on the Platform. I really hope this will be my last keyboard.

References


^ [1]Closely followed by my later machines, the Amstrad CPC 6128 keyboard, and the Atari 520 STE keyboard.


*