You may consider Linux gamers have many reasons to smile. And to an extent you’re right. Gaming on Linux has come on leaps and bounds from the days of tinkering in Wine and exploiting unorthodox workarounds. When Valve Corporation launched Steam for the open source operating system, the gaming scene transmogrified. Gaming became big business. With a slew of native AAA ports, Linux is blessed with bags of stonking games. Native ports of Dying Light, Civilization 6, XCOM 2 are just a handful of thousands of Linux games available on Steam.
But not everything is ideal. Take Razer Inc. A successful PC gaming company that produces impressive laptops, tablets, keyboards, mice, wearables and accessories. Devices which are extremely popular with gamers. With good reason, it’s generally great hardware. Their slogan is “For Gamers. By Gamers”. Alongside their Windows gaming focus they have also supported Mac OS X for years. Not Linux gamers though. Not a sniff. Razer doesn’t want to embrace Linux. There’s no official support, and nothing on the horizon. Don’t think the Linux Corner, a section of their website that discusses open-source compatibility on Razer systems, suggests imminent official support.
Not all is lost, however. In general, Razer peripherals work with Linux. For mice and keyboards, the generic HID input driver on Linux provides basic support. And open source developers are endeavouring to fill the void.
I’ll use the DeathAdder Chroma to illustrate the position and set out what options are available for Linux users. This mouse is equipped with a 10,000 DPI optical sensor, 5 programmable buttons, and adjustable LED lighting.
Razer has developed configuration software, Razer Synapse, to let gamers configure their peripherals.
The software offers a slew of functionality including profiles, macros, stats with heat-maps, lighting effects, calibration, the list goes on and on. Sadly there’s no prospect of Razer Synapse being ported to Linux.
With the generic HID input driver, we can merely control acceleration and sensitivity. OK for a general user, but lamentable for any gamer. Fortunately, there are 2 projects, employing reverse-engineering techniques, which have developed their own open source drivers and supporting configuration software.
Razer Drivers for Linux Project
Razer Drivers for Linux is a collection of open source drivers and a user-space daemon. The project leader is Terry Cain. The software lets users manage Razer peripherals on Linux. The range of support for keyboard and mice is impressive. Besides these peripherals, there’s support for laptops, headsets and more. Support for the DeathAdder Chroma mouse was added in January 2017 (version 1.1.6). And more devices are being added on a regular basis.
Installing the software is painless. For a Mint 18.1 system, simply type at a shell:
$ sudo add-apt-repository ppa:terrz/razerutils
$ sudo apt update
$ sudo apt install python3-razer razer-kernel-modules-dkms razer-daemon razer-doc
There are packages available for other popular Linux distributions.
To complement the driver, there’s a graphical management tool and tray applet called Polychromatic Controller written by Luke Horwell. There is also a keyboard macro tool and a control center. But I’ll focus on Polychromatic. To install Polychromatic, type the following commands at a shell:
$ sudo add-apt-repository ppa:lah7/polychromatic
$ sudo apt update
$ sudo apt install polychromatic
I did have an issue with running the graphical application. Starting the utility produced a blank black screen. The fix was to update the gir1.2-webkit2-4.0 package.
Polychromatic Controller shows only the features which are supported by the connected device. For the DeathAdder Chroma mouse, the utility lets us control lighting effects, brightness, colours, and change the DPI. While the mouse supports up to 10,000 DPI, the slider lets users choose values up to 16,000. Anything over 10,000 won’t work though; the hardware doesn’t support it. The reason why the slider goes beyond 10,000 is because the daemon doesn’t currently have the ability to determine the minimum/maximum DPI values supported by a mouse.
Some of the features supported by the driver aren’t yet implemented in the front-end. For example, the front-end currently doesn’t let us alter the polling rate even though the mouse driver does. There are 3 different polling rates available for the DeathAdder Chroma: 100Hz, 500Hz, and 1000Hz. A mouse’s polling rate is how often it reports its position. At 1000Hz, the mouse is reporting its position to the computer every 1 millisecond. A higher polling rate can help in some gaming situations.
Besides polling, I’m looking forward to profile support, the DPI slider issue fixed, and other functionality added. But it’s an impressive start for a front-end that’s in an early stage of development.
The Razer Drivers and Polychromatic are released under the GNU General Public License version 2. For more information on Razer Drivers for Linux and the accompanying utilities, check out the project web site.
Razer Device Configuration Tool
This is a separate project led by Michael Büsch which offers similar functionality for mouse support. The tool architecture is based on ‘razerd’, a background daemon doing all of the low-level privileged hardware accesses.
The project supports a good range of mice, including the DeathAdder Chroma, and offers support for a few mice not covered by Razer Drivers for Linux (and vice versa). Their implementation is different without using a kernel module.
The project has two front-end tools – a command-line tool ‘razercfg’ and a Qt based graphical configuration tool called ‘qrazercfg’. A screenshot of the Qt based tool is below.
The graphical front-end offers a configurable pre-defined set of DPI options, and the ability to change the polling rate.
The software is released under the GNU General Public License version 2. For more information on the Razer Device Configuration Tool project and their front-end, check out the project web site.
How can we encourage more manufacturers to mend their ways and provide official support for Linux? It’s a difficult issue.
The support offered by both open source projects is stirring. Regrettably, most of the Razer Synapse goodness is not supported by either project. The fault doesn’t lie with open source developers. But it wouldn’t be fair to assign all the blame to Razer. Supporting the variety of Linux distributions must simply be too daunting for many hardware manufacturers.