LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Slackware (http://www.linuxquestions.org/questions/slackware-14/)
-   -   Slackware 11.0 - Mouse Thumb Buttons (http://www.linuxquestions.org/questions/slackware-14/slackware-11-0-mouse-thumb-buttons-538387/)

Erik_FL 03-17-2007 08:57 PM

Slackware 11.0 - Mouse Thumb Buttons
 
After upgrading to Slackware 11.0 I discovered that my previously working Thumb buttons for my Intellimouse Optical were no longer working. The problem was due to changes in X-Windows.

Here is the solution to the problem.

This is the same as before and also works for Slackware 10.2. In "/etc/X11/xorg.conf" put the following mouse definition.

Code:

    Identifier        "Mouse1"
    Driver        "mouse"
    Option "Protocol"    "ExplorerPS/2"
    Option "Device"      "/dev/mouse"
    Option "Buttons" "7"
    Option "ZAxisMapping" "6 7"

The important things are the "Protocol", "Buttons" and "ZAxisMapping".

This is different in Slackware 11.0. Create or edit the file "/etc/xprofile" so that it contains the following.

Code:

# Map buttons for Intellimouse
xmodmap -e "pointer = 1 2 3 8 9 4 5 6 7 10 11"

For older versions of Slackare you need a different order for the button numbers, and you don't define 11 buttons.

You can create a ".xprofile" file in your home directory to accomplish the same thing. NOTE: It appears that BOTH files will be executed, so creating an empty ".xprofile" in your home directory does not prevent "/etc/xprofile" from correctly mapping the buttons. If you have an "xmodmap" in both places, the one in ".xprofile" executes last, and has precedence.

Some documentation refers to other files such as ".xsession" or "Xsession". In my experience neither of those is executed for a KDE graphical logon.

If you would like to use imwheel here is the command to load it.

Code:

# Mouse button macros
imwheel -k -b "4567"

Add the above command to ".xprofile" in your home directory.

You also need a ".imwheelrc" file in your home directory with any macros that you want.

Code:

"^Mozilla-bin$"
,        Up,        Button4
,        Down,        Button5
,        Left,        Alt_L|Left
,        Right,        Alt_L|Right

# Pass through mouse events for everything else
".*"
@Exclude

The mouse wheel will generate "Up" and "Down" events, and the thumb buttons will generate "Left" and "Right" events.

The only simulated button clicks that I have been able to get to work with imwheel are "Button4" for Wheel Up and "Button5" for Wheel Down. The Thumb buttons apparently can't be simulated with macros. For example, you can't reverse the Thumb buttons with a macro, but you can map the Thumb buttons to keyboard macros that accomplish the same thing. Although you can't simulate Thumb buttons you can pass them through unchanged if you don't refer to them in a particular macro definition.

One thing that I found confusing at first is that "Left" and "Right" refer to the Thumb button clicks coming into imwheel, but refer to keyboard keys going out of imwheel.

j79zlr 03-18-2007 02:52 AM

There is a simpler solution.

Remove

Option "Buttons" "7"
Option "ZAxisMapping" "6 7"

From xorg.conf and remove the xmodmap command.

Use imwheel -k -b "89"

And your .imwheelrc should be

"(null)"
None, Button4, Alt_L|Left
None, Button5, Alt_L|Right

".*"
None, Button4, Alt_L|Left
None, Button5, Alt_L|Right

Erik_FL 03-18-2007 09:00 PM

Quote:

Originally Posted by j79zlr
There is a simpler solution.

Remove

Option "Buttons" "7"
Option "ZAxisMapping" "6 7"

From xorg.conf and remove the xmodmap command.

Use imwheel -k -b "89"

And your .imwheelrc should be

"(null)"
None, Button4, Alt_L|Left
None, Button5, Alt_L|Right

".*"
None, Button4, Alt_L|Left
None, Button5, Alt_L|Right

Thanks for the suggestion. That solution requires the use of imwheel. I prefer not to depend on imwheel. In fact I have recently removed it because I suspect it may be causing some system hangs.

j79zlr 03-20-2007 11:09 PM

I'm confused, in your original post you have your imwheel command and .imwheelrc?

I don't think it causes any system instability, I have used it for literally years on both linux and freebsd without issues.

Erik_FL 03-20-2007 11:43 PM

I posted the information on imwheel mostly because I was curious how to make it work with the new version of X-Windows. I had a lot of trouble configuring it and the mouse on Slackware 10.2. I don't actually need imwheel or use it at the moment.

I have been slowly eliminating things from my Linux system because it randomly hangs. I'm running the 2.6.17.13 kernel supplied with Slackware 11.0. If I have a lot of trouble I'll probably go back to the version 2.4 kernel.

I want to use the 2.6 kernel because I can only use a proprietary driver for my Promise RAID controller with version 2.4. Version 2.6 supports it using the "sata_promise" driver and "dmraid". I did have to change the "sata_promise" driver to support the PATA port since I have a RAID 0+1 configuration. Some distros have that change in the driver, but unfortunately not Slackware nor the "standard" Linux source code.

I have a lot more confidence in the Linux driver (even with the PATA mod) than the one written by Promise. Promise is uninterested in updating their driver to support 2.6 and don't give out complete source code. Even so, I did a bit of looking the code and the Linux 2.6 driver model changes. I concluded that it would require a lot of work to update the Promise driver if it was even possible without the complete source code. I have never written any Linux drivers so it would be a difficult project for me. I've written VAX/VMS and RSX-11M drivers as well as some for embedded operating systems.

After removing imwheel I haven't used Linux long enough to know if it's causing the problem. So far what I've removed is the SMP support and the preemption of the kernel. Neither of those solved my problem. The system usually seems to hang just when I move the mouse pointer. It has hung other times, such as shutting down X-Windows. In one case the keyboard interrupt was apparently working and in another case it was not.

I've had problems with the Microsoft wheel mouse because when it wears out it stops between mouse positions and can generate a continuous stream of mouse events. On Windows that causes a long pause. I'm not seeing that problem on Windows, but it's possible my mouse could be getting to the point where it's causing problems.

I was hoping to get a stable Linux system. On Slackware 10.2 KDE kept randomly crashing even after I upgraded to the latest release. That happened with the 2.4 and 2.6 kernel but only caused an error report from KDE, not a hang. With Slackware 11 I haven't seen the KDE problem, and the 2.4 kernel didn't hang. My testing with the 2.4 kernel was limited.

I do embedded software development and Linux has been very helpful for a number of reasons. I mostly use Windows development tools though. I've been slowly trying to learn to use Linux and get the majority of my personal computer activities working with Linux. I may end up with the reverse of the usual situation, with Windows for my work operating system and Linux for my personal OS.

What got me interested in Linux was the many time's that I've found helpful information about hardware behavior and programming requirements by looking at Linux source code. Sometimes that's the only easy way to get the information. I would really like to understand more of the Linux internals. I'm more comfortable with the Windows internals because it's very similar to VAX/VMS.

OMG I am rambling...


All times are GMT -5. The time now is 06:13 PM.