Split keyboard has been on my list for a long long time (more than a decade). Building custom keyboards is on the raise in India. There are few websites selling custom keyboard kits ( ) . And they also nourish a community of builders in Discord.

My journey started with an interest in procuring Ergodox or the Moonlander keyboard. Cost of import and shipping was way too high. I was very happy and impressed when I found Ergodash build kits available in India. I noticed that these kits have SMB components and last time I soldered anything was during my school days. And that was 20 years ago. Good folks from StacksKB put me in touch with few folks who love to build. I managed to get in touch with another enthusiast from Bangalore.

BOM & Build

  • Ergodash DIY Kit
  • Gateron Milky Browns
  • WS2812B-V5 LEDs
  • Pro Micro – 2

Built By


I’m a heavy Emacs user and this seems to be a good a starting point for avoiding Emacs Pinky

You can download the keymap config here.


  1. The legs are unstable.
  2. Tenting is not that great.

DIY : New Keyboard for a 9 year old Thinkpad X230

My trusty old Thinkpad’s X230 keys started to not respond intermittently. And the power button broke. So I’ve been using a pencil to switch on the the laptop for a while. The final blow was the non-functioning number key ‘6’ .

While looking around, I stumbled across which has parts for older models. This was a 5 minute fix :

I really wish we had more of these fixable electronics these days.

Mechanical Keyboard : Ducky One 2 Mini Horizon

I’ve been using Microsoft Ergo 4000 keyboard for the last 10 years. They tend to last for about 6 years. Since my current MS Ergo is stuck in office, I checked with friends who are generally on top of these trends of ‘basic necessities’ 🙂 . I was told that its about time to pick up a mechanical keyboard. And I ended up with a Ducky One 2 Mini 60% keyboard.

The transition to the ducky was seamless. The layout felt at home . The Fn layer has all keys that was chopped off to accomplish the 60%. Ideally I would have loved to get a Keychron K6 as I miss these features :

  1. Wireless
  2. Multi device support
  3. Option of hot swap-able switches

If the above list is not scary for you , then the Ducky Mini is a good choice. I enjoy the satisfying keystroke of the Cherry MX Brown switches, the compact layout and the possibilities of using macros.

I picked it up from (India)

Readings of 2013

2013 Reading
2013 Reading

Call of the Wild was the most I enjoyed in this list. Quite happy with this year’s lot, even though the number of books is way too low 🙂

Thinkpad X230 & Ubuntu 12.10


  • No easy tool to control touchpad.

Using xinput

jony@Icarus:~/bin$ xinput
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ TPPS/2 IBM TrackPoint id=13 [slave pointer (2)]
⎜ ↳ SynPS/2 Synaptics TouchPad id=11 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ Power Button id=6 [slave keyboard (3)]
↳ Video Bus id=7 [slave keyboard (3)]
↳ Sleep Button id=8 [slave keyboard (3)]
↳ Integrated Camera id=9 [slave keyboard (3)]
↳ AT Translated Set 2 keyboard id=10 [slave keyboard (3)]
↳ ThinkPad Extra Buttons id=12 [slave keyboard (3)]

To switch off trackpad : xinput set-prop 11 “Device Enabled” 0

To switch on trackpad : xinput set-prop 11 “Device Enabled” 1

  • How to control the sensitivity of trackpoint?

Audio Issues:

  • Internal speakers doesn’t work. Fixed with the new kernel (3.5.0-18-generic) update.
  • Mute button light is inconsistent. Sometime it comes up sometimes it doesn’t

Laptop Mode

Meet Astro…

Meet my canine buddy “Astro”, the male labrador.

This video was taken when he was 1.5 months old.


Sublime Text syntax definition for Google Protocol Buffers

Sublime Text  Syntax definition for Google Protocol Buffers.

Not robust – But its a start.

{ “name”: “ProtoBuf”,
“scopeName”: “source.proto”,
“fileTypes”: [“proto”],
“foldingStartMarker”: “{“,
“foldingStopMarker”: “}”,
“patterns”: [
{ “match”: “\\s+[0-9]*”,
“name”: “constant.numeric.proto”,
“comment”: “Field numbers”
{ “match”: “double|float|int32|int64|uint32|uint64|sint32|sint64|long|fixed32|fixed64|sfixed|sfixed64|bool|string|bytes”,
“name”: “storage.type.source.proto”,
“comment”: “Scalar Value types.”
{ “match”: “optional|required|repeated|default”,
“name”: “storage.modifier.source.proto”,
“comment”: “Field Rules”
{ “match”: “^message|^package|^option|^import|^extend|^service”,
“name”: “”,
“comment”: “Message section”
{ “match”: “\/\/.*”,
“name”: “comment.line.double-slash.proto”,
“comment”: “Comments”
“uuid”: “f6a112ba-072a-47b3-b3e3-7714156b3614”

Update : Moved to emacs. But still still two-timing …

Update : Moved to emacs.

End of a book : Johnny in Novell

Last day in Novell.

Started out as an intern in the GNOME team about 5 years back. Jumped between Evolution and iFolder a few times for different (voluntary/involuntary) reasons. Met a lot of good engineers. Had both good / bad times. Learned a lot work / non-work.


I loved working on Evolution, Evolution MAPI (may not be perfect, but had a awesome time with it And i’m yet to cash in on the few beers i’ve been offered), Attachment Reminder (Trivial, but looks like you guys liked/hated/loved it), Redesign of Evolution search bar and so on. Best bug that I’ve worked on so far was changing a ‘1’ to ‘-1’ in EText (Oh those early days! Had no clue what GDB can do.. Used hundreds of ‘printf’s, lots of coffee and tested the patience of office night guards and that adrenalin rush!). Thanks to Novell for the opportunity to contribute full-time and getting paid for that.

Special thanks to my mentor Srini. I’m looking forward for more new awesome fun things in GNOME.


I’ll miss the 1-1 coffee breaks talking games/gadgets/music, discussions on research papers that I don’t have a clue about, conversations during ‘tea breaks’ outside office (you would see me very inspired/productive after those sessions), thursday nights 😉 & nice friends that I found beyond ‘work’.

The End.

Captain’s log 2011.01

0.04 : Mysore

I’m not at liberty to disclose the details of the this trip. Its under bro-NDA dictated by the bro-code. I came back home with a huge bag of tissue papers!

02 : Dad’s

The surprise drive.

03 : Wayanad

Started the drive on Sunday morning – With the Green  & Black Ninja. But had to return midway because of ‘technical issues

04 : Kumara Parvatha

A trek to Kumara Parvatha. More here..

On WeekendsWithJohnny :

Odo says 25551 KMs – Yay! Crossed the 25K mark .