Skip to main content

A fast, native GUI over linux-wallpaperengine with per-screen assignment and playlist rotation

Project description

Wallpaper Engine Manager

Une GUI native (PySide6/Qt) au-dessus de linux-wallpaperengine. Elle fait ce que les frontends existants faisaient mal : gérer correctement une bibliothèque Steam sur un autre disque, transmettre le bon --assets-dir, et proposer des playlists tournantes par écran — le tout en restant fluide.

L'interface reprend les codes visuels de Wallpaper Engine (thème sombre, sidebar de filtres à gauche, panneau de propriétés à droite, bande playlist en bas, sélecteur d'écran visuel) pour une prise en main immédiate.

Testé sur KDE Plasma 6 / Wayland (CachyOS), mais ne dépend d'aucune API KDE.

Fonctionnalités

  • Détection auto de la bibliothèque (workshop/content/431960) même sur un autre disque — lit libraryfolders.vdf et résout les symlinks pour retrouver le dossier des assets.
  • Grille de vignettes, chargées en tâche de fond (fluide même à 500+ fonds).
  • Recherche par titre.
  • Filtres combinés : genre, type, évaluation d'âge (tout en local depuis project.json), résolution, et un filtre « Compatible écran » qui ne montre que les fonds au bon ratio pour l'écran sélectionné (idéal multi-écran / ultrawide). Tri par titre ou par taille.
  • Résolution via Steam : la résolution est un tag Workshop absent des fichiers locaux ; l'app la récupère depuis l'API publique Steam (sans clé), la met en cache (metadata.json) — instantané et hors-ligne ensuite. Bouton « Sync Steam » et sync auto au premier lancement.
  • Un process par écran : changer un écran ne redémarre pas les autres.
  • Sélecteur d'écran visuel (popup Écrans…) : les moniteurs sont dessinés selon leur disposition réelle ; on clique un écran puis on lui assigne un fond fixe ou la playlist courante. Sélectionner un écran recharge ce qu'il affiche.
  • Playlists créées par cases à cocher dans la grille, avec une bande de vignettes en bas (clic = aperçu, × au survol = retirer). Intervalle et ordre (séquentiel / aléatoire) en ligne ; bouton Configurer… pour les options avancées par playlist : intervalle en h + min, démarrage sur le premier fond, et transition propre à la playlist. Une playlist aléatoire démarre sur un fond au hasard.
  • Panneau de propriétés (à droite) : personnalise le fond sélectionné (couleurs, curseurs, cases, listes). Enregistré par fond et réappliqué à chaque lancement via --set-property ; si le fond est affiché, il se recharge aussitôt.
  • Import depuis Wallpaper Engine : récupère les playlists du config.json de WPE (extrait les IDs, ignore les chemins/moniteurs Windows non portables).
  • Transition sans coupure : le nouveau fond est affiché par-dessus l'ancien avant que celui-ci soit tué (pas de fondu alpha — le backend ne le permet pas — mais plus de flash du fond de bureau entre deux).
  • Barre système (systray) : fermer la fenêtre la réduit dans le tray ; la rotation continue en arrière-plan. Le menu de l'icône permet de changer la playlist de chaque écran, de vider un écran, de tout arrêter, et de rouvrir.
  • Démarrage avec la session : une case (dans ⚙ Réglages ou le menu tray) installe un lanceur autostart qui relance l'app dans le tray et restaure les fonds (rotation comprise) à l'ouverture de session.
  • Pause automatique : les fonds étant des rendus GPU continus, ils volent des FPS à un jeu — surtout en multi-écran (les autres moniteurs continuent de rendre) ou en fenêtré sans bordure. Deux déclencheurs, dans ⚙ Réglages :
    • liste d'apps — tant qu'une app de la liste tourne, tous les fonds sont coupés (GPU libéré), puis relancés à sa fermeture ; ajout en un clic depuis les apps en cours. Marche quel que soit le GPU et même en borderless.
    • charge GPU (option, filet de secours pour les apps hors liste) — coupe les fonds quand l'utilisation GPU reste au-dessus d'un seuil, avec hystérésis pour éviter les allers-retours. Lecture via sysfs amdgpu ou nvidia-smi (grisé sur les GPU non supportés).
  • ⚙ Réglages : audio (muet), FPS, durée de transition globale, pause automatique, chemins de la bibliothèque, autostart, entrée du menu applications.

Prérequis

  • linux-wallpaperengine installé et dans le PATH.
  • Wallpaper Engine (l'app Steam, app id 431960) installé, pour disposer des assets et des wallpapers du workshop.
  • Python ≥ 3.10 et PySide6 (installé automatiquement via pip).

Installation

Toute distribution (PyPI)

pipx install wpe-manager     # recommandé (environnement isolé)
# ou
pip install --user wpe-manager

Arch / CachyOS / dérivés (AUR)

paru -S wpe-manager          # ou : yay -S wpe-manager

Le paquet AUR tire le backend linux-wallpaperengine-git automatiquement.

Depuis les sources

pipx install .               # ou : pip install --user .
# ou sans installer :
python -m wpe_manager

Puis lance la commande :

wpe-manager

Utilisation

  1. Fond fixe : clique un fond dans la grille → 🖥 Écrans…, clique un écran → Fond sélectionné → cet écran.
  2. Playlist tournante : coche des fonds dans la grille (ils apparaissent dans la bande du bas) → Nouvelle, nomme la playlist, règle l'intervalle et l'ordre (ou Configurer… pour les options avancées) → 🖥 Écrans…, clique un écran → Playlist courante → cet écran.
  3. Pour éditer une playlist existante : choisis-la dans le menu déroulant du bas (ça la charge), modifie les cases cochées, puis MàJ items.
  4. Vider cet écran / Tout arrêter depuis le popup Écrans / ⚙ Réglages.

Si la bibliothèque n'est pas trouvée automatiquement, ouvre ⚙ Réglages → Chemins de la bibliothèque… pour la pointer à la main.

Fermer la fenêtre la réduit dans la barre système : la rotation continue. Clic sur l'icône pour rouvrir, clic droit → Quitter pour fermer réellement.

Fichiers de config

  • ~/.config/wpe-manager/config.json — chemins, muet, FPS, transition.
  • ~/.config/wpe-manager/state.json — assignations par écran (fond / playlist).
  • ~/.config/wpe-manager/playlists.json — playlists.
  • ~/.config/wpe-manager/engine.json — process backend en cours (par écran).
  • ~/.config/wpe-manager/metadata.json — cache des résolutions (Steam Workshop).
  • ~/.config/wpe-manager/properties.json — propriétés personnalisées par fond.

Autostart (restaurer les fonds à l'ouverture de session)

Le plus simple : coche Démarrer avec la session (barre du haut ou menu du tray). L'app écrit ~/.config/autostart/wpe-manager.desktop pour toi.

Sous le capot, l'entrée lance wpe-manager --daemon (alias historique : --autostart) : l'app démarre cachée dans la barre système, restaure les fonds sauvegardés et reprend la rotation.

Entrée dans le menu des applications

Coche Menu applications (barre du haut ou menu du tray) pour ajouter un lanceur dans le menu de ton bureau (~/.local/share/applications/) et ouvrir l'app comme n'importe quel programme. Fonctionne aussi bien depuis une installation pip/pipx que depuis les sources.

Compatibilité & limites connues

Cette app n'est qu'un frontend ; ce qui fonctionne dépend surtout du backend.

  • Backend requis : linux-wallpaperengine doit être installé et dans le PATH. Il est packagé sur l'AUR ; sur Debian/Fedora/etc. il faut le compiler depuis les sources.
  • Bureau : testé sur KDE Plasma / Wayland. Fonctionne sur les compositeurs qui supportent wlr-layer-shell (KWin, wlroots) et sous X11. GNOME Wayland (Mutter) n'implémente pas layer-shell → le backend ne peut pas y dessiner le fond ; c'est une limite du compositeur, pas de cette app.
  • Wayland : le fond est dessiné par-dessus le bureau → pas d'icônes ni de clic droit sur le bureau tant qu'un fond animé est actif (limite du backend).

Remerciements

Ce projet n'est qu'un frontend ; tout le rendu est assuré par Almamu/linux-wallpaperengine.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

wpe_manager-0.7.0.tar.gz (52.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

wpe_manager-0.7.0-py3-none-any.whl (51.9 kB view details)

Uploaded Python 3

File details

Details for the file wpe_manager-0.7.0.tar.gz.

File metadata

  • Download URL: wpe_manager-0.7.0.tar.gz
  • Upload date:
  • Size: 52.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for wpe_manager-0.7.0.tar.gz
Algorithm Hash digest
SHA256 e7c33fd7db0958131b337e4fc30e5f6e7c31a2e03e06e96cdafc4b3d6c02c01f
MD5 79024afc107d83ed457c0fe24d1a312b
BLAKE2b-256 56b13093b6692433d03502c2158313847e230b3381761ece2875d7f8afcb5580

See more details on using hashes here.

Provenance

The following attestation bundles were made for wpe_manager-0.7.0.tar.gz:

Publisher: release.yml on Dragonir44/wpe-manager

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file wpe_manager-0.7.0-py3-none-any.whl.

File metadata

  • Download URL: wpe_manager-0.7.0-py3-none-any.whl
  • Upload date:
  • Size: 51.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for wpe_manager-0.7.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0b98c13567367609142570d5d38734f49821172b7704da666a9008d8e60a319c
MD5 d24cea1cf3ff5a30c2cc92d16ef3511f
BLAKE2b-256 746cf226cfe7f39cd50c1c94e4e7e72f1ef4069ae74116f37d3b55c7270818cb

See more details on using hashes here.

Provenance

The following attestation bundles were made for wpe_manager-0.7.0-py3-none-any.whl:

Publisher: release.yml on Dragonir44/wpe-manager

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page