Vilros made a case for the Raspberry Pi that includes a Wireless Keyboard, which sort of turns the Raspberry Pi 4 into a facsimile of an old 8-bit home computer, like a Commodore 64 or Atari 800XL. It's a pretty cute case, but I immediately saw the potential for improving it. I got a slightly-used one for $25 on ebay, and sort of felt that the keyboard was actually crappier than the standard Raspberry Pi flat keyboards in use. The implementation of Vilros's design was really poor, having way too many screws, and a method of turning on the keyboard and changing its batteries that just seemed to be too inconvenient for users to actually put up with.
My idea was to simply change the keyboard out with a wired mechanical keyboard, which was an improvement in and of itself, and since it was wired, we didn't have to worry about the complicated battery-replacement scheme that Vilros made. Plus, it's a mechanical keyboard, which is actually better looking as well as better performing.
Getting the keyboard to fit in the case was easy. All I needed was a place for the keyboard to rest that didn't interfere with how it was screwed together. I had some circuit board mounting posts left over from another project (Yeah, they're like $5 for a bag of 50!), and what I did was remove the keyboard from it's plastic case. It was connected with 8 small screws. I connected the keyboard to the posts, using the screws that came with the posts, and then test-fit it. The top of the keyboard needed to be raised, because of the slant of the case. This was easily resolved by putting small wooden risers made from shims that you get at a hardware store.
I decided to go with a Raspberry Pi with 8GB. This computer was going to be used for Linux and emulation, so I wanted great performance. Having used the 8GB model for a while now, it really handles other distributions of Linux rather well, and I've been using it as my bench computer. Based on a tip about the powered USB hub I had and powering the Raspberry Pi with a couple of wires on the GPIO, I decided to go that route. The USB Hub would provide the power to the Raspberry Pi, so instead of plugging in the USB-C cable, I'd just plug in the hub, using it's more powerful power supply, and run a USB cable to the GPIO, which would be cut and fited with the appropriate jumpers. I was even able to attach 2 small fans that fit in the case gaps perfectly.
The red plastic border around the case was a baffle I made to just hide the insides of the case from being seen through the cracks. The keyboard left a big gap on one side, and you could see wires and things under the space bar, so I added the plastic border to hide it all.
So this is the finished product. Of course, no sooner than I finished it than I decided I wanted to add more stuff to it and do things differently. I want to add an internal M.2 drive, but I also want to change video output to full-size HDMI. The micro-hdmi connection is utterly the worst, whether you're on a Raspberry Pi 4 or anything else that uses one. I want to find a new way of hooking everything up, so I can glue the micro-HDMI cable in place, to prevent it from being moved, and have the full-size HDMI port on the back.
It's going to take work to get that done -- I practically have to re-do everything.