razer-linux-desktop/README.md

3.3 KiB

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 port and maintenance of this app is entirely done with Codex GPT 5.5 xhigh.

CachyOS / Arch Setup

Install the Tauri Linux build dependencies:

sudo pacman -S --needed \
  webkit2gtk-4.1 \
  base-devel \
  curl \
  wget \
  file \
  openssl \
  appmenu-gtk-module \
  libappindicator-gtk3 \
  librsvg \
  xdotool

Make sure the Rust Tauri CLI and Trunk are available:

cargo install tauri-cli --locked
cargo install trunk --locked

Build

From this directory:

NO_STRIP=true cargo tauri build

NO_STRIP=true avoids a known AppImage bundling failure on rolling Linux distributions where linuxdeploy's bundled strip can fail on newer ELF sections.

The AppImage is written under:

target/release/bundle/appimage/

Install Desktop Launcher

This installs the built AppImage into a stable per-user path and creates a desktop launcher. The launcher continues to work after updates because the AppImage is always copied to the same filename.

appimage="$(find target/release/bundle/appimage -maxdepth 1 -name 'razer-linux-desktop_*_amd64.AppImage' -print -quit)"

mkdir -p "$HOME/.local/opt/razer-linux-desktop"
mkdir -p "$HOME/.local/share/applications"
mkdir -p "$HOME/.local/share/icons/hicolor/128x128/apps"

install -m 0755 "$appimage" \
  "$HOME/.local/opt/razer-linux-desktop/razer-linux-desktop.AppImage"

install -m 0644 src-tauri/icons/128x128.png \
  "$HOME/.local/share/icons/hicolor/128x128/apps/one.daichendt.razer-linux-desktop.png"

cat > "$HOME/.local/share/applications/one.daichendt.razer-linux-desktop.desktop" <<EOF
[Desktop Entry]
Type=Application
Name=Razer Linux Desktop
Comment=Configure Razer devices on Linux
Exec=$HOME/.local/opt/razer-linux-desktop/razer-linux-desktop.AppImage
Icon=one.daichendt.razer-linux-desktop
Terminal=false
Categories=Settings;HardwareSettings;
StartupNotify=true
EOF

update-desktop-database "$HOME/.local/share/applications" 2>/dev/null || true
gtk-update-icon-cache "$HOME/.local/share/icons/hicolor" 2>/dev/null || true
kbuildsycoca6 2>/dev/null || true

After this, the app should appear in the desktop environment launcher as Razer Linux Desktop.

Update Installed App

Pull the latest source, rebuild, and replace the stable AppImage:

git pull --ff-only
NO_STRIP=true cargo tauri build

appimage="$(find target/release/bundle/appimage -maxdepth 1 -name 'razer-linux-desktop_*_amd64.AppImage' -print -quit)"

install -m 0755 "$appimage" \
  "$HOME/.local/opt/razer-linux-desktop/razer-linux-desktop.AppImage"

The desktop launcher does not need to be recreated unless the launcher metadata or icon changes.

Uninstall

rm -f "$HOME/.local/share/applications/one.daichendt.razer-linux-desktop.desktop"
rm -f "$HOME/.local/share/icons/hicolor/128x128/apps/one.daichendt.razer-linux-desktop.png"
rm -rf "$HOME/.local/opt/razer-linux-desktop"

update-desktop-database "$HOME/.local/share/applications" 2>/dev/null || true
gtk-update-icon-cache "$HOME/.local/share/icons/hicolor" 2>/dev/null || true
kbuildsycoca6 2>/dev/null || true