Il y a quelques jours, je suis tombé sur le post de Ryan Doyle où il expliquait comment il avait utilisé Claude Code pour personnaliser sa télé, et je me suis dit que j'allais voir ce que je pouvais faire avec la mienne.
https://x.com/doooyle/status/2111196679680540724
Ma télé est un Samsung « The Frame » de 2024, qui tourne sous Tizen.
Je déteste le Smart Hub de Samsung (ou peu importe comment ils l'appellent) et je voulais un écran d'accueil plus simple, centré sur les applis que j'utilise vraiment.
Pour l'instant, j'ai appelé ma solution Clean Frame.
Depuis que j'ai partagé quelques captures d'écran, on m'a pas mal demandé comment j'avais réussi à le faire tourner sur du Samsung, si la télé fonctionnait toujours comme un cadre pour afficher des œuvres d'art, et si j'allais publier le repo. Quelques personnes avaient déjà essayé avec Claude et s'étaient retrouvées bloquées.
Je n'ai pas beaucoup de temps pour rédiger tout ça moi-même, alors j'ai demandé à Codex de passer en revue nos fils de discussion, je lui ai dicté mes notes pendant quelques minutes, et il a publié ce que vous allez lire ci-dessous.
Petit avertissement :
Je ne suis absolument pas un expert. Il y a presque certainement des risques, et modifier ces paramètres peut causer des problèmes ou rendre votre télé inutilisable. Si vous tentez l'expérience, c'est à vos risques et périls.
Installer une appli sur la télé
J'ai commencé de manière assez prudente : avant même de penser au design, je voulais juste savoir si j'étais capable d'installer ma propre appli sur la télé.
J'ai utilisé Codex avec Astra pour gérer toute la configuration Samsung, en commençant par activer le mode développeur sur la télé et établir une connexion depuis mon ordinateur. Tizen propose des outils de développement pour installer ses propres applis, c'est donc par là qu'on a débuté.
L'appli en elle-même n'est faite que de HTML, CSS et JavaScript. Les outils de Samsung empaquettent tout ça pour que ça puisse tourner sur la télé. C'est toujours Tizen qui fait tourner la télé, et Clean Frame se contente d'ouvrir les applis de streaming déjà installées dessus.
La première version était très basique. Je pouvais naviguer entre deux ou trois applis avec la télécommande, appuyer sur OK, et lancer Netflix ou YouTube. C'était tout ce dont j'avais besoin pour tester à ce stade.

La première version que j'ai testée et installée sur la télé.
Une fois que ça a fonctionné, j'ai pu commencer à réfléchir à ce que je voulais vraiment afficher à l'écran.
Si vous voulez essayer chez vous, voici la marche à suivre :
- Placez l'ordinateur et la télé sur le même réseau local.
- Sur la télé, allez dans Applis → Paramètres des applis et tapez 12345 avec le pavé numérique de la télécommande.
- Activez le mode développeur et saisissez l'adresse IP locale de l'ordinateur dans le champ Host PC IP.
- Redémarrez la télé, puis connectez-vous depuis l'ordinateur à l'aide des outils de développement de Samsung.
- Utilisez les outils de certificats de Samsung pour créer un certificat d'auteur et un certificat de distributeur. Ajoutez l'identifiant de votre télé (DUID) au certificat de distributeur, puis empaquetez et installez votre appli.
Les adresses sont faciles à confondre. Vous saisissez l'IP de l'ordinateur sur la télé, puis vous utilisez l'IP de la télé pour vous connecter depuis l'ordinateur. Le guide de connexion de Samsung et le guide des certificats expliquent tout ça en détail.
Une fois l'outil SDB de Samsung installé, voici les commandes pour vous connecter et vérifier que la télé apparaît bien. Remplacez TV_IP par l'adresse locale de votre télé :
1sdb connect TV_IP:261012sdb devices
J'ai dû éteindre complètement mon Frame au niveau de la prise murale puis le rallumer pour que l'ordinateur accepte de se connecter. Appuyer sur le bouton Power de la télécommande le mettait simplement en mode Art.
On a aussi essuyé un refus d'appli à cause de notre méthode de signature. Utiliser les outils d'empaquetage officiels de Samsung a réglé le problème.
Quel prompt ai-je utilisé ?
Quelqu'un m'a demandé le prompt parce que Codex bloquait sa tentative. D'autres ont dit que Claude leur avait affirmé que c'était impossible sur Tizen, ou qu'il n'avait réussi qu'à créer une appli personnalisée sans aller plus loin. Je ne sais pas ce qui différenciait leurs sessions. Codex avec Astra a réussi à le faire fonctionner sur la mienne, et j'y suis allé étape par étape.
Voici un exemple de point de départ, plutôt que le prompt exact de ma session :
1Aide-moi à créer un lanceur simple pour mon propre Samsung Frame.2Vérifie mon modèle et mon firmware par rapport à la documentation développeur de Samsung.3Commence par une appli Tizen signée basique capable d'ouvrir une appli de streaming existante.4Ne touche pas aux paramètres d'accueil et de démarrage tant qu'on n'a pas réussi à faire tourner ça sur la télé.
Définir le look
J'ai utilisé Codex et Claude Opus 5.5 pour tester plusieurs designs. Certains étaient de simples listes avec de gros noms d'applis. D'autres avaient un dock ou une grille superposée à une photo. Les voir côte à côte m'a aidé à comprendre ce que j'aimais.

Shore Tiles, l'un des premiers designs en grille de verre que j'ai testés dans le navigateur.
À partir de là, j'ai continué à peaufiner la mise en page, la typographie et le ressenti général lors de l'utilisation avec la télécommande.
J'avais aussi un petit constructeur d'apparence dans le navigateur où je pouvais combiner différents arrière-plans, polices, mises en page et effets de verre. Ça m'a permis de voir plus facilement ce qui fonctionnait avant de l'envoyer sur la télé.

Le constructeur d'apparence, où je pouvais comparer les différentes options côte à côte.
J'ai fini par garder une liste et un dock, avec des paramètres pour choisir l'arrière-plan, les polices et les icônes. Je peux aussi sélectionner les applis qui s'affichent et les classer dans l'ordre que je veux.

La mise en page en liste, affichée dans le navigateur.
On m'a demandé si c'était rapide. Au début, non. L'effet de verre rendait super bien dans le navigateur, mais la navigation manquait de fluidité sur la télé. Deux choses ont tout changé : optimiser les images et pré-calculer les effets de verre, plutôt que de forcer la télé à les générer à la volée. Maintenant, c'est ultra réactif. Les applis de streaming, elles, mettent toujours le même temps à s'ouvrir.
La liste des applis avait aussi besoin d'un bon nettoyage. Quand je demandais à Tizen la liste des applis installées, il me renvoyait des centaines d'entrées. Beaucoup étaient des services d'arrière-plan, des outils de compte ou des applis système. On a ajouté un filtre qui vérifie le nom et l'ID de chaque entrée, conserve les applis de streaming que j'utilise et masque tout le reste dans le sélecteur. Elles sont toujours sur la télé et font leur boulot. Ça nettoie juste la liste dans Clean Frame ; ça ne les désinstalle ni ne les désactive.
J'ai agrandi le nom des applis et je leur ai donné plus d'espace pour qu'ils soient plus lisibles depuis le canapé. Je voulais aussi qu'on voie immédiatement quelle appli était sélectionnée, et revenir exactement au même endroit après avoir fermé les paramètres. Il y a eu pas mal d'allers-retours sur ces petits détails.
En faire l'écran d'accueil
Une fois satisfait du fonctionnement, je voulais pouvoir appuyer sur le bouton Accueil et y revenir directement.
On a d'abord essayé les paramètres de démarrage de Samsung. J'ai désactivé Démarrer avec l'accueil Smart Hub et activé Lancer automatiquement la dernière appli. Ça ramenait Clean Frame quand j'allumais la télé, à condition que ce soit la dernière appli utilisée.
Faire en sorte que le bouton Accueil me ramène dessus après avoir regardé quelque chose a demandé un peu plus de travail. Installer Clean Frame m'a donné une appli que je pouvais ouvrir, mais il fallait encore dire à la télé de l'utiliser comme accueil. On a utilisé un petit programme utilitaire qui s'exécute une seule fois sur la télé via la connexion développeur. Il modifie le paramètre d'accueil de la télé pour pointer vers Clean Frame et active son lancement automatique. On a sauvegardé les paramètres d'origine au préalable et vérifié qu'on pouvait les restaurer.
J'ai testé ça avec Netflix. Une fois l'appli ouverte, j'ai appuyé sur le bouton Accueil de la télécommande classique et je suis revenu directement sur Clean Frame. Je pouvais donc ouvrir une appli, puis retourner sur mon propre écran d'accueil avec le même bouton que d'habitude.
Si vous essayez de faire pareil, sachez que cette partie dépasse la procédure d'installation d'applis documentée par Samsung. La mienne est un Frame LS03D sous le firmware 2130.0. La référence qu'on a utilisée concernait un autre modèle Samsung, donc on l'a vérifiée sur ma télé avant de modifier quoi que ce soit. L'utilitaire n'avait besoin de tourner qu'une fois, donc je n'ai pas besoin de laisser mon Mac connecté pour que ça fonctionne.
Ça s'est exécuté via la connexion développeur et ça n'a pas nécessité d'accès root. Je traiterais quand même cette partie avec prudence. Elle modifie les paramètres d'accueil de la télé, et un modèle ou un firmware différent pourrait réagir autrement.
Où on en est
C'est installé sur ma télé et ça fonctionne parfaitement. Je peux changer la mise en page, les polices et l'arrière-plan, et garder les applis que je veux dans l'ordre que je veux.
La télécommande classique fonctionne, le bouton Accueil me ramène sur Clean Frame, et je peux toujours utiliser la télé pour afficher des œuvres d'art.
Voici quelques combinaisons que j'ai testées. Je peux modifier l'arrière-plan, la mise en page, la police, le style de focus et l'apparence des applis et des contrôles d'accueil. Ces captures d'écran proviennent de l'appli actuelle tournée dans le navigateur.

Les paramètres de Focus, avec un aperçu du rendu des teintes Glass et Clear sur l'accueil.

Blue Peaks avec la mise en page en liste, la typographie Mori, le focus Type et des icônes pour les contrôles d'accueil.

Texte uniquement sur fond noir, avec la typographie Mori et le focus Type.

Mountain Valley avec la mise en page en dock, le matériau Clear tint et le focus Glass.
Au moment où j'écris ces lignes, pas mal de monde m'a demandé un lien vers le repo. Je dois encore régler deux ou trois trucs et je l'ajouterai peut-être ici plus tard. En attendant, ce guide devrait vous permettre de faire l'essentiel du chemin pour créer le vôtre : partez du modèle et du firmware de votre télé, et avancez étape par étape.
Quelques questions tirées des réponses
Est-ce que je peux toujours l'utiliser comme cadre pour afficher des œuvres d'art ?
Oui. Ça fonctionne toujours. Les arrière-plans de Clean Frame sont totalement indépendants du mode Art de Samsung.
Que se passe-t-il quand Netflix ou les autres applis se mettent à jour ?
Ce sont toujours les applis installées et gérées par la télé. Clean Frame se contente de les ouvrir. Je ne maintiens pas de versions séparées de Netflix ou YouTube. Une mise à jour du firmware Samsung, c'est une autre histoire : je n'ai pas encore testé si la configuration de l'accueil y survit.
As-tu remplacé Tizen ou installé Android ?
La télé tourne toujours sous Tizen. Clean Frame est une appli Tizen, et j'ai simplement modifié le paramètre d'accueil pour qu'elle s'ouvre quand j'appuie sur le bouton Accueil. Je n'ai ni installé Android ni remplacé le système d'exploitation de la télé.
Est-ce que ça marchera sur d'autres télés ?
On m'a posé la question pour d'anciens modèles Samsung, LG, Hisense et Vizio — je n'en ai aucune idée. Mais il semble y avoir une liste grandissante de gens qui font ça sur énormément de modèles. Et d'après ce que je vois, Tizen a l'air d'être l'un des plus compliqués, donc il y a de bonnes chances que votre télé fonctionne.
L'interface est-elle en 4K ?
L'interface est conçue en 1920 × 1080 et s'adapte à la taille de l'écran. Je n'ai pas créé de version 4K native. Ça n'a rien à voir avec la qualité vidéo à l'intérieur des applis de streaming.
Est-ce compatible avec Home Assistant ?
Il n'y a pas d'intégration Home Assistant dans Clean Frame pour le moment. Jusqu'ici, je me suis concentré sur l'écran d'accueil et son utilisation avec la télécommande classique. Cela dit, au final, ce n'est qu'une appli web et il serait assez trivial d'y intégrer plein d'autres fonctionnalités, donc c'est très probablement possible.





