lianchengwu

lmplayer

wmPlayer (lmplayer) is a desktop music player built with Rust, GTK4, and WebKitGTK, featuring a pure-Rust Kugou protocol engine with online streaming, lossless audio, local library management, and desktop lyrics.

v0.9.4
Published at
1d ago
113
Stars
46
Download
Synced at
1d ago

Latest release

v0.9.4Oct 27, 2026, 03:52 AM
Downloads slow? Switch the source anytime above

README

Project Overview

wmPlayer (repo name lmplayer) is a modern music player built with Rust and GTK4 + WebKitGTK, focused on deep integration with the Linux desktop. It places the web front end inside a native borderless window and implements a Kugou protocol engine in pure Rust, so signing, decryption, and lyric decoding need no external Node.js process. Beyond online streaming and lossless playback, it offers local library management, an audio cache pool, a system tray, and standalone desktop lyrics.

Online streaming, a local library, and desktop lyrics in one native window.

Key Features

  • Online music: quality parsing (standard, high, lossless, Hi-Fi), keyword search suggestions, new-song and rising charts
  • QR login: scan to sign in with session persistence, unlocking playlists and personalized recommendations
  • Local library: scan and play local audio with local playlists, favorites, and play history
  • Audio cache pool: smart reuse of cached audio to cut bandwidth and speed up seek-and-play
  • Immersive playback: spinning vinyl animation, blurred cover backgrounds, and word-by-word highlighted lyrics
  • Multiple themes: light, dark, frosted light, and matte dark, switchable instantly
  • System tray: follows the StatusNotifierItem spec with background persistence and playback controls
  • Desktop lyrics: a companion floating lyric app with opacity, font scaling, and highlight color controls
  • Multimedia keys: supports MPRIS media control and global multimedia hotkeys

Target Audience

  • Music lovers on the Linux desktop who prefer native apps
  • Users who want both online music and a local library on their computer
  • Users who need desktop lyrics and tray control

Quick Start

  1. Download and extract the package for your platform from Releases, or build from source
  2. Install system dependencies as needed; on Ubuntu-based systems run sudo apt install libgtk-4-dev libwebkitgtk-6.0-dev libsoup-3.0-dev
  3. Launch the app and browse recommendations on the discover page, or search songs by keyword
  4. Sign in via QR code when needed; the session is stored locally
  5. Add a local music folder in settings and scan it to play from the local library page
  6. For desktop lyrics, install the companion OSD floating lyrics app or the KDE Plasma widget

Core Advantages

  • Pure-Rust engine: signing, decryption, and lyric decoding are all in Rust, with no external Node.js process
  • Single self-contained binary: front end assets are compiled in, so it runs out of the box with no loose dependencies
  • Works offline: icons and fonts are bundled locally, so the UI renders fully without a network
  • Deep desktop integration: tray, multimedia keys, and desktop lyrics all follow Linux desktop specs

System Requirements

Item Requirement
OS Linux (GTK4 + WebKitGTK 6.0)
Runtime Rust 1.75 or higher; Node.js 18+ to build the front end
System deps libgtk-4, libwebkitgtk-6.0, libsoup-3.0, and others
Network Internet access for online playback

Notes

  • This is a third-party client built on public APIs and protocol research, not the official Kugou client
  • It is for personal study and technical research only; please respect music copyright and support the official service
  • Copyrighted data may be produced during use; clear the generated cache within 24 hours
  • For NVIDIA drivers, WEBKIT_DISABLE_DMABUF_RENDERER is enabled by default to avoid a frozen UI

Release history

Sort