AnkiWeb
- Rating
- 1 (π 1 Β· π 0)
- Updated
- 2026-04-13
- Anki versions
- 2.1.1~
- Description language
- en
AnkiWeb addon 917808147
Adds animated GIF and video backgrounds to Anki's Reviewer, Deck Browser, and Overview screens, with live preview, local media, and opacity, blur, zoom, speed, trim, and mute controls.
Open on AnkiWeb GitHub Ask about alternatives
active
| Min Anki | Max Anki | Updated |
|---|---|---|
| 2.1.0 | 2.1.1+ | 2026-04-13 |
Loadingβ¦
Lets you set different background images or colors for light and dark modes, preview changes live, and apply backgrounds to selected Anki screens without bundled wallpapers.
Gives Anki's deck browser and overview a modern material design look with themes, backgrounds, deck icons, enhanced statistics, and reviewer buttons.
Create Markdown-enabled sticky notes on Anki review screens with live preview, images/GIFs, presets, templates, export, keyboard shortcuts, and JSON syncing via media.
Turns Anki reviews into a race against or escape from a CPU opponent, with customizable vehicles, roads, backgrounds, and nitro streak effects.
Displays animated video wallpapers across Anki screens, with adjustable opacity, blur, auto-change, and playback pause options.
Embeds a customizable countdown timer in Anki's deck list, overview, and reviewer, with play/pause, minute adjustments, reset, theme matching, position and font settings, and optional looping alarm.
<p align="center"> <img src="assets/packaging/logo_normal.png" alt="AnkiAnimatedBackground logo" width="220" /> </p>
<p align="center"> Animated GIF and video backgrounds for Anki, with live preview and per-screen controls. </p>
<p align="center"> <img src="preview.png" alt="Animated Background settings preview" width="900" /> </p>
AnkiAnimatedBackground adds animated backgrounds to Anki's core study surfaces while keeping the add-on workflow focused on real usage:
Supported media formats:
gifwebmmp4.ankiaddon package.Tools -> Add-ons..ankiaddon file into the Add-ons window.Tools -> Animated Background.Save Settings.The add-on is intentionally split into a few small modules with clear roles:
__init__.py
Bootstraps the add-on, registers hooks, and exposes the settings dialog through Anki's Tools menu.src/config/config_manager.py
Owns config normalization, persistence, managed media handling, and source-folder resolution.src/injector/webview_injector.py
Injects image-based backgrounds and CSS into supported Anki webviews.src/injector/background_controller.py
Coordinates live background activation, native video playback, screen-state refresh, and cleanup.src/view/settings_dialog.py
Hosts the user workflow for selection, preview, tuning, reset, and save.Anki native runtime
Anki startup
Loads the add-on entry point.Main window / mw
Hosts the Tools menu and the current active screen.Reviewer / Deck Browser / Overview
These are the supported screens that trigger background refreshes.Qt WebView
The HTML surface used for image injection and normal Anki content.Qt Multimedia backend
The native playback backend used for video backgrounds.Add-on components
__init__.py
Registers Anki hooks, creates shared services, and adds the Tools menu action.ConfigManager
Reads and writes profile-scoped add-on data, resolves selected media, and normalizes settings.SettingsDialog
Lets the user preview media, tune options, and persist changes.WebviewInjector
Injects CSS and image backgrounds directly into Anki's webview.BackgroundController
Decides whether a background should be active on the current screen and chooses the render path.NativeVideoBackground
Uses QMediaPlayer and a native overlay for video playback.Add-on data
profile/addon_data/AnkiAnimatedBackground/config.json
Persistent settings.profile/addon_data/AnkiAnimatedBackground/media/
Managed imported media.assets/default_media/
Built-in sample backgrounds distributed with the add-on.Startup and wiring
Anki startup loads __init__.py.__init__.py creates ConfigManager, WebviewInjector, and BackgroundController.__init__.py registers hooks on the Anki main window and exposes SettingsDialog from the Tools menu.Settings flow
SettingsDialog loads current values from ConfigManager.BackgroundController.ConfigManager.Image background path
Qt WebView.BackgroundController checks screen state and config.WebviewInjector.WebviewInjector injects CSS and an image layer into the webview.Video background path
Qt WebView.BackgroundController checks screen state and config.NativeVideoBackground.NativeVideoBackground plays through the Qt Multimedia backend.Data access
ConfigManager reads and writes profile-scoped add-on data.ConfigManager resolves managed files from the profile media directory.ConfigManager resolves packaged defaults from assets/default_media/.Screen refresh rules
BackgroundController.BackgroundController re-evaluates the current target screen and selected media.ConfigManager owns normalized runtime configuration and media-path resolution.BackgroundController decides when backgrounds should appear, disappear, or fail closed.AnkiAnimatedBackground/
|-- __init__.py
|-- src/
| |-- config/
| |-- injector/
| `-- view/
|-- assets/
| |-- default_media/
| `-- packaging/
|-- tests/
`-- dist/
Runtime data is stored in the active Anki profile:
<profile>/addon_data/AnkiAnimatedBackground/config.json<profile>/addon_data/AnkiAnimatedBackground/media/Packaged sample media lives inside the add-on package:
addons21/<addon>/assets/default_media/Wallpapers_anki/Older versions stored runtime files under addons21/<addon>/user_files/. On startup, the add-on migrates those files into the profile data directory and retires the legacy folder so future Anki updates do not need to rename it.
Build a local package with:
.\.venv\Scripts\python.exe package.py
Deploy to your local Anki add-ons folder with:
.\.venv\Scripts\python.exe deploy.py
Run the current test suite with:
.\.venv\Scripts\python.exe -m unittest discover -s tests -v
Packaging produces:
dist/AnkiAnimatedBackground_<version>.ankiaddonGPL-3.0. See LICENSE.