- Rust 87.4%
- CSS 6.2%
- Python 5.2%
- Shell 1%
- HTML 0.2%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
|
|
||
| .forgejo/workflows | ||
| .vscode | ||
| examples | ||
| packaging | ||
| public | ||
| src | ||
| src-tauri | ||
| styles | ||
| tools/shape-check | ||
| .gitignore | ||
| .taurignore | ||
| Cargo.lock | ||
| Cargo.toml | ||
| index.html | ||
| LICENSE | ||
| README.md | ||
| Trunk.toml | ||
Razer Linux Desktop
A Tauri + Leptos desktop app for configuring supported Razer devices on Linux.
Supported are:
- Razer Basilisk V3
- Razer Basilisk V3 Pro
This desktop app is a port of the good work from geezmolycos. The initial port of this app is entirely done with Codex GPT 5.5 xhigh. Maintenance is carried out through the latest Claude models.
Using the app
Everything in this section is for running the app on your machine. Building it from source is covered under Development.
Install
Releases are published to this instance's package registries, so the usual package manager handles updates.
Arch, CachyOS, Manjaro
curl -fsSL https://git.shiverpeak.xyz/api/packages/alex/arch/repository.key |
sudo pacman-key --add -
sudo pacman-key --lsign-key D2B7EAD9D9F0C938D53AFD3BE06F9DA5876531E3
Then append to /etc/pacman.conf and sudo pacman -Sy razer-linux-desktop:
[razer-linux-desktop]
Server = https://git.shiverpeak.xyz/api/packages/alex/arch/stable/$arch
Debian, Ubuntu, Mint, Pop!_OS
Needs Ubuntu 22.04, Debian 12 or newer.
sudo curl -fsSLo /etc/apt/keyrings/forgejo-alex.asc \
https://git.shiverpeak.xyz/api/packages/alex/debian/repository.key
echo "deb [signed-by=/etc/apt/keyrings/forgejo-alex.asc] https://git.shiverpeak.xyz/api/packages/alex/debian stable main" |
sudo tee /etc/apt/sources.list.d/razer-linux-desktop.list
sudo apt update && sudo apt install razer-linux-desktop
Fedora, openSUSE Tumbleweed
sudo dnf config-manager addrepo --from-repofile=https://git.shiverpeak.xyz/api/packages/alex/rpm.repo
sudo dnf install razer-linux-desktop
openSUSE Leap is not covered: the rpm is built against a newer glibc than Leap ships.
One-off download
To install a single package without adding the repository, take the file from its package page. Each link redirects to the newest version, so they stay current between releases.
Installing this way means updates are manual. See Install a locally built package for the commands; they take a downloaded file just as well.
Device access
The app talks to /dev/hidraw* directly, so the hidraw node of a supported
device has to be readable by the desktop user. The packages install
packaging/udev/60-razer-linux-desktop.rules, which tags the supported devices
with uaccess so logind grants access to whoever is logged in at the seat.
If the app does not see the device right after installing, unplug and replug it.
Development
This section is only needed to build or change the app. Users installing from the package registries can stop above.
Build dependencies
On CachyOS / Arch:
sudo pacman -S --needed \
webkit2gtk-4.1 \
base-devel \
curl \
wget \
file \
openssl \
appmenu-gtk-module \
libappindicator-gtk3 \
librsvg \
xdotool
cargo install tauri-cli --locked
cargo install trunk --locked
Build
cargo tauri build
This writes a .deb and an .rpm under target/release/bundle/. Both carry the
binary, the desktop entry, the icon and the udev rule.
The version comes from [workspace.package] in the root Cargo.toml;
tauri.conf.json inherits it and must not set its own.
Install a locally built package
sudo dpkg -i target/release/bundle/deb/razer-linux-desktop_*_amd64.deb # Debian, Ubuntu
sudo rpm -i target/release/bundle/rpm/razer-linux-desktop-*.x86_64.rpm # Fedora, openSUSE
Unplug and replug the device afterwards, or let the post-install script's
udevadm trigger do it.
Adding a device
packaging/udev/60-razer-linux-desktop.rules is generated from
SUPPORTED_DEVICES in src-tauri/src/lib.rs. After adding a device there,
regenerate it:
cargo run -p razer-linux-desktop --example gen-udev-rules
cargo test fails when the two are out of sync.