PyCon UK 2019

Optimizing Input: Building your own customized keyboard
2019-09-13 , Ferrier Hall

Keyboards, the main way we interact with computers, have remained unchanged for a century, despite being free from mechanical necessity. Alternatives made possible by recent technology can optimize the way we input text and interact with our devices.


As computer users, we spend copious amounts of time in front of screens, but, as writers and editors of text, we tend to ignore or overlook the way we most directly interact with our development environments, the keyboard.

The keyboard standard set by QWERTY has remained unchallenged for about a hundred years, despite being free from the mechanisms that dictated the way mechanical typewriters had to be built. Recent developments in electronics manufacturing, laser cutting, and 3D printing have allowed a community of keyboard makers to flourish and challenge the status quo. This talk will set out to upend preconceived notions of input, and will present alternative keyboard layouts, both virtual and physical.

We will start by covering the history of keyboard layouts, and how the physics of staggered keys created the standard QWERTY layout that we still use today. Next, we will move on to software-based alternate layouts that can be installed on existing computers, usually with minimal effort. We will then make the jump from bits and bytes to switches and diodes, exploring the way a keyboard works. Further, we will discuss microcontrollers used and developed by the keyboard community, and, finally, end on the open-source software used to program and configure these devices. As a grace note we will see a demo of a custom-built keyboard using a PyBoard as a microcontroller.


Is your proposal suitable for beginners?: yes

I'm a community-taught developer who always tries to give back. I coach at the OpenTechSchool Python-Co learning and have coached at four DjangoGirls in Berlin. I also encourage and help beginners in their own programming journeys.

I've been programming in Python since 2012, with Django since 2014. I've been working professionally as a Web Developer at Jonas und der Wolf in Berlin since 2016.