No description
Find a file
2026-06-06 18:22:16 +02:00
.vscode first commit 2026-05-17 21:33:41 +02:00
public fix a bunch of issues 2026-06-06 18:22:16 +02:00
src fix a bunch of issues 2026-06-06 18:22:16 +02:00
src-tauri fix a bunch of issues 2026-06-06 18:22:16 +02:00
styles fix a bunch of issues 2026-06-06 18:22:16 +02:00
.gitignore fix a bunch of issues 2026-06-06 18:22:16 +02:00
.taurignore first commit 2026-05-17 21:33:41 +02:00
Cargo.toml first commit 2026-05-17 21:33:41 +02:00
index.html fix a bunch of issues 2026-06-06 18:22:16 +02:00
MIGRATION_STATUS.md first commit 2026-05-17 21:33:41 +02:00
PROMPT.md add prompt 2026-05-17 21:34:06 +02:00
README.md fix a bunch of issues 2026-06-06 18:22:16 +02:00
Trunk.toml first commit 2026-05-17 21:33:41 +02:00

Razer Linux Desktop

A Tauri + Leptos desktop app for configuring supported Razer devices on Linux.

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