Real-time audio-reactive ambient lighting for your screen edges.
A cross-platform desktop application that renders a beautiful ambient glow along your screen borders, reacting in real-time to system audio output. Inspired by Android edge lighting — but for your entire desktop.
Real-time audio visualization with dynamic shader effects
- 🎵 Real-time Audio Capture — Captures system audio output via PulseAudio/PortAudio
- 🎨 Multiple Visual Effects — Beat Bloom, Neon Rails, and more shader-based effects
- 🔄 Auto Mode — Automatically switches effects based on beat energy and audio genre
- 🖥️ Native Overlay — Renders directly on screen edges using Wayland (wlr-layer-shell) or X11
- 🎛️ System Tray Control — Full control from the system tray with hotkey support
- ⚡ GPU Accelerated — OpenGL 3.3+ powered with GLSL shaders
- 🔧 Hot-Reloadable Config — Tweak settings in real-time without restarting
- 🚀 Auto-Start — Optional auto-start on login
Pre-release — Linux only. Windows support is coming in a future release.
Head to the Releases page and download the appropriate package for your distribution:
| Distribution | Package | Install Command |
|---|---|---|
| Ubuntu / Debian | .deb |
sudo dpkg -i loopin-ambience-mode-*.deb |
| Fedora / RHEL | .rpm |
sudo rpm -ivh loopin-ambience-mode-*.rpm |
Tip
Each release includes .sigstore.json signature bundles alongside the packages.
You can verify any download — see Security & Verification below.
Every release is built, signed, and scanned automatically in CI — no human touches the binaries.
All release packages (.deb and .rpm) are cryptographically signed using Sigstore keyless signing via GitHub Actions OIDC. This means:
- ✅ No private keys to leak — signing happens through GitHub's identity provider
- ✅ Signatures are publicly auditable on the Rekor transparency log
- ✅ You can verify exactly which workflow, commit, and repo produced every binary
Verify a download:
cosign verify-blob <package-file> \
--bundle <package-file>.sigstore.json \
--certificate-identity-regexp "https://github.com/bkmaxbaibhav/loopin-ambience-mode" \
--certificate-oidc-issuer https://token.actions.githubusercontent.comEvery release is automatically uploaded to VirusTotal for malware scanning. Scan result links are appended directly to the release notes on the Releases page — so you can always check the report before installing.
| Library | Purpose |
|---|---|
| CMake 3.20+ | Build system |
| PortAudio | Audio capture |
| FFTW3 | FFT processing |
| OpenGL 3.3+ | GPU rendering |
| GLFW3 | Window management |
| GLAD | OpenGL loader |
| nlohmann/json | Configuration |
| Wayland / X11 | Display protocols |
| AppIndicator | System tray |
Ubuntu / Debian / Parrot OS
sudo apt-get update
# Note: On newer releases, libayatana-appindicator3-dev is preferred
# to avoid packaging conflicts
sudo apt-get install -y \
build-essential \
cmake \
pkg-config \
portaudio19-dev \
libfftw3-dev \
libglfw3-dev \
libgl1-mesa-dev \
nlohmann-json3-dev \
libayatana-appindicator3-dev \
libwayland-dev \
wayland-protocols \
libwayland-bin \
libx11-dev \
libxfixes-dev \
libpulse-devFedora / RHEL
sudo dnf install -y \
gcc-c++ \
make \
cmake \
portaudio-devel \
fftw-devel \
glfw-devel \
mesa-libGL-devel \
nlohmann_json-devel \
libX11-devel \
libXfixes-devel \
libappindicator-gtk3-devel \
wayland-devel \
wayland-protocols-devel \
pulseaudio-libs-develmacOS (experimental)
brew install cmake portaudio fftw glfw3 nlohmann-jsonWindows (experimental)
Use vcpkg to install dependencies:
vcpkg install portaudio:x64-windows fftw3:x64-windows glfw3:x64-windows nlohmann-json:x64-windowsmkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr
make -j$(nproc)cd build
cpack -G DEB # generates .deb
cpack -G RPM # generates .rpm| Session | Status | Description |
|---|---|---|
| Session 1 | ✅ | Project Scaffold + CMakeLists.txt |
| Session 2 | ✅ | Audio Capture (PortAudio) |
| Session 3 | ✅ | FFT Processing (FFTW3) |
| Session 4 | ✅ | Overlay Window & Shader Loading |
| Session 5 | ✅ | Audio-to-Visual Mapping |
| Session 6 | ✅ | Advanced Shader Effects & Color Modes |
| Session 7 | ✅ | Linux Platform, System Tray & Config |
| Session 8 | 🔲 | Windows Platform Implementation |
| Session 9 | 🔲 | Global Hotkeys & System Tray (Windows) |
| Session 10 | 🔲 | Optimization & Bug Fixes |
| Session 11 | 🔲 | Final Packaging & Distribution |
Welcome! We'd love your help.
This project was originally vibe-coded — built fast with AI assistance to get the core experience working. The code quality reflects that: it works, it's fun, but it's not a textbook example of software engineering. Please don't let that discourage you. If anything, it means there are tons of opportunities to make things better.
Whether you want to:
- 🐛 Fix a bug
- ✨ Add a new visual effect or shader
- 🧹 Refactor and improve code quality
- 📖 Improve documentation
- 🧪 Add tests
- 🪟 Help with Windows/macOS support
…you are more than welcome. Contributions of all sizes are appreciated — from typo fixes to entire feature implementations.
Please see CONTRIBUTING.md for development guidelines and CODE_OF_CONDUCT.md for community standards.
This project is licensed under the MIT License.
Made with 🎧 and ✨ by Baibhav Kumar
If you enjoy Loopin, consider giving it a ⭐ — it helps others discover the project!