Linux Mint problem with mouse buttons

Joined
Sep 24, 2005
Messages
1,010
Location
Indiana
I'm continuing on my quest to find a simple (or at least straightforward) way to program additional mouse buttons. I have a logitech trackman which has 5 buttons + wheel. In Mint (or other distros I've trief) it only seems to support left and right buttons and wheel up/down.

I've looked into it a bit and only found two solutions: 1) a program that looked promising but only supported a limited number of mice (and mine wasn't), and 2) some somewhat convoluted way to bind or intercept the input codes. I have very limited experience with linux command line operations, mostly just blindly following search results fron stack overflow.

Hard to believe there isn't wide support for full functionality of expanded mouse functions (?). Also, as I understand it logitech doesn't really support linux. With so much emphasis on "gaming" these days, there has to be a way to use the additional buttons. Just FYI my trackman has left, right, wheel button, and 2 buttons on the side along with the normal wheel rotation (and of course the ball for cursor motion). The model is M570.

If anyone has a quick solution off the top of their head I'd like to hear it.
 
I use the Logitech Ergo trackball with my Linux machines. Built-in Linux tools handle everything I need. Xbindkeys to map each button to whatever I want it do to, and imwheel to control how sensitive the middle button scrolling is.
For example, this .xbindkeysrc file makes one of the side buttons a ctrl-click, the other a shift-click, and the middle a double-click. The buttons will vary from device to device, so you can use "xev" to figure out their number assignments.
# Button 2 (scroll wheel) is double-click
"/usr/bin/xte 'mouseclick 1' 'usleep 40000' 'mouseclick 1'"
b:2 + Release

# Button 9 (upper left alternate) is control + left click
"/usr/bin/xte 'keydown Control_L' 'mousedown 1' 'usleep 40000' 'mouseup 1' 'keyup Control_L'"
b:9 + release

# Button 8 (lower left alternate) is shift + left click
"/usr/bin/xte 'keydown Shift_L' 'mousedown 1' 'usleep 40000' 'mouseup 1' 'keyup Shift_L'"

b:8 + release
 
So, like most Linux stuff, it can be done but it's nearly impossible to learn the language and how to apply it.
Plenty of hardware is not supported, but some distros are better than others.
 
So, like most Linux stuff, it can be done but it's nearly impossible to learn the language and how to apply it.
...
You say toMAYto, I say toMAHto.
The way I see it, it's much better than Windows or mac. With Linux, the system itself supports everything you need to customize. Plug and play with no need for any vendor's proprietary drivers to pollute your system. No matter what device you have, you configure it in the same way with the same tools. That also means you only need to learn one system, and use it to customize any pointing device. And you can do any customization you want, not limited to ones that any particular manufacturer decided to include, or not include, in their driver.
 
Last edited:
You say toMAYto, I say toMAHto.
The way I see it, it's much better than Windows or mac. With Linux, the system itself supports everything you need to customize. Plug and play with no need for any vendor's proprietary drivers to pollute your system. No matter what device you have, you configure it in the same way with the same tools. That also means you only need to learn one system, and use it to customize any pointing device. And you can do any customization you want, not limited to ones that any particular manufacturer decided to include, or not include, in their driver.
So why was the example given above written using terminal commands?
At any rate, I'm writing this using UBUNTU (22) and sure, it works great. But if I go looking for a video card or wifi adapter, it better say Linux compatible on it.
Oh yeah, and all of my mouse buttons and other wireless stuff work just fine, I just don't try to push the bleeding edge mouse! ;)
 
So why was the example given above written using terminal commands?
At any rate, I'm writing this using UBUNTU (22) and sure, it works great. But if I go looking for a video card or wifi adapter, it better say Linux compatible on it.
Oh yeah, and all of my mouse buttons and other wireless stuff work just fine, I just don't try to push the bleeding edge mouse! ;)
That is kind of the problem. I use the same trackball in Windows and I can install a free program called X-mouse button control, allowing easy customization out the wing-wang. That's the kind of thing I'm hoping to find, but it's looking unlikely. I asked here since there are several linux users and it's a good forum (opposed to SF, where any question is often answered by "why do you want to do that, that's not the way to do it", lol.

Honestly, it seems like there is always one hardware issue that prevents me from considering using linux as a main OS. If I was as proficient at linux command line operators like I was with DOS back in the day it would be a no-brainer but I'm not. I recognize the benefits to linux distros but IMO it is not simply an alternative OS for the general public.
 
So why was the example given above written using terminal commands?
...
Because terminal commands are a good way to configure things. I plug this Linux laptop into several different monitors and pointing devices. I configure each the way I want, and when I plug them in the system automatically detects what was plugged in (monitor, pointing device, whatever) and instantly runs the appropriate script to set it up how I want. It is a more plug and play, hassle-free experience than I had with Windows.

Sure, to do it I had to write udev rules and bash scripts with tools like xrandr and xbindkeys. But that's not hard. And the configuration is stored in text files, so I can easily back it up and edit it. With Windows, the configuration is stored where? Yeah, exactly. Good luck finding it, backing it up, editing it, making different configurations for different monitors and pointing devices plugged into the same ports, with different drivers that conflict with each other, etc. And if you do figure all that out, the next version of Windows will change it all and you lose everything.
 
So why was the example given above written using terminal commands?
At any rate, I'm writing this using UBUNTU (22) and sure, it works great. But if I go looking for a video card or wifi adapter, it better say Linux compatible on it.
Oh yeah, and all of my mouse buttons and other wireless stuff work just fine, I just don't try to push the bleeding edge mouse! ;)
Terminal commands are found a LOT when trying to provide support for Linux-based OS's. The answer should be obvious why: Terminal commands are desktop-agnostic. How is someone in such a configurable and customizable system supposed to tell you where to click? Are you using Gnome? KDE? XFCE? MATE? Cinnamon?... Ubuntu? Fedora? Arch? What version? There is no feasible way for anyone to tell someone how to configure a mouse, for example: It is done differently with different desktop environments and even different distros with the same desktop environment. But the command line is the command line, for the most part.
 
Because terminal commands are a good way to configure things. I plug this Linux laptop into several different monitors and pointing devices. I configure each the way I want, and when I plug them in the system automatically detects what was plugged in (monitor, pointing device, whatever) and instantly runs the appropriate script to set it up how I want. It is a more plug and play, hassle-free experience than I had with Windows.

Sure, to do it I had to write udev rules and bash scripts with tools like xrandr and xbindkeys. But that's not hard. And the configuration is stored in text files, so I can easily back it up and edit it. With Windows, the configuration is stored where? Yeah, exactly. Good luck finding it, backing it up, editing it, making different configurations for different monitors and pointing devices plugged into the same ports, with different drivers that conflict with each other, etc. And if you do figure all that out, the next version of Windows will change it all and you lose everything.
Yeah, good luck finding udev rules and bash scripts, let alone how to use them.
Linux has done a good job of making distributions easy to install by the average person (me) but an awful job of telling people how to use terminal etc.
Don't get me wrong here, I like it a lot better than any windows for a variety of reasons. But it was a whole lot easier to use windows and even DOS commands like the OP says. and, your exactly right, too many versions for anyone to help you with most issues.
Even the help boards are no help. Most questions go unanswered.
 
Back
Top