Review of the MK-47

Promotional image of the MK47

As I stated in a previous post, I am currently getting into the world of minimal keyboards. I'm currently using the MK-47, a minimal store brand keyboard that costs $50 at MicroCenter, though I just got in a Ferris Sweep. I will review this later.

I'll be honest, when I started using this keyboard, I thought it would just be a way to test if something smaller than 60% would work for me, but it grew on me to the point where I consider it an essential part of my workflow now.

What I like about this keyboard

Compared to most mechanical keyboards, the MK-47 is cheap. Like, really really cheap. Again, $50 including RGB lighting, mediocre no-name red switches, and keycaps. It is also assembled, rather than a kit. Honestly, I don't know how they afford this.

The MK47 states that it comes powered by QMK and supports VIA. It may be powered by QMK, but I had no luck flashing it, nor did anyone on Reddit that I was able find. The normal VIA app does not work with it either but it didn't take much digging to find that works well. This is the first programmable keeb I've owned, and I am not going back! I set it to Colemak (which I learned about two months ago and am still working at building speed and accuracy in), set a grid-layout numpad on my home row, and generally made a bunch of changes to make this keyboard my own.

I spent a lot of time working on a layout, taking bits and pieces of various "standards" like Miryoke, Callum, and others. I still make changes almost daily. I alternate between this and the Sweep, but as that one uses ZMK it requires a reflash (which I can't do on my work PC) to update. VIA makes iterating layouts a breeze.

I also really like the ortholinear layout. Instead of the stagger between rows all keys are in a grid, which makes finding some of the less-used keys easier. I am still relearning the bottom row as most of these keys are so far staggered in a traditional layout that I was using the incorrect fingering. But overall, the ortho layout makes it much easier to find keys and takes very little getting used to.

What I dislike

As stated before, this keeb does not support proper VIA or QMK flashing, which means the programmability is limited. I can set macros and layers, but can't add more than four layers (including the base layer), combos, mouse support, or many other things that I would be able to do if I could flash QMK directly to the keeb. I love the level of customization I have over my keymap, but it just makes me want to go further and I can't. I also can't set the ModTap hold time, which makes home row mods nearly unuseable. However, the longer I used this keeb, the more these limitations seemed less limiting.

I don't have a lot of experience with keyswitches, but know that I don't care much for these. However, they are hot-swappable so I can change them out. The keycaps were not only ugly, but also sculpted so I can't move them to match my Colemak layout. I ordered some SDA profile caps which do not diffuse the beautiful RGB lighting as well but are comfortable and do what I need.

I have also been playing with a 34 key layout that would be better served by two 1 unit spacebars than with a 2 unit one, similar to what I previously outlined.

Where I plan to go from here

I didn't plan to use this board forever, but after the way it has grown on me, I just might. It was the cheapest intro I could find to ortho keyboards and smaller keyboards, so I could see if I wanted to invest in either. I plan to continue with both. I tried to build a Contra kit but it did not work. However, the layout I am currently using is only 34 keys, so I purchased a prebuilt Ferris Sweep. I had been planning to give my MK47 to a coworker that was interested in ortho once my next keeb came in, but this has become so important to my workflow I no longer am willing to part with it.

Final thoughts

This keyboard was not intended as an endgame, but over a month or two it surprised me with how wonderful it is. If you get one, you must customize the layout. The default is trash. However,you will find that the more personalized you make this keeb, the more it becomes essential to your workflow, and that workflow will begin to include changing the layout to match what you are doing.

How I manage with just 35 keys

My current keyboard

I recently fell down the rabbit hole of minimal keyboards. Having have been interested in mechanical keyboards since seeing the Ultimate Hacking Keyboard on Twitter a few years ago, but my interest in minimal keebs began when I saw DistroTube review the Planck EZ (recently discontinued). I have previously seen smaller keyboards before, of course, but never thought that they would be useable. After seeing that DT was able to use it, and explain how easy it is to use, I was interested. As the Planck is (was) very expensive, I started doing research before making a commitment. And like anyone researching keyboards, I stumbled on Ben Vallack's keyboard playlist on YouTube.

Ben began his journey with a Planck EZ, but wound up removing keys, with the original stated goal of no key being more than one key away from the home position. He finally settled on an 18-key layout that works well for him.

Fuck that. I want all my letters available at once. I am currently using a MK-47 from MicroCenter, which I picked up for about $50. This includes mediocre switches (no-name reds) and RGB lighting. Not the best keyboard by any means, but it gave me an idea of whether I should go any smaller than the 60% I was using before. I have been using it for almost a month now, and while I will not be sticking with it, that will be due to the limitations of the board rather than of the form factor. I will post a full review of this keyboard in the next few days.

I got this board to try smaller form factors, but have been quite curious about the 34 key layout. It seems to have the perfect number of keys to make each one easily accessible. In one of Ben's earlier videos, he created a 36 key layout on his Planck. I did something similar and trimmed mine to 35 keys. I use a 34 key layout, but when watching videos at work (my day job is tech support so I have time to kill between calls) I have to be able to pause them quickly when the phone rings and the 2U spacebar works well for that. I'm limited to 4 layers total, so I have a base, navigation, symbol, and number layer. They are based on this layout by kkga, but with a few personal modifications. Let's go through, layer by layer.

Base layer 0

Base layer

This layer is a no-mod Colemak layout, but with the semicolon replaced with the quote as I don't have the outer pinky columns. I am still adjusting to Colemak, but that is another post for another time. The thumb keys, in order:

  1. Go to nav layer 1. When tapped 5 times it switches to nav, useful for reading long documents.
  2. Shift
  3. Play/pause on tap, or go to num layer 3 when held
  4. Space
  5. Go to symbol layer. This one is a one-shot as I normally only need one symbol at a time.

Nav layer 1

Navigation layer

The right side of this layer has navigation arrows in VIM config, with paging controls above. I have escape, enter, and tab right below and backspace on my pinky. I do several screenshots a day, so this was a good place to put print screen, and forward delete under backspace just makes sense. The password key is a macro that enters my password and hits enter.

The left side has RGB lighting controls on the top row (and holding shift while hitting them decreases the values instead of increasing) with the spacebar toggling lighting, one-shot mods on the home row, and undo/cut/copy/paste on the bottom, along with a macro that just pastes then presses enter for me, which is incredibly useful.

Symbol layer 2

Symbol layer

This one is pretty straightforward, lifted directly from the kkga, and is the best-designed symbol layer I've seen. Has the home row one-shot mods on the right hand. I really like the open and close pairs being home and bottom row as editors usually complete the close automatically. I may put something else where the angle brackets are as they are also available on the home layer, but for now this is fine.

Number layer 3

Number layer

The right side of this layer has a numpad with period and minus to the right, and backspace, enter, and tab easily accessable for filling out forms. Left side has media controls below modifiers, and these are regular rather than one-shot since sometimes I need a regular mod key.

I have been using this setup for a few weeks now. I will admit that having moved within two months from 65% QWERTY to 40% Colemak has not helped my typing speed (it has gone from 95wpm to around 55wpm), I can defiantly feel the difference in my hands. This layout is more comfortable, I make fewer mistakes, and I don't have to look at my hands to find symbols. I can do everything without taking my eyes off of the screen. I was never able to do that with a standard QWERTY. I will be dialing my layout in a bit more, but overall I am quite pleased with this layout and find that long typing sessions are much easier on it. I have ordered a new keyboard which will allow combos and other QMK trickeries which will also make it easier to use, but after just a few weeks I can't see myself ever going back to anything over 50 keys, and will possibly wind up going smaller. If I do, I will post about it here.

My dev toolkit through the years

The NeoVim logo

TLDR; I currently use NeoVim in the Linux layer of ChromeOS for development. I recommend this setup for anyone interested in web development who has a bit of knowledge of Linux or is willing to learn. If Vim or Linux aren't for you, VSCode in the Linux layer of ChromeOS is simple to set up, and once you are done you shouldn't need to bother with knowing any Linux commands (other than for stuff like npm).

I've been doing web development at various levels for well over 20 years, mostly working through various iterations of my own site. As such, my toolchain has gone through a few iterations of tools. When I first started, I was using a Mac on System 7, later updated to a better Mac with OS8. For these, I used Claris HomePage Lite and BBEdit Lite. The lite version of Claris didn't support tables, without which "cutting edge" web development of the late 1900's was impossible. But it did make it easier to do the basics of a design, which I could then edit in BBEdit. This is how the first couple of iterations of my site were created. It was static, had no purpose, and the only part of it that mattered was the link to my LiveJournal. I alternated between IE6 (the Mac edition was easily the best browser available at the time) and iCab, a small German browser that helped introduce me to web standards. It had a small icon that showed a smiley face when a page validated, and a frown when it didn't that explained why when clicked. Trying to make iCab smile made me research web standards. This in turn led to a rabbit hole of Jeffrey Zeldman, the Web Standards Project, A List Apart, and many others. Some of the people and sites that Zeldman introduced me to, I still follow to this day.

Around 2001, I upgraded to OSX. The first version. BBEdit Lite was replaced by TextWrangler, which I used for a year or two. At some point, though, I heard about something called Vim that was available on the console, as well as in a "Mac" GUI. I ran the vimtutor and, while it took me a while to get good at it, I could immediately see that it would make text editing more productive. Vim has not left my toolkit since, though it has been supplemented a few times by tools such as Bluefish. I used Safari, and later Camino, for my browser. I enjoyed Camino so much, even though it lacked extensions, that I wrote a bookmarklet that could turn Greasemonkey userscripts into other bookmarklets. It was well-received and featured on a site that showcased the few ways to improve Camino.

I used OSX all the way until Panther, but when I read a post by Mark Pilgrim ( link as his web presence is 410 gone) it gave me pause. I had heard of Linux, of course, and had played with old versions of Red Hat before, but it wasn't really usable. I had recently heard of a new version, though, Ubuntu. Mark's post caused me to give Ubuntu a try, and I have been using Linux since 2006, in one form or another. I currently have two laptops, one running Mint and the other ChromeOS. My toolchain is the same in both: Vim (currently in the process of switching to NeoVim by symlinking the config files), git, Chrome (with Firefox and Epiphany for testing), and of course node.js and some tools for it like prettier. That's it. No visual editor, no VSCode (the last time I tried it I almost lost three weeks worth of work on my client's site). I do run a pretty customized Vim setup which I'll cover in a future post. The Linux wrapper for ChromeOS makes it a very good machine, and if the Chromebook I had did not have such a tiny, uncomfortable keyboard, it would be my preferred environment.

While my dev toolkit is small, I am always tinkering with my machines, trying out new settings and tools to make things just a fraction of a percent slicker. Normally I wind up deleting them, but this of course means that I have lots of cruft like old config files or dependencies laying around. Cleaning all this up is something I do on my Mint machine at least four times a year. It takes a day or two, and risks deleting the wrong thing. As my config files are backed up onto GitHub, however, with the Chromebook I can easily disable and reenable the Linux system to get back to square one, or even powerwash if needed. This saves me time and helps keep my system responsive. My Mint machine can cross-boot into Windows for school, and ChromeOS Flex does not support dual-booting. This is the only reason I still use any other operating system. If you currently use Linux for web development (or really anything), I recommend you look into the Linux layer of Chromebooks for your next machine instead; it increases security, simplifies a lot of troubleshooting, and for most computer usage boots nearly instantly into the browser. So long as using an OS by Google isn't a dealbreaker for you, this makes the nicest development environment I've ever used. And I've used several.


The web development tools in Chrome

There are a plethora of available web browsers in use right not, but only three rendering engines powering nearly all of them. Webkit powers Safari (including the iPhone browser), Gecko powers Firefox and its derivatives like IceWeasel, and Blink powers Chrome and all the Chromium spin-offs, including Microsoft Edge. From a web development standpoint, this means that while the more browsers you can test in the better, as long as you test in these three engines you are mostly covered (though there are obviously various versions to worry about too). As a Linux user, I use Chrome for Blink, Firefox for Gecko, and Epiphany for Webkit. However, I would love a new browser that could streamline this process.

All I want is a basic viewport and devtools, but an option in the devtools that can switch between the three engines. No other features required. All three engines are open source so this shouldn't be much of a problem. Perhaps even the ability to change the version of the engine as well.

Actually now that I think about it there used to be a Firefox extension that could switch to Trident (the old Internet Explorer engine) on Windows; i wonder if that could be modified. I know even that night be a pretty large project, and might not be possible.

If anyone is interested in creating this and wants to create a Kickstarter to fund it, let me know and I will happily contribute. Optional requirements worth more donation money:

  1. Code it in Python
  2. Release it as open source
  3. Call the browser Joshing Around (just kidding, it should obviously be called DevBrowser or something like that, I was just joshing around there)

Watermelon rinds

A partially eaten slice of watermelon

I can't be the only one who slices watermelon rinds into long thin strips, then takes the time to feed them one by one down the disposal, just to avoid taking the rind out in the trash. I can't be alone in this.

Can I?