This design was inspired by the death of my preferred gamepad, the Ideazon Fang. None of the currently available gamepads have the features or price to suit me. It is designed to use Cherry MX style keys. I used gateron clear keys, but there are many options choose the style you like best. The top and bottom are held together with 20mm long 3mm screws.
Print with 3 or 4 walls and no support. Support is designed in. The support for the side openings is easily removed and there is a thin layer in the countersunk holes which can be drilled out or even just pushed through.
Test pieces are provided to test the fit of your parts. The switches push in from the top and should snap into place. They can pull out however, and if this is a problem, they can be fixed into place with hot glue.
"Top.stl" uses cheap 3mm inserts from ebay. "Top No Inserts.stl" allows you to just screw the 3mm screws directly into the plastic. This is probably strong enough but this file is untested. "Bottom Dual Side.stl" has buttons on both sides for a 39-key variant.
The CAD files are available on Onshape
Accompaning firmware and build instructions are available on github
Information is also available on hackaday