Comment fonctionne le presse-papiers sous macOS Tahoe

Comment fonctionne le presse-papiers sous macOS Tahoe

Réponse rapide : le presse-papiers de macOS est un service système appelé le pasteboard. Quand vous copiez, l’app source remet au système une ou plusieurs représentations du même contenu (texte brut, texte enrichi, image, référence de fichier) et un compteur s’incrémente. Quand vous collez, l’app de destination choisit le format le plus riche qu’elle sait lire. Tahoe conserve ce modèle, ajoute un historique du presse-papiers directement dans Spotlight et continue de resserrer la confidentialité autour des apps qui lisent le presse-papiers en arrière-plan.

Vous appuyez sur ⌘C une quarantaine de fois par jour. Suivons l’une de ces pressions de bout en bout, car presque toutes les bizarreries du presse-papiers que vous avez croisées (un texte collé avec la mauvaise police, une image qui arrive sous forme de fichier, un mot de passe qui apparaît dans une app d’historique) viennent d’une étape de ce trajet.

Qu’est-ce que le presse-papiers sur macOS ?

Techniquement, le presse-papiers est le general pasteboard : un service système partagé auquel les apps accèdent via l’API NSPasteboard. Ce n’est ni un fichier ni une application visible. Il ne contient qu’un « jeu d’éléments » à la fois, et une nouvelle copie remplace le précédent. C’est à ce nom, « pasteboard », que l’on doit le pb de commandes Terminal comme pbcopy et pbpaste.

Deux points comptent pour tout ce qui suit :

  • Il ne retient qu’une chose à la fois. macOS n’a jamais proposé d’historique multi-éléments natif pour le general pasteboard, à la manière du ⊞V de Windows. L’historique est toujours venu se greffer par-dessus. La fonction Spotlight de Tahoe est la première tentative d’Apple au niveau du système (voir plus bas).
  • Une copie, c’est en réalité plusieurs copies. Un seul ⌘C peut déposer simultanément de nombreuses représentations du même contenu dans le pasteboard.

Que se passe-t-il quand vous appuyez sur ⌘C ?

  1. L’app prend possession du pasteboard. Elle efface l’ancien contenu et déclare ce qu’elle va fournir. C’est à ce moment que le change count du pasteboard (un simple entier) augmente de un.
  2. L’app propose plusieurs types. Chacun est identifié par un Uniform Type Identifier (UTI), le même système que celui qui identifie les types de fichiers.
  3. Les données peuvent être livrées à la demande. L’app peut promettre un format et ne produire les octets qu’au moment où quelqu’un colle. Cela rend les grosses copies (une grande image, une plage de cellules d’un tableur) quasi gratuites tant qu’on ne les utilise pas.

Pourquoi le collage donne-t-il des résultats différents selon les apps ?

Parce que c’est la destination qui choisit. Copiez un paragraphe mis en forme depuis Safari : le pasteboard peut contenir plusieurs versions à la fois.

Représentation Identifiant de type courant Qui la choisit
Texte brut public.utf8-plain-text Terminaux, éditeurs de code, champs de recherche
Texte enrichi public.rtf TextEdit, Pages, Mail
HTML public.html Éditeurs web, Notes, champs de texte enrichi
Image public.png / public.tiff Aperçu, Keynote, outils de design
Référence de fichier public.file-url Finder, pièces jointes Mail, apps de messagerie

Un éditeur de code prend le texte brut et ignore le HTML : la mise en forme disparaît. Notes, lui, prend le HTML et la conserve. Aucun des deux n’a de bug. C’est aussi la raison d’être de ⌥⇧⌘V (Coller et adapter le style) : il demande à la destination de privilégier la représentation en texte brut et d’appliquer sa propre mise en forme.

Le voir de vos propres yeux dans le Terminal

Inutile de me croire sur parole. Copiez quelque chose, puis lancez :

osascript -e 'clipboard info'

La commande affiche chaque type actuellement présent dans le presse-papiers, avec sa taille en octets. Copiez une plage de cellules depuis Numbers, puis un paragraphe depuis une page web, et comparez les deux listes : toute l’explication du comportement variable du collage est là. Pour la version texte, pbpaste l’affiche et echo "hello" | pbcopy y écrit.

Comment le Mac sait-il que le presse-papiers a changé ?

Il ne prévient à peu près personne. Parmi les API documentées publiquement, NSPasteboard n’offre aucune notification de type « le presse-papiers a changé ». Les apps que cela intéresse, c’est-à-dire tous les gestionnaires de presse-papiers, interrogent le change count à intervalle court et ne lisent le contenu que lorsque le nombre bouge. C’est très économique : lire un entier ne coûte presque rien.

Cela a des conséquences pratiques :

  • Une app d’historique ne voit rien de ce qui est copié pendant qu’elle n’est pas lancée.
  • Si deux copies se succèdent plus vite que l’intervalle d’interrogation, la première peut être manquée. L’intervalle d’interrogation de Maccy est réglable dans ses réglages .
  • Le change count s’incrémente aussi quand une app réécrit exactement le même contenu, d’où la nécessité pour un outil d’historique d’avoir sa propre déduplication.

Quoi de neuf dans Tahoe ?

L’historique du presse-papiers dans Spotlight

Le changement phare de Tahoe sur ce sujet : Spotlight dispose désormais d’une vue Presse-papiers. Ouvrez Spotlight et basculez dessus (le jeu de raccourcis d’Apple pour les nouvelles catégories de Spotlight placerait le presse-papiers sur ⌘4 ) : vous pouvez parcourir vos copies récentes et en recoller une. Apple décrit cet historique comme éphémère, remontant seulement à environ huit heures .

Spotlight devient ainsi un filet de sécurité honnête pour le « je l’ai copié il y a une heure ». Ce n’est pas, d’après sa conception annoncée, une archive à long terme : pas de snippets vieux d’une semaine, pas de favoris épinglés, et pas de règles d’exclusion par app comme en proposent les outils dédiés .

Une confidentialité renforcée autour des lectures du presse-papiers

Apple va dans le sens d’une visibilité, pour l’utilisateur, des lectures programmatiques du presse-papiers. Les fondations ont été posées avec de nouvelles API de comportement d’accès au pasteboard pour les développeurs, et la direction est une invite à la iOS lorsqu’une app lit le presse-papiers sans action de collage de l’utilisateur. Le degré de rigueur avec lequel Tahoe applique cela aux apps tierces ordinaires, et le réglage que voit l’utilisateur, sont des détails que je confirmerais sur une machine sous Tahoe avant de m’y fier . Cela concerne directement les gestionnaires de presse-papiers, dont tout le travail consiste à lire le presse-papiers en arrière-plan : consultez la documentation de chaque app sur les autorisations sous Tahoe.

Le presse-papiers se synchronise-t-il entre Mac et iPhone ?

Oui, grâce au Presse-papiers universel. Il fait partie de Continuité : connectez-vous au même compte Apple sur les deux appareils, activez Handoff, laissez le Bluetooth et le Wi-Fi allumés et gardez les appareils à proximité. Copiez sur l’un, collez sur l’autre. Le contenu transféré n’est disponible que pendant une courte fenêtre : c’est un transfert de relais, pas un historique synchronisé. Il ne gère en outre qu’un seul élément : chaque nouvelle copie remplace la précédente.

S’il cesse de fonctionner, les causes habituelles sont Handoff désactivé, Bluetooth coupé ou appareils liés à des comptes Apple différents. Désactiver puis réactiver Handoff reste le premier réflexe classique.

Qu’est-ce qui reste privé, et qu’est-ce qui ne l’est pas ?

Le presse-papiers est lisible par toute app autorisée à le lire. Il n’y a pas de chiffrement par copie. La communauté a donc instauré une convention : les apps qui copient des données sensibles les marquent avec des types de pasteboard spéciaux, documentés sur nspasteboard.org, comme org.nspasteboard.ConcealedType (mots de passe) et org.nspasteboard.TransientType (contenu éphémère). Les gestionnaires de mots de passe les définissent généralement, et les gestionnaires de presse-papiers bien élevés ignorent tout ce qui les porte.

Maccy respecte cette convention. Dans ses réglages, sous Ignorer, vous pouvez consulter et modifier la liste des types de pasteboard ignorés, et ignorer entièrement certaines apps . Deux réserves, en toute honnêteté : ces marqueurs sont une convention et non un mécanisme contraignant, si bien qu’une app qui ne les pose pas laisse ses données exposées ; et tout ce que vous copiez reste visible par n’importe quelle app autorisée à lire le presse-papiers jusqu’à ce qu’il soit écrasé.

Presse-papiers natif ou gestionnaire de presse-papiers ?

Presse-papiers intégré (pasteboard) Historique Spotlight (Tahoe) Gestionnaire dédié (ex. Maccy)
Éléments conservés Un seul Éléments récents uniquement, environ quelques heures Historique configurable
Recherche Non Via Spotlight Oui, il suffit de taper pour filtrer
Ignorer apps/types sensibles Sans objet Oui
Stocké sur le disque Non En local sur votre Mac
Coût Inclus Inclus Maccy : gratuit et open source

Si vous avez seulement besoin, de temps en temps, de retrouver une copie récente, l’historique de Spotlight peut suffire. Si vous collez chaque jour les mêmes snippets, ou si vous voulez des exclusions d’apps sensibles et un historique plus long, un gestionnaire dédié se justifie. Maccy App vit dans la barre des menus, s’ouvre par défaut avec ⇧⌘C et repose sur un filtrage pensé pour le clavier . Quelle que soit la voie choisie, tout ce qui précède reste valable, puisque chaque outil s’appuie sur le même pasteboard.

Dépannage : quand le presse-papiers fait des siennes

  • Le collage ne fait rien ou colle un contenu périmé. Copiez quelque chose d’anodin depuis un champ de texte brut pour réinitialiser l’état, puis réessayez. Si le problème persiste, relancez l’app dans laquelle vous collez.
  • La mise en forme vous suit partout. Utilisez Coller et adapter le style (⌥⇧⌘V).
  • Vous avez copié un fichier et obtenu son chemin (ou l’inverse). L’app choisit une autre représentation que celle que vous attendiez. Vérifiez le contenu du presse-papiers avec osascript -e 'clipboard info'.
  • Le Presse-papiers universel est capricieux. Vérifiez le même compte Apple, Handoff activé, Bluetooth et Wi-Fi allumés.
  • Dernier recours. Fermez puis rouvrez votre session, ou redémarrez. Le service pasteboard est géré par le système et redémarre avec votre session.

Le modèle mental à retenir

Copier publie un lot de formats et incrémente un compteur. Coller, c’est l’app de destination qui pioche dans ce lot. Tout le reste, historique, synchronisation et confidentialité compris, repose sur ce socle simple. Une fois que vous savez afficher le lot avec clipboard info, la plupart des mystères du presse-papiers n’en sont plus.

Quelle surprise au collage vous agace le plus : la mise en forme perdue, l’historique perdu, ou autre chose ? Dites-le-nous, cela pourrait devenir le prochain guide.



Игорь Балькин
Автор: Игорь Балькин. Веб-разработчик с 2001 года. Разработчик сайтов на WordPress, CRM и веб-приложений. Минск, Беларусь. Контактная информация.