Copyright © 2007-2008 Olli Salonen
| Revision History | ||
|---|---|---|
| Revision btnx Manual 1.4 | 2008-02-04 | |
| Revision btnx Manual 1.3 | 2007-12-05 | |
| Revision btnx Manual 1.2 | 2007-11-29 | |
| Revision btnx Manual 1.1 | 2007-10-15 | |
| Revision btnx Manual 1.0 | 2007-07-18 | |
btnx, a.k.a. Button Extension, is a program that enables you to route mouse button events as keyboard combinations and command executions. btnx-config is a GUI to used to detect your mouse and its buttons, and then edit the btnx configuration file.
This document describes the usage of btnx and btnx-config.
So you have a mouse with a bunch of buttons that do nothing. Is it time to retreat to the safe haven of MS Windows and its vendor supplied device drivers? btnx will hopefully reduce the temptation.
btnx, a.k.a. Button Extension, is a daemon that enables you to route mouse button events as keyboard combinations and command executions. btnx-config is a GUI used to detect your mouse and its buttons, and then edit the btnx configuration file. Their combination forms something like Logitech's SetPoint software, but it should work with just about any mouse.
The interface should be quite self-explanatory and littered with instructions. However, every program has its quirks and needs some explaining. This manual will hopefully leave very little undocumented concerning the usage of btnx and btnx-config.
Why isn't btnx implemented as a driver?
Once you realize that documentation should be laughed at, peed upon, put on fire, and just ridiculed in general, THEN, and only then, have you reached the level where you can safely read it and try to use it to actually implement a driver. | ||
| --Linus Torvalds, 2001 | ||
Because I like to keep my documentation _dry_.
In order to get btnx working correctly, you have to do the following in the order listed:
Start btnx.
Enjoy.
This section describes how to install and uninstall btnx and btnx-config from the source packages. Some binary packages are available on the btnx website. btnx has also been included in some distros' repositories, including Arch Linux.
Make sure you have uinput compiled into the kernel or available as a module. You can test if uinput is available as a module with the command (as root):
# modprobe uinput
Get all the necessary dependencies. btnx v.0.4.8 depends on libdaemon >= 0.10. Ubuntu and Debian users can use the following command:
$ sudo apt-get install libdaemon0 libdaemon-dev
Get the newest btnx from http://www.ollisalonen.com/btnx.
Extract the source package.
Run the following commands in the source top directory to build and install btnx (run "make install" as root):
$ ./configure $ make # make install
You can give the following parameters to the btnx configure script:
Set to the path of your system's init script directory. Default is /etc/init.d. Do not append a '/' to the path!
Set to the path of the directory where btnx configuration files are stored. Default is /etc/btnx. Do not append a '/' to the path!
Install the btnx daemon init script, but do not run any tools to register it. This is useful for package maintainers of certain distros. Default is "yes", which means the configure script autodetects update-rc.d, chkconfig, or rc-update and uses it to register the init script during installation.
Configure the init script to launch btnx with output directed to syslog. Use this if you want a relatively quiet btnx startup. It is equivalent to calling btnx -l from the command line. Default is "no".
btnx should now be installed but isn't running because it doesn't have a configuration file. You need btnx-config for this.
Get all the necessary dependencies. If your distro has apt-get and fresh enough packages for the dependencies, you can use the following command (ie. Ubuntu >= 7.04 users):
$ sudo apt-get install build-essential libgtk2.0-0 libgtk2.0-dev libglade2-0 libglade2-dev pkg-configOmit or replace build-essential if your distro packages gcc and its friends in another way. Here are the dependencies and their versions:
libglade >= 2.6.0 (ftp download)
libgtk2.0 >= 2.10.11 (download page)
pkg-config >= 0.21 (download page)
$ pkg-config --modversion gtk+-2.0 $ pkg-config --modversion libglade-2.0 $ pkg-config --version
Get the newest btnx-config from http://www.ollisalonen.com/btnx.
Extract the source package.
Run the following commands in the source top directory to build and install btnx-config:
$ ./configure $ make # make install
You can give certain parameters to the btnx-config configure script:
Set to the path of your system's init script directory. Default is /etc/init.d. Do not append a '/' to the path!
Set to the path of your system's udev rules.d directory. Default is /etc/udev/rules.d. Do not append a '/' to the path!
Do not install this manual with btnx-config.
Disable internationalization support for btnx-config.
btnx-installation prefix. The default is recommended.
If you are upgrading from btnx or btnx-config older than 0.4.7, you do not need to uninstall. However, these versions use incompatible configuration files. You will need to redetect and reconfigure your mouse.
If you are upgrading from btnx-0.2.x or btnx-config-0.1.x, make sure to uninstall them first. The file structures have changed since then and you might be left with orphaned files on your system, or an nonworking installation.
Also, if you used the install-generic target for btnx-0.2.x, you no longer need to use it. In fact, no such target exists anymore.
To uninstall either btnx or btnx-config, run the following command in the extracted source package directory as root:
# make uninstallUninstalling btnx-config will not affect your btnx configuration.
Installing btnx and btnx-config should have created a menu entry in your system. GNOME users can find it under . In KDE, the menu item is located at . Click on it to start btnx-config.
If, for some reason, the menu entry doesn't exist or the program doesn't start, try starting btnx-config from the command line as root:
# btnx-config
You might get some warning messages, but don't worry about them if the program works. If you get errors and the program doesn't work, see the Troubleshooting section.
Once btnx-config has started correctly, the window below is shown.

btnx-config startup screen (as seen in GNOME)
At this point, no mouse or buttons have been detected. You will have to detect them before defining their functionality (see "Detecting the mouse" and "Detecting buttons" sections).
This section describes how you can detect your mouse with btnx-config.
You can start the mouse detection by pressing the button at the Configuration Manager window of btnx-config. If you haven't detected your mouse yet, it will open the mouse detection window.
Press the button.
Wait until told to move your mouse.
Move your mouse and press all its buttons.
Press
To start the mouse detection, press the button. At this point, do not interact with any of your input devices. This means, do not move your mouse, press its buttons, press any keyboard buttons, etc. After a couple of seconds, you are told to move your mouse.

btnx-config mouse detection
Now, move your mouse. btnx-config should have detected your mouse. The Detected handlers should have increased to one, and the Vendor ID and Product ID labels should have been set to something other than 0x0000.

btnx-config mouse detection complete
Make sure to press each button on your mouse. This isn't necessary for most mice. However, some mice, like the Logitech MX Revolution, have additional handlers for some buttons. All these handlers must be detected in order for those buttons to work correctly.
You can press the button to stop the mouse detection, or press to proceed to the next step. You can also stop the mouse detection and revert all changes by pressing . Another way is to stop the mouse detection and start it again.
When you are done detecting the mouse, press to go to the button detection phase. If you press , all changes are discarded and the detection wizard closes.
If you encountered any errors or problems during the mouse detection, refer to the Troubleshooting section of this manual.
If you get the "Device ID conflict detected" error window as seen below, refer to the Device ID conflict section in Troubleshooting.

btnx-config device ID conflict
This section describes how you can detect the buttons on your mouse.
You must detect your mouse buttons with the button detection wizard in order to define functionality for them.
Press the button.
Press a single mouse button until the progress bar is full.
Give the button a name.
Press the button to save the button.
Repeat until you have detected all your buttons.
Press to finish.
To start the button detection, press the button. Now, press a single button until the detection progress bar is full.

btnx-config button detection in progress
The status should change to "Button detected!" and the "Button name" entry should be enabled. Enter a name for that button. It doesn't matter what you name the button. It is only for your convenience so you can easily identify what button you are editing later.

btnx-config button detection complete
Once you have entered a name for the detected button, press to save that button. You can now press to detect another button. Detect all your mouse buttons, or at least the ones you want btnx to handle.
When you are done detecting your buttons, press to finish detection and save all detection information.
You can press to undo all changes and exit the wizard.
If you ran into trouble during the button detection, refer to the Troubleshooting section.
If you get the "Button detection problem" error window as seen below, refer to the "Button detection problem" section in Troubleshooting.

btnx-config button detection problem
btnx-config-0.4.0 introduced support for multiple configurations. This means you can create many different configurations for your buttons, and switch between them with the press of a mouse button. You can also backup and restore your configurations. The screenshot below shows btnx-config's Configuration Manager tab with a few defined configurations.

btnx-config's Configuration Manager
The left half of the screen is for managing configurations. The list shows all the configurations, their priorities, and which one is open. The '*' in the Open column specifies which configuration is currently open and being edited. You can open a configuration from the list by double clicking it. The priority numbers are for ordering the configurations. The configuration with priority 1 will start by default when btnx is launched. The order of the configurations will be significant if you bind a button to switch to a next or previous configuration.
Below is a list of the configuration manager buttons and their functionalities:
This button creates a new configuration. If you have a previous configuration open, btnx-config will prompt you whether you would like to copy the current configuration into the new one. If you select , a new empty configuration will be created. If you select , all values from the current configuration will be copied into the new one, including the detected mouse, it's buttons and their settings, and revoco settings.
This button deletes the selected configuration.
This button moves the selected configuration up in the list and increases its priority.
This button moves the selected configuration down in the list and decreases its priority.
This button backs up all the btnx configuration data and settings. It will prompt you for a location and filename where to store the backup archive. You can choose any name and extension.
This button restore all the btnx configuration data and settings from a backup archive. It will prompt you for the location and filename of the backup file. Note that it will delete all current configurations.
The right half of the screen is for managing to currently open configuration. Here you can edit the current configuration name, detect the mouse and its buttons, and restart btnx. Note that pressing the button restarts btnx with the currently open configuration.
For more detailed information on mouse properties, see the "Property reference" section.
The mouse properties section contains some information about your mouse. The Vendor and Product IDs should have been set to some hexadecimal value other than 0x0000 after the mouse detection. The Vendor and Product text entries are optional. You can fill them with the manufacturer name, ex. Logitech, and product name, ex. MX Revolution. These don't affect functionality, but could be implemented in future versions of btnx when it will possibly handle multiple input devices.
This section describes how to configure the buttons detected by btnx-config. You must first detect your mouse and buttons before configuring them. See the sections "Detecting the mouse" and "Detecting buttons". The screenshot below shows btnx-config with a configured mouse and buttons.

btnx-config with configured buttons
The list on the left side of the btnx-config window contains all the buttons that have been detected. You can choose a button to edit by pressing on its name in the list. If you double click on the name, the button will be expanded, and its properties will be visible on the list.
For more detailed information on button properties, see the "Property reference" section.
First, make sure to check the Enabled check-box if you want btnx to handle that button. If you don't enable a button, btnx will do nothing when you press it.
The Name field is set to whatever you named that button during button detection. You can rename it if you want.
The Event type field is set to either "Keyboard combination", "Configuration switch", or "Command execution", depending on what you want that button to do.
You can set Repeat delay to a value greater than zero if you want btnx to block additional clicks from that button within a certain time frame.
You can enable the Force immediate button release setting if you want btnx to release the button immediately after pressing it. This means you will not be able to hold the button down, but it will help if your button seems to get stuck down occasionally.
If you set the Event type to "Keyboard combination", you have to choose at least a Keycode value for that button. This is the key that is sent by btnx when you press that mouse button. You can also define up to three modifier keys for that keycode, so you can send combinations like Ctrl+Alt+Left.
If you set the Event type to "Configuration switch", you have to choose how the switch is made. You can either switch to a next, previous, or specific configuration when pressing the button.
If you set the Event type to "Command execution", you have to fill in the Execute command field with the shell command that you want to send. You also have to set the Process UID to a valid UID (User Identification), preferably your own. The UID determines what user executes the command, and what privileges the subsequent process has. If you leave it to zero, the commands will be executed as ROOT.
You can delete a button by pressing . You will need to detect it again if you want to use the button after deleting it.

btnx-config command execution configuration
This section describes the possible settings for revoco. revoco is a program written by Edgar Toernig's bonobo that allows MX Revolution mouse users change their mouse wheel behavior. The settings are disabled if an MX Revolution mouse has not been detected by btnx-config. The screenshot below shows btnx-config with the revoco settings tab open.

btnx-config revoco settings
To enable revoco, you must check the checkbox. The possible settings are listed and described below:
This mode places the mouse wheel in permanent free-scroll, where the mouse wheel rotates frictionlessly. This also allows you to use the mouse wheel-press as a button. It's also possible to detect the button with btnx-config and bind it to other key combinations.
This mode places the mouse wheel in permanent click-to-click mode, where the mouse wheel rotates like normal mouse wheels. This also allows you to use the mouse wheel-press as a button. It's also possible to detect the button with btnx-config and bind it to other key combinations.
This mode allows you to change between the free and click-to-click mode with different mouse buttons. You must enter the number of the button into the Button number entry. The default is 3, which is the mouse wheel-press button. This is also the default mode of the MX Revolution mouse. The button numbers and their names are listed below (buttons 1 and 2 cannot be used):
3 - middle (wheel) button
4 - rear thumb button
5 - front thumb button
6 - find button
7 - wheel left tilt
8 - wheel right tilt
9 - side wheel forward
11 - side wheel backward
13 - side wheel press
This mode automatically changes the scrolling from click-to-click to free-scrolling when you spin the mouse wheel above a certain threshold. It also changes back to click-to-click when you spin the mouse wheel at a speed less than the threshold. Enter the value of the threshold into the Up scroll speed and Down scroll speed. They set the thresholds for up and down scrolling directions separately.
You can press the button to see the changes immediately.
This section gives more detailed information about the configuration properties you can set in btnx-config.
Optional. The name of the manufacturer of the mouse.
Optional. The model name of the mouse.
Uneditable. A 16-bit hexadecimal value, identifying the manufacturer of your mouse. This is set automatically when detecting your mouse with btnx-config.
Uneditable. A 16-bit hexadecimal value, identifying the model type of your mouse. This is set automatically when detecting your mouse with btnx-config.
If the Enabled check-box is checked, btnx will generate the event you define when pressing that button. btnx will ignore that button if you leave it unchecked and will do nothing when you press the button. Always check this value first if a button isn't working.
Required. This is the name of the button. You need to set it to something. It doesn't matter what you name your buttons, but you should give it an easily recognizable name so you know what button you are editing.
Required. This is the type of event sent by btnx when pressing a button. You can define two different types of events.
Sends a key combination. A key combination can be a keyboard or mouse button combined with up to three different modifier keys.
Executes a shell command. You can execute any binary or script file that has execution privileges. You must define a UID for the command.
Required. This is the amount of delay, in milliseconds (1/1000 of a second), that must pass before btnx will allow the button to send another event. This is especially useful for mice that have very sensitive buttons and easily send multiple clicks at once.
You can leave this field to 0 milliseconds if your button isn't too sensitive.
Recommended values for sensitive buttons is 200-400 milliseconds, depending on your needs.
Optional. Enabling this property will force btnx to release the button as soon as it's pressed. This means you will not be able to hold down the button.
Use this option if your button seems to get stuck down until you press it again.
Required. This property can only be set if the Event type is set to "Key combination".
This is the key or mouse button that is sent by btnx when you press the mouse button. The list of keycodes is huge, and not all might be handled by your window manager.
![]() | The keycodes starting with KEY_ are keyboard keys. The keycodes starting with BTN_ are mouse buttons. |
Optional. This property can only be set if the Event type is set to "Key combination".
You can define up to three modifier keys to accompany a keycode, or none at all. Modifier keys are buttons such as Ctrl, Alt, Shift, etc. This allows you to send keyboard combinations such as Ctrl+Alt+Left.
![]() | KEY_LEFTMETA is the Start start key. KEY_RIGHTMETA is the Menu key. |
This property can only be set if the Event type is set to "Configuration switch".
This option makes btnx switch to the next configuration in the Configuration Manager list when the selected button is pressed. If the current configuration is the last one, btnx will switch to the first configuration.
This property can only be set if the Event type is set to "Configuration switch".
This option makes btnx switch to the previous configuration in the Configuration Manager list when the selected button is pressed. If the current configuration is the first one, btnx will switch to the last configuration.
This property can only be set if the Event type is set to "Configuration switch".
This option makes btnx switch to the configuration selected in the drop-down box next to this radio button.
Required. This property can only be set if the Event type is set to "Command execution".
This is the shell command to execute when you press the mouse button. You must first specify the full path of the file to execute, followed by any number of arguments.
Required. This property can only be set if the Event type is set to "Command execution".
This is the UID (User Identification) of the user that executes the command. You should set this to your own UID.
![]() | If you leave UID to zero, the process will run as ROOT. This could do damage to your system. Use root privileges only if you really need to. Then, ask yourself once more why you need to run as root. |
Uneditable. This property is not visible in the button property frame, and can only be seen during a button detection conflict or in the button list.
Rawcode is a 32-bit hexadecimal value that is sniffed from an input device event handler stream. It distinguishes the different buttons. It is automatically bound to a button during button detection and cannot be changed. You will manually have to choose a rawcode to bind to a button during a button detection problem.
This section describes the advanced settings in btnx-config.
This enables hot-plugging for btnx. This means, that when you plug in your mouse while your system is running, btnx starts automatically. This is done by an udev rule. It also starts btnx automatically when you wake up the system from standby. It is recommended that laptop users use this option because btnx quits everytime you put your computer to standby or unplug the mouse.
This adds the WAIT_FOR_SYSFS option to the udev rule generated by the Enable hot-plugging setting. Try it if you have trouble with hot-plugging. However, it usually creates more problems than it solves.
This section contains useful tips to troubleshoot btnx problems.
Usually, previous hacks at the input interface to get a mouse working causes problems for btnx. You should revert all those changes if you experience problems with btnx. If you have trouble remembering what you changed, this section provides some good default values that might work for you.
If you are getting multiple and identical events during one button press, check this section first. The list below gives some possible reasons and solutions to the problem.
The button could already be recognized and handled by X. You can confirm this by running xev (see "Running xev") without btnx. A possible solution is to edit your xorg.conf file's mouse InputSection. Refer to this section for a working xorg.conf InputSection.
If you are using a mouse that has Cruise Control or Smart Scroll functionality, lomoco might help. See the troubleshooting section on lomoco.
Remove any custom udev rules that you have made for the mouse.
If the solutions above didn't work, you could try using xmodmap to map the buttons to harmless button numbers. First, use xev (see "Running xev") to find out what extra mouse button number is sent. Then, use xmodmap (see "xmodmap") to change the number to a higher one. The higher button numbers usually aren't handled by window managers, so nothing extra happens when they are called.
A couple of possible solutions:
Make sure your mouse is recognized as a USB input device. See this part for more info.
Remove any custom udev rules that you have made for the mouse.
It's possible that some buttons use a different event handler than the mouse itself. You must press each button on your mouse during mouse detection to ensure that all event handlers have been detected.
You might have incompatible settings in your xorg.conf file (see xorg.conf section). If you are using the evdev driver, you are certain to run into problems.
If you have mouseemu installed, try removing it.
This error means that mouse detection detected more than one input device. btnx only supports a single input device at a time, currently. btnx-config uses Vendor and Product IDs to identify different input devices.
Make sure you only use your mouse during mouse detection. Do not press any keyboard buttons. If you have multiple mice, only move the one that you want detected. Do not interact with any other possible input devices.
If your mouse has multiple event handlers and each uses a different set of Vendor and Product IDs, then btnx cannot help you. If the problem happens when you press a certain button, then leave that button alone and do not use it with btnx.
There are a couple of possible solutions.
You pressed multiple buttons during button detection. Close the error window by pressing and try again. Only press a single button repeatedly during detection.
You tried to detect a previously detected button. The "Already assigned" column is set to "Yes" for that button in the error window. Close the error window by pressing and try a different button next time.
Your button sends multiple events when pressing it. This true for mice with SmartScroll or Cruise Control and lomoco can fix the problem (see "Installing lomoco"). If you don't want to use lomoco, or lomoco won't help with your mouse, use the following steps:
Bind the button to a certain rawcode suggested by the error window by selecting a row. You should choose the one with the most Clicks. You can only use entries which have their Already assigned field set to No. If it's set to Yes, the rawcode has already been detected and bound to a certain button.
Click to confirm the selection and close the window.
Configure and test the button.
If the button doesn't behave correctly, use the button in the button configuration window to remove the button. Then, detect the button again and try binding it to a different rawcode. Rinse and repeat.
Make sure you have checked the Enabled check-box in btnx-config for every button that you want btnx to handle.
Make sure you have restarted btnx after making any changes to the configuration file. Either press the in btnx-config or run the following command in your terminal:
$ sudo /etc/init.d/btnx restart
It could be a problem with the btnx executable. First, stop btnx from command line and run it from the command line to see its output. Look for any errors.
$ sudo /etc/init.d/btnx stop $ sudo btnx
Try enabling the Force immediate button release setting in the General button properties group.
This could also be a sensitivity problem with your mouse, or not. In any case, you should increase the delay value for that button in btnx-config (see Delay property). This will prevent the button from sending multiple events in a certain time frame.
Also, make sure only one btnx process is running at a time.
If you are upgrading from btnx-0.2.x, make sure you uninstall it first before installing the new version of btnx. Also, make sure you are not using the old (pre 0.3.0) configuration files. They no longer work.
Make sure you have enabled hot-plugging in the Advanced settings (see Enable hot-plugging). It is possible that btnx will not start correctly after standby if you have the WAIT_FOR_SYSFS setting enabled.
Disable the WAIT_FOR_SYSFS setting. If you do not need hot-plugging, you can also disable that setting. (see Enable hot-plugging)
Most problems with btnx arise from different xorg.conf InputSection settings. You want xserver to handle as little from the mouse as possible, the most fundamental behavior aside. In essence, you want to downgrade your xserver functionality in connection to the mouse. This is sometimes necessary, because btnx cannot stop xserver from handling mouse button events if it wishes to do so. You will then get multiple events, often with xserver doing what you don't want.
Most user's have found that changing the Driver, Protocol, and Device options to the reference values below has fixed their problems. Most importantly, make sure you are not using the evdev driver.
![]() | Laptop users should not edit their Synaptics touchpad settings. |
![]() | Do not blindly copy the example below. Changing the Identifier in your xorg.conf might lead to an xserver startup failure. |
![]() | Make sure you know how to edit the xorg.conf file. Make a backup of it before editing. You should know how to recover the backup file and restart from the command line in case you run into trouble. |
Below is a working xorg.conf InputSection. Try to make yours look like it as much as possible, but don't change the Identifier value.
Section "InputDevice"
Identifier "Mouse0"
Driver "mouse"
Option "Protocol" "auto"
Option "Device" "/dev/psaux"
Option "ZAxisMapping" "4 5"
EndSection
You may also try to use /dev/input/mice for the Device option.
You can edit your /etc/X11/xorg.conf by running the following command:
$ sudo gedit /etc/X11/xorg.confSave all your work and press Ctrl+Alt+Backspace to restart X. This will close your programs and your desktop!
Install xev if you don't have it. Run xev by typing
$ xevThen, press the button which is giving you problems. For example, pressing the left mouse button outputs something like the following:
ButtonPress event, serial 29, synthetic NO, window 0x5000001, root 0x137, subw 0x0, time 1050685211, (163,11), root:(173,108), state 0x10, button 1, same_screen YESNote the button number, button 1, reported by xev. The number will depend on the button you press.
You can also use xev to check whether btnx is sending the correct keys when pressing a mouse button. In this case, look for a keysym value.
xmodmap can be used to change the behavior of a button in X. This is sometimes useful for buttons that are interpreted by xserver and sending an event. A common problem is that a button also sends a right click, opening up a menu.
Use xev (see "Running xev") to find out what button number is being sent. Now, bind that button number to a higher one, one that is not handled by your window manager. Let's say a certain mouse button also sends a button number 6. The following shell command tells X to send a button 9 when it wants to send a button 6 event.
$ xmodmap -e "pointer = 1 2 3 4 5 9 7 8 6"Note, that 6 and 9 have changed places. If that doesn't work, try switching to another number, like 8 or 7. Now, add the line that worked for you in your ~/.Xmodmap file. Using the previous example, you would add the following:
pointer = 1 2 3 4 5 9 7 8 6This will make the change persist on reboots.
lomoco is useful if your mouse wheel sends extra button events when scrolling. Another problem is mice with Cruise Control. Some buttons might give multiple events when pressing them. Here are tim71's instructions for installing and using lomoco.
Install lomoco. If your system uses Debian packages and apt-get, you can probably get it by running
$ sudo apt-get install lomocoIf your system doesn't have binary packages (deb or rpm) for lomoco, you can find the sources at http://lomoco.linux-gamers.net/.
Run the following command to disable SmartScroll/Cruise Control:
$ sudo lomoco --no-sms
Tell your system to start lomoco during boot with the --no-sms. You should consult your distro's sources of help on how to do this. However, the following should work for most users. Add this line into your /etc/rc.local immediately before the line "exit 0".
lomoco --no-sms
btnx might not work correctly if your mouse is not recognized as a USB input device. Make sure you aren't using a USB->PS/2 adapter with your mouse. You can check that the mouse is reported as a USB device with the following command:
$ cat /proc/bus/input/devicesNow, find the section that refers to your mouse. The section should look something like this:
I: Bus=0003 Vendor=046d Product=c51a Version=0111 N: Name="Logitech USB Receiver" P: Phys=usb-0000:00:02.0-4/input0 S: Sysfs=/class/input/input182 H: Handlers=mouse2 ts2 event4 B: EV=7 B: KEY=ffff0000 0 0 0 0 0 0 0 0 B: REL=143Check that the line starting with "P: Phys=" contains the word "usb". You can also check the output of that file to see if btnx registered correctly as an input device. Look for a section with Vendor=b216.
If you went through this troubleshooting section and didn't find a solution to your problem, you can then contact me, the developer, directly. You can also post your problem or question on the btnx thread at the Ubuntu forums. I try to check on it as often as I can.
Email: Olli Salonen <oasalonen@gmail.com>