Driver
You can find the XM300's driver on its
product page. The driver itself is mostly fully featured, but a little clunky to use, which is a pretty big negative since the XM300 does not have any on-board memory to store its settings in. You will, as such, have to configure the mouse through its driver on every system. The software allows you to rebind every button but the left click to a function, like volume up and down, DPI up and down, zoom, several other OS shortcuts, any keyboard key, or a macro. Macro recording works as you would expect, and you can also build macros manually by dragging keyboard and mouse clicks, delays, and mouse positions into the macro's queue. For macro playback, you have execute once, loop mode, and fire mode. Loop mode runs the macro once you press its button and stops after you press it again, and fire mode runs the macro for as long as you hold the button down. You can also import and export recorded macros if you find that the fifty the software can store are not enough or if you want to move your macros from one system to another. On the whole, I'm impressed with Gigabyte's macro implementation, and other than the fact that the UI with which you assign and set them up is less than fluid as you scroll through macro slots instead of just having to work with a list of all existing macros, there is only the lack of a rebinding option with which to launch applications to criticize.
The RGB is taken care of through three simple 255 position sliders. You can not type in values, which makes small adjustments tedious. The mouse also only has three lighting effects. These are Consistent, Pulsing, and Cycling. Consistent is just a solid color of your choice, Pulsing has the color of your choice pulse on and off, and Cycling cycles through a rainbow. You can have the mouse sync your color settings to all five profiles or can set separate color effects for each profile. There are also brightness and speed sliders in the color menu. The speed slider will only work in Pulsing mode since it is disabled in Cycling and Consistent mode.
Gigabyte's driver also allows you to adjust the X and Y sensitivity of its DPI settings, wheel sensitivity, in lines that are scrolled through per notch, and polling rate. I would also like to see a lift-off distance option because the SDNS 3988 sensor does support adjustments to its lift-off distance, which is far too high on Gigabyte's mouse by default.