App for simple mouse reprogramming in linux?

So I just picked up a TeckNet M009 the other day. I wanna test it, however I want more direct access to it that the dumbass CD in the packaging. Is there anything that can flash these things? I think TN is an Elecom brand, so theres something at least.


Depends what you want to do with it.

In Linux there are two software project to reprogram mice; OpenRGB (for the lights stuff) and Piper. If your specific mouse isn’t supported, chances are it will work regardless due to the regular old rebranding shenanigans and mice using the same sensors.


Wow, perfect. Will this allow me to save to the memory of the device too?

Depends on the device I’d guess. On my mouse (logitech g pro wireless) it’s possible to save to the memory (I have 4 profiles and there’s a button below to cycle the profiles… Cant remember what it was used for originally. I use different colors on the mouse to tell apart the profiles)

Possibly, but there are no guarantees, as with many Linux projects. Worth a try at the very least.

Also, I will take this opportunity to say that you should try and reach out to the piper devs, especially if the mouse is unsupported - You might not program yourself, but they’d really appreciate the help if you could even just provide the device logs for your mouse.

If you are o.k. with it and have the time, an ssh+discord session or two with a developer could perhaps even prove to be fruitful, but that is entirely up to you and whether or not you have the time and patience for it. :slight_smile:

I have legit wanted to help devs this way for years. I wanted to rent out boxes to devs over a private SSH connection or something and do comms in telegram or something. LOL.

I actually had to mess around with mouse for a while, because for some reason Piper doesn’t work with my wireless Logitech mouse.

The first thing that I did was using a combination of xbindkeys, xdotools (was it xautomation now? I forgot), and xev. xev allows you to read keyboard and mouse events, so it’s what I used to find what’s the name for the buttons I need to put in the xbindkeys .xbindkeysrc file, which can use keyboard/mouse events to trigger xdotool with any commands (for me, I use it to change scroll wheel left/right for switching tabs with Ctrl + Prior / Next (PageUp / PageDown)). So you just put in xbindkeys as an autostart program, and it’ll work.

The problem was that I eventually tried out Fedora, and xorg tools naturally don’t work with Wayland. There is ydotool and libinput via mouse-mapper but I found something better.

key-mapper is what I use these days. It has nice GUI, that can automatically detect key presses, and has some macro functionalities. While it doesn’t allow save-to-memory, it does have an auto-load function in GUI so it’ll always load the daemon on start-up.

The only issue is that it doesn’t have rotating profile switch (unless you rudimentary it with macro, alternate config files, and the key-mapper load profile which is too much hassle for me), RGB is naturally not within its scope, and no auto-profile based on window/application title (but basic support for requirement of it seems to be in the pipeline).

For that last one, apparently only autokey has it but that one is outright “let’s reprogram our mouse with actual bash and python scripts,” and is x11 only I think.

There are others, I found here: Key Remapping in Linux — 2021 Edition | by Duane Johnson | Nov, 2021 | Medium

Mouse acceleration profile probably has other utilities you need to use for it. I haven’t looked into it yet, though if you want to change from adaptive and flat acceleration as well as set mouse speed, KDE has it built-in on their System Settings. I haven’t needed to change anything yet, so I don’t know much about it, sorry. It is on the pipeline for key-mapper in the future though.

While I’m at it, there is Solaar for Logitech devices. I don’t know much beyond that it could pair and un-pair devices with the universal receiver. And for Razer I think there is OpenRazer? Never tried it, don’t own any Razer stuff.