SkillAgentSearch skills...

Snake

A stylised graphical tool for configuring and controlling Razer devices on Linux

Install / Use

/learn @bithatch/Snake
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

Snake

Snake Overview

Snake is application to control and configure your Razer devices on Linux. Making use of the awesome OpenRazer drivers, Snake provides access to most features the drivers provides and lots of extra stuff you won't find in other clients.

  • Stylised user interface with animations and effects
  • Simple installation, and self updating.
  • Provides basic support from all devices supported by OpenRazer.
  • Layouts feature. Design and use labelled diagrams of your device showing lighting areas, keys and individual LEDs. If a device has a layout, it is used for controls, macros and custom effects instead of the basic generated user interface.
  • Supports multiple concurrent devices.
  • Set and configure Razer effects such as Breath, Wave, Static and more.
  • Create custom effects using the timeline based editor. Configurable with different interpolations types, FPS and speed.
  • Battery status.
  • Audio analysis lighting effects. Monitors a channel PulseAudio and makes your lighting react in different ways. Requires a device that has Matrix support.
  • Integrated System Tray icon (or indicator)
  • Global brightness controls the brightness of all devices at once.
  • Macro support. (work in progress, 3 competing systems!)
  • Themes

A device with a layout

Compatibility

Snake tries to be completely compatible with whatever OpenRazer supports. However, there are some features OpenRazer does not yet provide itself, snake such as detailed lighting and key layouts.

Snake includes a very small set of built in layouts, only for hardware I have access to. If you create a high quality layout for your device, please submit it to the project and I will add it as a default.

| Device | Macros | Layouts | | --------------------------- | --------| ----------------- | | Keyboards | | | | Other OpenRazer Keyboards | 1,2 | None | | Mice | | | | <img src="https://assets.razerzone.com/eeimages/support/products/1390/1390_mamba_elite.png" width="64" />Mamba Elite | 3 | MATRIX, TOP | | Other OpenRazer Mice | | None | None | | Accessories | | | | <img src="https://assets.razerzone.com/eeimages/support/products/1255/1255_tartarus_v2.png" width="64" /> Tartarus V2 | 3 | MATRIX,TOP | 26 | | <img src="https://assets2.razerzone.com/images/pnx.assets/132a2c378c62416d4d0634306f04bf01/connectivity-nommo-pro.jpg" width="64" /> Nommo Chroma | 3 | MATRIX, THREE_D_1 | 2 | | Other OpenRazer Accessories | | None | None |

  1. OpenRazer default macro/key binding system. Only supports keyboards. Works at X11 / device driver levels. Works without a layout.
  2. Chabad360's OpenRazer macro/key binding improvements https://github.com/chabad360/openrazer/tree/keybinding. Currently only supports keyboards. Requires UInput permissions. Works without a layout.
  3. Snakes own key binding system. Supports all device types. Requires UInput permissions. Requires a layout.

Install

There are several different ways to run Snake. In all cases, the first time the app runs you will be asked if you want to create a desktop shortcut (i.e. menu entry).

Snake Installer

All binary versions of Snake are built for 64 bit x86 only. For 32 bit, or other architectures, please use one of the "No-Runtime" packages below.

Self Extracting Installer

The self extracting installer is the easiest to use. You will be asked for a location to install Snake. It will then update to the latest version and start up.

From The Command Line

wget -O snake-installer-amd64.sh \
 https://github.com/bithatch/snake/releases/download/v1.0-SNAPSHOT-204/snake-installer-amd64.sh && \
 sh snake-installer-amd64.sh

From Your Desktop

  • Download snake-amd64-installer.sh.
  • Add Execute permission to the downloaded snake-installer.sh in your file manager.
  • Use the Open action in your file manager to start the installer.

Application Archive

Another option is to download the archived version of the app, extract it to where you want to install, and just run it.

From The Command Line

wget -O snake-amd64.tar.gz \
 https://github.com/bithatch/snake/releases/download/v1.0-SNAPSHOT-204/snake-amd64.tar.gz
tar xzf snake-amd64-tar.gz
cd snake
bin/snake &

From Your Desktop

  • Download snake-amd64.tar.gz
  • Use the Open action in your file manager to locate and start bin/snake in the extracted folder.

No-Runtime Packages

The above packages all include a stripped down amd64 Java runtime so you do not need to install your own. If you have another architecture such as X86 or Arm, or just want a smaller download, you can use your own runtime. It just needs to be at least Java 15.

All these packages include the bin/snake launcher script. You may need to edit this if you want to use a runtime other than the system default.

OS Packages

Not currently available.

Updating

All installations of Snake are self updating, unless you are using our own OS specific packages. Those provided by a 3rd party repository may provide updates.

Update options may be found may be found in the  Options screen.

Automatic Updates

By default, Snake will update automatically and you should never need to touch it. If you prefer though, you can turn this off and you will be notified when updates are available. The update may then be installed on demand.

Beta Updates

You can optionally accept beta updates. While I will strive to keep the beta channel stable, these may contain as-yet untested features, and some behaviour may be unexpected. You can at any time revert to the release channel.

When changing this option, Snake will restart after 2 seconds and download appropriate version.

Build From Source

To build Snake from source you need :-

  • Git
  • Java 15+
  • Apache Maven

Other dependencies are downloaded by Maven during the build process.

Further dependencies may be needed for building deployable packages.

Build

git clone https://github.com/bithatch/snake.git
cd snake
mvn clean install

If the build completes OK, you can then run or install Snake.

Run

Once build, you can run directly.

cd snake-app-linux
mvn javafx:run

Install

Or you can install what you have built.

snake-dist/target/snake-installer-amd64.sh

Options

Configuration is very simple. The backend should take care of the devices, Snake just has a few options for appearance and behaviour.

Snake Options

To access options, click the cog icon,  Options.

Appearance

Various options for configuration how Snake looks.

Theme - Allows the look of Snake to be changed. A selection of themes that are colour variations of the default are provided, with more to come. Creating your own will be documented soon, but the adventurous can try by copying any existing theme module and adjusting the contents accordingly.

Themes

Use Window Manager Decorations - By default, Snake uses "Client Side Decorations", and draws it's own window title bar and window management buttons (close, min, max). Turn this option off to use window manager decorations instead. In this mode, Options and About are both insteads accessed from icons at the bottom right of the overview screen.

Transparency - If you are using client side decorations, then window transparency is possible. This slider sets how transparent the window should be.

Snake Desktop

Updates

Check for updates - Whether to check for updates at all. When deselected, neither automatic or manual updating is possible.

Update automatically - When selected, Snake will update itself automatically on startup if required.

Install beta updates as well - When selected, you will be able to receive beta updates that may contain fixes or features that you wish to try out before full release.

Tray

Icon Style - Different options for how the tray icon appears, if at all.

Show Battery - If you have at least one device that has a battery, then the option is given to show the battery status on the system tray instead of the razer logo.

When low - When selected the battery status will only be showing if the overall battery status is Low.

Start on login - If the tray icon is enabled, you probably want to start it when you login. The option allows you to do so. When turned off, the tray icon will appear when you manually start Snake.

System Tray

The system tray icon runs in the background and provides quick access to common functions of your devices.

Snake Tray

It can also show a summary of the battery status (when configuration).

Device Overview

Device Overview is the first screen you see when opening Snake. It lists all of the supported Razer devices that the driver has discovered.

If an expected device is not listed, please check if it works with other OpenRazer clients. If it does not, it is likely you want to direct any feature requests to the OpenRazer project.

If you hav

View on GitHub
GitHub Stars77
CategoryDevelopment
Updated1mo ago
Forks5

Languages

Java

Security Score

100/100

Audited on Feb 7, 2026

No findings