TJKeller.xyz Unicomp EnduraPro 3D Printed Middle Mouse Button
January 13, 2025
Tags: 3d Printing Linux

Middle Mouse Emulation

The Unicomp EnduraPro keyboard lacks a middle mouse button. To compensate for this, Xorg allows you to enable middle mouse emulation. With it enabled, it allows you to perform a middle mouse click by pressing both mouse buttons at the same time.

In theory, this is a great solution. But in practice, the pointer buttons on the EnduraPro are too stiff to effectively click at once. This was especially disappointing, as I also had planned to remap the emulated middle mouse as the scroll button, the same way it is on a ThinkPad.

1
2
# enable scroll while holding left + right mouse
xinput set-prop "pointer:Unicomp Inc Unicomp 10x Kbrd R7_2_w_PS_R7_38" "libinput Scroll Method Enabled" 0 0 1

To remedy this, I decided to create a better middle mouse for the EnduraPro, utilizing my cheapo 3D printer, of course!

The EnduraPro’s new ‘Middle Mouse Button’

I wanted to design a middle button that was reminiscent of older ThinkPads. Ergonomic and stylish, but also minimal, elegant and subdued. Here is what I came up with:

The new middle mouse button on my keyboard

The button fits into place by a stem which sits in-between the two buttons, in addition to a ridge along the back side which fits into the gap behind the buttons. It doesn’t tend to move out of place, and it only needs to be ‘clicked’ back into place after repeated, violent presses of both other buttons.

Bottom Isometric

A ridge along the front provides additional leverage. My initial design simply curved along the same profile as the original buttons, but I found that misclicks were still prevalent due to the lack of pressing-force. I find this design much more attractive anyways.

Top Isometric

The buttons are in a bit of an awkward position in the first place, so designing spot for the thumb to rest was a must. The spherical nubs are mostly just to break up the rest of the design, they don’t really provide any other benefit.

Front

Overall, this design has been near flawless so far.

Download

The model is designed in FreeCAD, so it is simple to adjust the model if needed. Tolerances can differ per printer or even per keyboard. If you want to check the measurements I used, then download the FreeCAD model.

I printed this on my Ender 3 Neo at 0.1mm layer height and ironing turned on. Printed upright. Unfortunately, the way I designed this, support material is required. I usually avoid support material as much as possible, but I liked this design enough that I decided to just go with it.

If you would like to show your thanks for this great innovation, and you also happen to own a resin 3D printer, then please feel obliged to send me one of these printed with that instead! Shoot me an email if you’re interested!