X-Mouse Button Control is a free Windows utility for remapping mouse buttons and the scroll wheel. It runs alongside the existing mouse driver rather than replacing it and sits in the system tray. It changes what each button does depending on which program or window the pointer is over. It is an independent hobby project and is not tied to any mouse or trackball manufacturer.
Profiles that follow the pointer
The settings window holds a list of profiles. A default profile applies everywhere, and further profiles target specific programs. You can build a process profile by picking a running application, browsing to an executable, typing a process name, or listing several processes at once. When the mouse moves over a matching application, X-Mouse Button Control switches to its profile automatically. The list highlights the active profile.
Matching can be narrower than a whole program. A Find Window tool, dragged onto a window, reads its internal class and caption. This lets a profile apply only to one panel or control inside an application. You can match captions and class names with regular expressions. You can also limit a profile to a region of the window, such as one quadrant or a custom rectangle like the title bar. Profiles can be exported as files and imported again.
Layers inside each profile
Each profile holds up to ten layers. Each layer contains a complete set of assignments for nine controls: left, right and middle buttons, the two side buttons, wheel up and down, and tilt left and right. You can switch layers with global hotkeys, from the tray menu, by a mouse button, or by a modifier key. The modifier key keeps a layer active only while you hold it. A layer can also revert to the previous one after a set time.
What a button can do
Every control gets an action from a long list: copy, cut and paste, media playback and volume, brightness, window commands such as minimize, maximize and snap, virtual desktop switching, print screen or print active window, and launching a program or opening a folder.
The simulated keystrokes editor sends any key or sequence, using tags for special keys, pauses, layer changes and pointer movement. The keystrokes can fire when you press the button, when you release it, repeatedly while you hold it, or as a sticky toggle. You can limit them to times when the profile’s program is in front.
Button chording assigns separate actions when you hold one button and click another. Held-button actions trigger up to four different functions depending on how long a button stays down. Sticky buttons turn a single click into a held drag or a repeating action until clicked again.
Scrolling and pointer control
Each profile can invert vertical or horizontal scrolling and scroll by pages or by a set number of lines. It can also apply alternative scrolling methods for windows that ignore the standard wheel message. A “movement to scroll” action turns mouse motion into scrolling while you hold a button. It has its own sensitivity and axis settings. Profiles can also override pointer speed, lock pointer movement on one axis, confine the cursor to the active window, activate windows on hover, or swap the primary and secondary buttons.
Button limits
X-Mouse Button Control reads buttons through the standard Windows mouse messages, so it handles at most five buttons plus the wheel and tilt. Extra buttons that send nothing through the normal driver cannot be remapped, although the standard buttons and wheel still can. Community language packs translate the interface, and a portable edition runs without installation.






