Skip to content

Repository files navigation

VelaWall

VelaWall is an open-source live wallpaper studio for Android. It turns local videos and images into responsive wallpapers while keeping playback, configuration, and rendering on the device.

VelaWall is an independent open-source project. It is not affiliated with Wallpaper Engine or its developers.

Highlights

  • Video and image playlists with drag-to-reorder and per-item settings
  • Interactive positioning: drag to move, pinch to zoom, and optional two-finger rotation
  • Device Motion using the phone's rotation-vector sensor
  • Fill, Fit, and Stretch scaling modes with a live phone-shaped preview
  • Configurable image duration; videos advance when playback finishes
  • Loop, play-once, playlist, and shuffle playback modes
  • Double- and triple-tap wallpaper actions
  • Automatic, light, or dark wallpaper status-bar icon hints
  • No ads, accounts, analytics, or network permission

Requirements

  • Android 9 (API 28) or newer
  • A device that supports Android live wallpapers
  • A rotation-vector sensor for Device Motion

Manufacturer launchers and lock screens vary. Some devices may not forward home-screen page offsets, touch gestures, or live wallpapers to the lock screen. See FAQ.md for known platform limitations.

Install

Download the APK from GitHub Releases.

Because VelaWall uses a different application ID from UndeadWallpaper, both applications can be installed at the same time. Settings are not migrated between them.

Use

  1. Add one or more videos or images.
  2. Tap an item to preview it, or open its adjustment control.
  3. Drag the media to position it and pinch to zoom.
  4. Pull the adjustment panel by its handle for scaling and playback controls.
  5. Save the item settings, then choose Apply wallpaper.

Image duration applies only to still images. Videos advance as soon as they finish, according to the selected playback mode.

Build

Clone the repository and build with the included Gradle wrapper:

./gradlew assembleDebug

Run the same checks used by CI:

./gradlew testDebugUnitTest lintDebug assembleDebug

The project currently targets Android API 36 and requires JDK 17.

Architecture

VelaWall keeps one rendering path for the editor, preview, and wallpaper:

  • GLVideoRenderer owns OpenGL transforms and rendering.
  • WallpaperPlayer coordinates ExoPlayer and still-image playback.
  • VelaWallpaperService manages wallpaper lifecycle, gestures, playlists, and sensor registration.
  • PreferencesManager stores global and per-media settings.
  • VideoPositionEditorActivity edits the same pan, zoom, rotation, scaling, and playback data used by the wallpaper renderer.

Device Motion is composed with the saved media transform rather than using a separate renderer.

Privacy

VelaWall works locally and does not request internet access. Media remains on your device. See PRIVACY_POLICY.md.

Contributing

Bug reports and focused pull requests are welcome. Please read CONTRIBUTING.md before submitting changes.

Origin and license

VelaWall is based on maocide/UndeadWallpaper and retains its Git history and contributor attribution. VelaWall includes substantial changes to branding, package structure, UI, media support, interactive adjustment, Device Motion, and playback behavior.

The project is distributed under the GNU General Public License v3.0. See NOTICE.md for attribution and modification notices.

Releases

Packages

Contributors

Languages