This release is a pre-release and may not be stable for production use.
OVOS PHAL Plugin Wallpaper Manager
This PHAL plugin gives OpenVoiceOS a central interface for wallpaper management. It works with homescreens and other desktop environments. The interface lists the wallpapers available from each registered provider, and it sets a wallpaper from that list. A provider can be a local source that reads wallpapers from the file system, or a remote source that reads wallpapers from a URL.
Supported desktop environments
- ovos-shell (via homescreen skill)
- GNOME:
gnome,unity,cinnamon - MATE:
mate - XFCE:
xfce4 - KDE:
kde - LXDE:
lxde - Fluxbox:
fluxbox - Openbox:
openbox - IceWM:
icewm - JWM:
jwm - AfterStep:
afterstep - Blackbox:
blackbox - WindowMaker:
windowmaker
Platform support comes from OpenVoiceOS/wallpaper_changer.
Install
pip install ovos-PHAL-plugin-wallpaper-manager
Event and API reference
Register and activate a wallpaper provider
A wallpaper provider must register with the central wallpaper management interface. To register, send this event:
# ovos.wallpaper.manager.register.provider
# type: Request
# description: Register a wallpaper provider to the plugin
# data required:
# provider_name = typically the self.skill_id of the skill that provides the wallpaper provider
# provider_display_name = A display name for the wallpaper provider, that will be displayed on the selection screens
# (optional) provider_configurable = True if the wallpaper provider is configurable, False if not
When registration succeeds, the wallpaper management interface responds with this event:
# ovos.phal.wallpaper.manager.provider.registered
# type: Response
# description: Registration successful
To activate a wallpaper provider, send this event:
# ovos.wallpaper.manager.set.active.provider
# type: Request
# description: Activate a wallpaper provider
# data required:
# provider_name = typically the self.skill_id of the skill that is the wallpaper provider
Note: The Wallpapers Settings UI handles this event on "smartspeaker" and "mobile" GUI platforms. A skill or wallpaper provider must not send this event unless it needs to force an override of the current provider.
Wallpaper collection API
A wallpaper provider can send a collection of wallpapers to the wallpaper management interface. This step is optional. Some providers keep their own collection of wallpapers, and some depend on an online source instead.
After a wallpaper provider registers, the wallpaper management interface sends it an event to request a collection of wallpapers. A provider that wants to supply wallpapers listens for this signal:
# {provider_name}.get.wallpaper.collection
# type: Request
# description: Request a collection of wallpapers from the wallpaper provider
The provider responds to that signal with this event:
# ovos.wallpaper.manager.collect.collection.response
# type: Response
# description: Response to the wallpaper collection request
# data required:
# provider_name = typically the self.skill_id of the skill that provides the wallpaper provider
# wallpaper_collection = a list of full wallpaper paths that are available from the wallpaper provider
A wallpaper provider can also ask the wallpaper management interface to update its wallpaper collection at any time, by sending this event:
# ovos.wallpaper.manager.update.collection
# type: Request
# description: Request the wallpaper management interface to update its wallpaper collection
# data required:
# provider_name = typically the self.skill_id of the skill that provides the wallpaper provider
Wallpaper request for providers without a collection
If a wallpaper provider does not supply a collection of wallpapers, the wallpaper management interface always sends it an event to request a new wallpaper. The provider must listen for this signal:
# {provider_name}.get.new.wallpaper
# type: Request
# description: Request a new wallpaper from the wallpaper provider
The provider must respond to that signal with this event:
# ovos.wallpaper.manager.set.wallpaper
# type: Response
# description: Response to the wallpaper request to set new wallpaper
# data required:
# url = the full path of the wallpaper that is to be set
Get and set wallpaper API
To get the current wallpaper, the wallpaper management interface sends this event:
# ovos.wallpaper.manager.get.wallpaper
# type: Request
# description: Request the wallpaper management interface to get the current wallpaper
The wallpaper management interface responds to that event with this event:
# ovos.wallpaper.manager.get.wallpaper.response
# type: Response
# description: Response to the wallpaper request to get the current wallpaper
# data sent:
# url = the full path of the current wallpaper
To set a wallpaper, send this event to the wallpaper management interface:
# ovos.wallpaper.manager.set.wallpaper
# type: Request
# description: Request the wallpaper management interface to set a new wallpaper
# data required:
# url = the full path of the wallpaper that is to be set
Note:
- On platforms that support a homescreen, this event sets the homescreen wallpaper.
- On platforms without a homescreen, such as a desktop, this event sets the desktop wallpaper.
Change wallpaper API
Any skill or event can ask the wallpaper management interface to change the wallpaper, by sending this event:
# ovos.wallpaper.manager.change.wallpaper
# type: Request
# description: Request the wallpaper management interface to change the wallpaper
Note:
- If the selected provider supplies a collection of wallpapers, the wallpaper management interface picks the next wallpaper from that collection and sets it.
- If the selected provider does not supply a collection, the wallpaper management interface asks the provider for a new wallpaper.
Auto-rotate wallpapers API
To turn on automatic wallpaper rotation, send this event:
# ovos.wallpaper.manager.enable.auto.rotation
# type: Request
# description: Request the wallpaper management interface to enable auto rotate and set an wallpaper rotation interval
# data required:
# rotation_time = the time in seconds at which the wallpapers should be rotated
To turn off automatic wallpaper rotation, send this event:
# ovos.wallpaper.manager.disable.auto.rotation
# type: Request
# description: Request the wallpaper management interface to disable auto rotate
Example: wallpaper provider skill with a collection
def ExampleWallpaperProvider(OVOSSkill):
def initialize(self):
self.add_event("ovos.wallpaper.manager.loaded", self.register_with_wallpaper_provider)
self.add_event(f"{self.skill_id}.get.wallpaper.collection", self.supply_wallpaper_collection)
def collect_wallpapers(self):
wallpaper_folder = "/usr/share/wallpapers"
return [f"{wallpaper_folder}/{f}" for f in os.listdir(wallpaper_folder)]
def register_with_wallpaper_provider(self, message):
self.bus.emit(Message("ovos.wallpaper.manager.register.provider",
data={"provider_name": self.skill_id,
"provider_display_name": "Example Wallpaper Provider"}))
def supply_wallpaper_collection(self, message):
wp = self.collect_wallpapers()
self.bus.emit(Message("ovos.wallpaper.manager.collect.collection.response",
data={"provider_name": self.skill_id,
"wallpaper_collection": wp}))
Example: wallpaper provider skill without a collection
def ExampleWallpaperProvider(OVOSSkill):
def initialize(self):
self.add_event("ovos.wallpaper.manager.loaded", self.register_with_wallpaper_provider)
self.add_event(f"{self.skill_id}.get.new.wallpaper", self.supply_new_wallpaper)
def register_with_wallpaper_provider(self, message):
self.bus.emit(Message("ovos.wallpaper.manager.register.provider",
data={"provider_name": self.skill_id,
"provider_display_name": "Example Wallpaper Provider"}))
def supply_new_wallpaper(self, message):
# Get a new wallpaper from some online source
# and set it as the wallpaper on every request for a new wallpaper
url = "https://example.com/wallpaper.jpg"
self.bus.emit(Message("ovos.wallpaper.manager.set.wallpaper",
data={"url": url}))
Related projects
- OpenVoiceOS/wallpaper_changer — platform-specific wallpaper backend used by this plugin.
- OpenVoiceOS/skill-ovos-homescreen — homescreen skill that consumes this interface on ovos-shell.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ovos_phal_plugin_wallpaper_manager-0.2.8a2.tar.gz.
File metadata
- Download URL: ovos_phal_plugin_wallpaper_manager-0.2.8a2.tar.gz
- Upload date:
- Size: 9.3 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
657ce58ec53abd2876d45f38f572f486ec0cee23cfbb6faabcd08c9de4464d02
|
|
| MD5 |
fa43adea28b5240f90c29ff8d229fbfc
|
|
| BLAKE2b-256 |
80b6e22324e82ff48b2f9e5a26e40e24b2de5b89aebb83209ce20ee15bf0d285
|
File details
Details for the file ovos_phal_plugin_wallpaper_manager-0.2.8a2-py3-none-any.whl.
File metadata
- Download URL: ovos_phal_plugin_wallpaper_manager-0.2.8a2-py3-none-any.whl
- Upload date:
- Size: 9.3 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cbcebc76ca23ebf28631cce83348e14b510186dcd09d15c08948d5c3fe19957f
|
|
| MD5 |
4e6410ec4d293a0eb0c85b76f44acefe
|
|
| BLAKE2b-256 |
b24e0e889d883595683d84efeae68c92d327d60a1e93eff2b0aa457cd0e93e6e
|