Kwiq Live Wallpaper
A dynamic wallpaper system with 4 slots, configurable slideshow, 11 image providers and battery liquid indicator.
Activation
Kwiq's Live Wallpaper can be activated in two ways:
- From the Android wallpaper picker: go to Settings > Wallpaper > Live Wallpapers and choose "Kwiq Live Wallpaper".
- From Kwiq's settings hub: open Kwiq Settings, go to "Wallpaper", and tap "Activate Live Wallpaper".
Once activated, you can configure each slot individually, choose images from the gallery or online providers, and adjust the slideshow and overlay settings.
The 4 Slots
Kwiq has 4 wallpaper slots that adapt to the device context:
Light Portrait
Light theme in portrait orientation. Used day-to-day with the light theme.
Light Landscape
Light theme in landscape orientation. Activated when you rotate the device.
Dark Portrait
Dark theme in portrait orientation. Activated at night or with the dark theme.
Dark Landscape
Dark theme in landscape orientation.
Kwiq automatically selects the right slot based on the theme (light/dark) and the device orientation (portrait/landscape).
Smart fallback: if a slot is empty, the system tries, in this order:
- Same theme, opposite orientation
- Opposite theme, same orientation
- Opposite theme, opposite orientation
This guarantees there is never a blank wallpaper, even if you have only configured a single slot.
Slideshow
Each slot can hold multiple images that form a looping slideshow. Key features:
- Per-image timing: each wallpaper can have its own display duration, from 5 seconds to 1 hour, set per wallpaper.
- Transition: a smooth 220ms crossfade between images.
- Manual advance: at any time, you can manually skip to the next image from the wallpaper shortcut in the Quick Tools.
- Automatic loop: the slideshow loops forever, restarting from the beginning when it reaches the end.
Image Providers
Kwiq offers 12 sources to fetch wallpapers directly from the app. Anime-focused providers (Waifu.im and Safebooru, plus Wallhaven with its Anime category) are grouped under an expandable "Anime" submenu for quicker access. Each provider has its own filter options:
| Provider | Requires API Key? | Available Filters |
|---|---|---|
| Kwiq | No | The app's bundled library |
| Wallhaven | No | Category (General/Anime/People), Sorting (Relevance/DateAdded/Views/Favorites/Toplist/Random), Purity (SFW/Sketchy/NSFW), Resolution, Color, Order, TopRange |
| Unsplash | Yes | Order (Relevant/Latest) |
| Pixabay | Yes | Type (Photo/Illustration/Vector), Order (Popular/Latest), SafeSearch |
| Pexels | Yes | Size (Small/Medium/Large), Color |
| Safebooru | No | N/A |
| Wikimedia Commons | No | N/A |
| Openverse | No | N/A |
| Picsum Photos | No | N/A |
| LoremFlickr | No | N/A |
| Waifu.im | No | NSFW Mode (SFW/NSFW/All), Order (Random/UploadedAt/Favorites), Animation (All/Static/Animated), Resolution (min/max width or height) |
| Solid Color | No | Color picker |
Anime-focused providers (Waifu.im, Safebooru, and a Wallhaven shortcut pre-set to the Anime category) are grouped under an expandable Anime submenu in the provider selector for quick access.
API Keys
Unsplash, Pixabay, and Pexels require you to create an account and get your own API keys. Here is how to get each one:
Unsplash
- Go to
https://unsplash.com/developers - Create an account or log in to Unsplash.
- Register an application under "Your Apps" > "New Application".
- Copy the generated "Access Key".
- Paste it into Kwiq Settings > "API Keys" > "Unsplash".
Pixabay
- Go to
https://pixabay.com/api/docs/ - Create an account or log in to Pixabay.
- Copy your API key from "API Key" on the documentation page.
- Paste it into Kwiq Settings > "API Keys" > "Pixabay".
Pexels
- Go to
https://www.pexels.com/api/ - Create an account or log in to Pexels.
- Request a free API key.
- Copy the provided key.
- Paste it into Kwiq Settings > "API Keys" > "Pexels".
Wallhaven and Waifu.im do not require an API key, but offer advanced filters like category, purity (SFW/Sketchy/NSFW), sorting, and NSFW mode. The remaining providers (Safebooru, Wikimedia Commons, Openverse, Picsum Photos, LoremFlickr) are also free and keyless.
Battery Liquid Indicator
Turn the Live Wallpaper lock screen into a subtle, elegant battery gauge:
- Activation: in Kwiq Settings > Wallpaper > "Battery Liquid".
- Fill type: opaque or transparent.
Dynamic colors: the liquid color changes with the battery level:
- Red: ≤ 5%
- Orange: ≤ 10%
- Yellow: ≤ 20%
- Blue: while charging
- Caffeine effect: when Caffeine is active, "steam" waves appear over the liquid (available colors: Coffee, CoffeeMilk, Milk, or the accent color).
- Bubbles: appear while the device is charging.
Preset System
Presets let you save and restore complete wallpaper setups: all 4 slots with their images, per-wallpaper settings, and crop preferences.
Folder structure:
Available operations:
- Save preset: copies the wallpapers from the active slots into the preset directory.
- Apply preset: copies the preset files into the active slots, preserving all per-wallpaper settings.
- Save current as preset: same logic as Save, but marks the preset as active.
- Rename / Delete: manage existing presets.
- Export as ZIP: packages the whole preset for sharing.
- Import from ZIP: restores a preset from a ZIP file.
- Share: sends the preset via Bluetooth, email, etc.
The active preset is tracked automatically: applying a preset makes it the "active" one. You can see which preset is active in the wallpaper settings.
Wallpaper Metadata
Every wallpaper has its own settings: sequence position, overlay opacity, display duration, pan offset, and zoom level — so each image remembers its configuration for the slideshow.
| Field | Description | Default Value |
|---|---|---|
| Sequence | Position in the slideshow sequence | — |
| Overlay | Overlay opacity (0–100%) | 0.28 (28%) |
| Duration | Display duration in the slideshow | 30 seconds |
| Pan X | Horizontal crop offset | — |
| Pan Y | Vertical crop offset | — |
| Zoom | Crop zoom level | — |
Static Wallpaper
Kwiq also offers a traditional static wallpaper picker for anyone who prefers not to use the Live Wallpaper:
- Access: from the Kwiq wallpaper hub (Settings > Wallpaper > "Choose Static").
- Targets: Home screen, Lock screen, or both.
- Adjustments: crop, zoom, and pan (drag) to position the image perfectly before applying.
- Sources: the device gallery or any configured online provider.
Backup and Restore
Wallpaper settings are included in Kwiq's backup system:
- What is saved: wallpaper presets and battery liquid preferences.
- What is NOT saved: the images themselves (they are already in the
Kwiq/Wallpapers/folder in storage and remain visible to the user). - Format: a
.kwiqbkpfile. - Restore: importing a backup automatically restores presets and settings.
Web Wallpaper
Kwiq supports web wallpapers — animated themes made with HTML, CSS and JavaScript, in the style of Wallpaper Engine for desktop. They run in the background using an invisible WebView and can react to audio, touch and custom settings.
project.json and index.html) can be imported directly into Kwiq without modifications. Kwiq implements the same JavaScript APIs (wallpaperPropertyListener, wallpaperRegisterProperties, wallpaperRegisterAudioListener).
How to import
- Package your files (
index.html+ assets) into a.zipfile. - In the app, open the wallpaper panel and tap "Import Web Wallpaper (ZIP)".
- Select the ZIP file — Kwiq extracts and registers it automatically.
- Assign the web wallpaper to a slot in the wallpaper settings.
You can also import via MCP (web_wallpaper_import) or the Kwiq Dashboard (POST /api/web-wallpapers/import).
Custom properties
Web wallpapers can expose controls that appear in the Kwiq interface as sliders, colors, buttons and selectors. Simply register the properties via window.wallpaperRegisterProperties() in JavaScript and include the properties section in project.json.
Audio reaction (FFT)
Kwiq captures the device audio spectrum (32 FFT bins) and makes it available to the web wallpaper via window.wallpaperRegisterAudioListener(). Use the data to create visualizations, reactive waves, pulses and any effect synchronized with music or surrounding sounds.
Available JavaScript APIs
window.wallpaperRegisterProperties(properties[])— registers custom propertieswindow.wallpaperPropertyListener— object to receive property changeswindow.wallpaperRegisterAudioListener(callback)— receives real-time 32-bin FFT arraywindow.wallpaperRegisterPauseListener(callback)— notifies when the wallpaper enters/exits pause
File structure
The wallpaper is stored in Kwiq/Wallpapers/{name}/ with the following structure:
Kwiq/Wallpapers/MyWallpaper/
index.html (required)
project.json (Wallpaper Engine manifest — optional)
web.json (Kwiq manifest — auto-generated)
assets/ (auxiliary files — CSS, JS, images)
Management
- List: wallpaper panel, MCP (
web_wallpaper_list) or Dashboard - Assign to slot: MCP (
web_wallpaper_assign) or Dashboard - Remove: MCP (
web_wallpaper_delete) or Dashboard — removes from all slots and deletes the files