CommunityImagegithub.com

picture-backdrop

Transforme une image (illustration, peinture, photo) en fond d'écran mod pour Claude Desktop, avec des couleurs de panneau latéral/panneau/menu assorties et une paire jour/nuit optionnelle suivant le mode clair ou sombre de la fenêtre. Utilisez-le quand l'utilisateur souhaite que sa propre image devienne l'arrière-plan ou le thème de Claude Desktop / Code, demande pourquoi une image de thème ou un fond n'apparaît pas, ou souhaite plus de détails dans un fond tracé.

Qu'est-ce que picture-backdrop ?

Cette compétence transforme une image fournie par l'utilisateur (peinture, illustration, photo) en un fond d'écran vectoriel personnalisé pour Claude Desktop et Claude Code, avec des couleurs d'interface assorties (panneaux, barres latérales, menus). Elle prend en charge un seul fond ou une paire jour/nuit qui s'adapte automatiquement au mode clair/sombre de la fenêtre. Nécessite les outils vtracer (Python) et svgo (Node.js) pour tracer l'image en chemins vectoriels et optimiser la sortie. L'agent trace l'image par régions (sujet, visage, zones de peau, etc.) selon un budget de caractères strict (~259 500 caractères max pour les SVG combinés). La sortie est un mod Claude Desktop chargé via le répertoire `~/.claude/skills/<id>/`. Le résultat est validé via la commande `claude plugin validate` et testé par l'utilisateur avec les commandes `/backdrop day|night|auto`.

Compatible avec✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/kamioj/claude-picture-backdrop/tree/HEAD/skills/picture-backdrop

Installed? Explore more Image skills: steipete/songsee, affaan-m/frontend-design, mattpocock/improve-codebase-architecture · View all 6 →

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Fond d'écran personnalisé

Le bureau ne dessine un fond de mod que sous forme de scene que le mod rend lui-même, et ne dessine aucune image matricielle à l'intérieur. Ainsi, l'image est tracée en chemins vectoriels, compressée sous des limites de taille strictes et silencieuses, et dessinée par un petit mod. Lisez references/limits.md avant de modifier quoi que ce soit dans la manière dont le mod dessine ; il répertorie ce qui a été mesuré et ce qui échoue silencieusement.

Flux de travail

  1. Récupérez les images. Une image, ou une version claire (jour) et une sombre (nuit). Un format paysage d'environ 1600x1000 convient ; l'application rogne avec xMidYMid slice, donc gardez le sujet loin du haut et du bas. Les œuvres picturales et douces se tracent beaucoup mieux par caractère que les dessins animés avec contours ; les photos fonctionnent aussi. Si l'utilisateur génère l'art, dites-le avant qu'il ne le fasse.
  2. Installez les outils dans des dossiers temporaires (pas dans le mod) :
    python -m pip install --target "$TMP/pb-vtracer" vtracer
    mkdir -p "$TMP/pb-svgo" && cd "$TMP/pb-svgo" && npm init -y >/dev/null && npm install svgo@4
    
  3. Créez le dossier du mod dans ~/.claude/skills/<id>/ (chargé à chaque session) : copiez assets/mod-template/, puis copiez make-colors.js et make-colors.d.ts depuis la compétence de création de plugin dans son dossier hooks/, sans les modifier. Remplissez chaque __PLACEHOLDER__ (__ID__ est le nom du dossier, en minuscules avec des traits d'union). Pour une seule image, supprimez l'autre import, sa scène et son apparence, et faites pointer auto vers l'unique image.
  4. Examinez l'image et listez ses régions (recadrez et affichez-les) : le sujet, le visage, les zones de peau, chaque côté. Écrivez une configuration par image à côté du mod (pas dans hooks/), en utilisant references/tracing.md pour les choix et paramètres de régions, et assets/example-night.json (une fille assise à droite d'une entrée) comme modèle. Pour une paire, donnez à chaque configuration "scheme" et les deux budgets : {"FULL": 259500, "HALF": 129500} ; pour une seule image, seulement FULL et pas de scheme.
  5. Tracez, en arrière-plan (un tracé prend quelques minutes) :
    python -I scripts/trace_scene.py night.json --vtracer "$TMP/pb-vtracer" --svgo "$TMP/pb-svgo" --preview "$TMP/pb-preview/night.html"
    
    Il trace chaque région à chaque option une fois, s'adapte à chaque budget (d'abord toutes les régions, puis les détails par priorité), et écrit scene-<nom>.ts. Faites pointer le out de la configuration vers le dossier hooks/ du mod.
  6. Prévisualisez le HTML dans le volet du navigateur (servez son dossier avec python -m http.server). Vérifiez le sujet à un zoom de 2x, car l'application agrandit l'image. Corrigez ce qui ne va pas à l'aide du tableau dans tracing.md et retracez.
  7. Couleurs. Échantillonnez les couleurs de surface des images (la teinte dominante du mur ou du ciel ; le mode sombre reste sombre) et exécutez makeColors ; sa liste de problèmes ne doit contenir aucune entrée "Desktop won't paint".
  8. Validez et remettez : claude plugin validate <dossier du mod>. Dites à l'utilisateur de recharger la fenêtre ou de démarrer une nouvelle session, de taper n'importe quel message (le thème est défini à la première invite), et d'essayer /backdrop day|night|auto. Demandez-lui de regarder des zones spécifiques ; sa capture d'écran est le véritable test. Supprimez les dossiers d'outils temporaires après.

Règles impératives

  • SVG entre simples quotes uniquement, pas de ", \ ni d'accent grave dans aucun SVG : l'échappement compte dans le total.
  • Les SVG d'une scène ensemble ≤ ~259500 caractères ; chaque SVG ≤ ~98000. Au-delà, le bureau n'affiche rien et ne dit rien ; le modèle journalise les scènes trop grandes au démarrage de la session.
  • Gardez glass activé ; laissez tint de côté pour une apparence destinée aux deux modes.
  • N'utilisez pas les fonds image, color, gradient ou vector, <image>, ou overrideColorScheme : aucun ne dessine ou ne prend effet.
  • Définissez le thème à prompt.submit, pas à session.start.
  • En améliorant une zone, conservez ce que l'utilisateur a dit apprécier : donnez à cette zone sa propre région ou priorité plutôt que de tout reparamétrer. Signalez chaque changement avec la zone qu'il affecte.

Skills associés