Hoe het klembord werkt op macOS Tahoe
Kort antwoord: Het klembord van macOS is een systeembrede service die het pasteboard heet. Als je kopieert, geeft de bronapp het systeem één of meer weergaven van dezelfde inhoud (platte tekst, opgemaakte tekst, een afbeelding, een bestandsverwijzing) en loopt er een teller op. Als je plakt, kiest de doelapp het rijkste formaat dat ze begrijpt. Tahoe behoudt dit model, voegt een ingebouwde klembordgeschiedenis toe aan Spotlight en scherpt de privacy rond apps die op de achtergrond het klembord lezen verder aan.
Je drukt veertig keer per dag op ⌘C. Laten we één van die toetsaanslagen van begin tot eind volgen, want vrijwel elke klembordraarheid die je ooit hebt meegemaakt (tekst die met het verkeerde lettertype wordt geplakt, een afbeelding die als bestand aankomt, een wachtwoord dat in een geschiedenisapp opduikt) komt voort uit een stap in dit traject.
Wat is het klembord op macOS?
Technisch gezien is het klembord het general pasteboard: een gedeelde systeemservice die apps benaderen via de NSPasteboard-API. Het is geen bestand en ook geen zichtbare app. Er staat telkens één huidige «itemset» op, en opnieuw kopiëren vervangt die. De naam «pasteboard» verklaart waarom je pb tegenkomt in terminaltools als pbcopy en pbpaste.
Twee details zijn van belang voor alles hieronder:
- Er past maar één ding tegelijk op. macOS heeft voor het general pasteboard nooit een eigen geschiedenis met meerdere items bijgehouden, zoals ⊞V dat onder Windows doet. Geschiedenis is iets wat er bovenop wordt gebouwd. De Spotlight-functie in Tahoe is Apples eerste systeemeigen poging daartoe (zie hieronder).
- Eén kopie is in feite meerdere kopieën. Eén ⌘C kan tegelijk veel verschillende weergaven van dezelfde inhoud op het pasteboard zetten.
Wat gebeurt er als je op ⌘C drukt?
- De app claimt het pasteboard. Ze wist de oude inhoud en geeft aan wat ze gaat aanbieden. Op dat moment gaat de change count van het pasteboard (een geheel getal) met één omhoog.
- De app biedt meerdere typen aan. Elk type wordt aangeduid met een Uniform Type Identifier (UTI), hetzelfde systeem dat bestandstypen identificeert.
- Gegevens kunnen «lazy» worden geleverd. De app kan een formaat beloven en de bytes pas produceren op het moment dat iemand daadwerkelijk plakt. Zo blijven grote kopieën (een grote afbeelding, een reeks spreadsheetcellen) goedkoop totdat ze nodig zijn.
Waarom krijg ik verschillende resultaten als ik in verschillende apps plak?
Omdat de doelapp kiest. Kopieer een opgemaakte alinea uit Safari en op het pasteboard kunnen meteen meerdere versies staan:
| Weergave | Typische typeaanduiding | Wie kiest dit? |
|---|---|---|
| Platte tekst | public.utf8-plain-text |
Terminals, code-editors, zoekvelden |
| Opgemaakte tekst | public.rtf |
TextEdit, Pages, Mail |
| HTML | public.html |
Webeditors, Notities, velden voor opgemaakte tekst |
| Afbeelding | public.png / public.tiff |
Voorvertoning, Keynote, ontwerptools |
| Bestandsverwijzing | public.file-url |
Finder, bijlagen in Mail, chatapps |
Een code-editor pakt de platte tekst en negeert de HTML, waardoor de opmaak verdwijnt. Notities pakt de HTML en behoudt de opmaak. Geen van beide is een bug. Daarom bestaat ook ⌥⇧⌘V (Plak en pas stijl aan): die vraagt de doelapp de platte-tekstweergave te verkiezen en de lokale opmaak toe te passen.
Bekijk het zelf in Terminal
Je hoeft dit niet op gezag aan te nemen. Kopieer iets en voer dan uit:
osascript -e 'clipboard info'
Het commando toont elk type dat op dat moment op het klembord staat, met de grootte in bytes. Kopieer een celbereik uit Numbers en daarna een alinea van een webpagina, en vergelijk de lijsten. Het verschil verklaart in z’n geheel waarom plakken per app anders uitpakt. Voor de tekstversie print pbpaste de inhoud, en met echo "hallo" | pbcopy schrijf je ernaartoe.
Hoe weet de Mac dat het klembord is veranderd?
Meestal vertelt hij dat aan niemand. Voor zover de publiek gedocumenteerde API’s reiken, biedt NSPasteboard geen melding als «klembord gewijzigd». Apps die dit wel willen weten, en dat zijn alle klembordmanagers, peilen de change count met een korte timer en lezen de inhoud pas uit als het getal verandert. Dat is goedkoop, want een geheel getal uitlezen kost vrijwel niets.
Dit heeft praktische gevolgen:
- Een geschiedenisapp kan niets zien wat is gekopieerd terwijl ze niet draait.
- Als twee kopieeracties sneller op elkaar volgen dan het pollinginterval, kan de eerste gemist worden. Het pollinginterval van Maccy is instelbaar in de instellingen .
- De change count loopt ook op wanneer een app dezelfde inhoud opnieuw wegschrijft. Daarom heeft een geschiedenistool zijn eigen ontdubbeling nodig.
Wat is er nieuw in Tahoe?
Klembordgeschiedenis in Spotlight
De belangrijkste verandering van Tahoe voor dit onderwerp is dat Spotlight een Klembord-weergave heeft gekregen. Open Spotlight en schakel erover (in Apples set sneltoetsen voor de nieuwe Spotlight-categorieën staat het klembord op ⌘4 ), dan kun je recente kopieën doorbladeren en er één terugplakken. Apple beschrijft deze geschiedenis als kortstondig: ze reikt maar ongeveer acht uur terug .
Daarmee is Spotlight een prima vangnet voor het moment dat je denkt: «dat heb ik een uur geleden gekopieerd». Wat het volgens het ontwerp niet is, is een langetermijnarchief: geen snippets van een week oud, geen vastgezette favorieten en geen uitzonderingsregels per app zoals speciale tools die bieden .
Strengere privacy rond het lezen van het klembord
Apple werkt toe naar zichtbaarheid voor de gebruiker wanneer een app het klembord programmatisch leest. De basis is gelegd met nieuwe API’s voor pasteboard-toegangsgedrag voor ontwikkelaars, en de richting is een melding in iOS-stijl wanneer een app het klembord leest zonder dat de gebruiker zelf plakt. Hoe strikt Tahoe dit voor gewone apps van derden afdwingt, en welke instelling de gebruiker daarvoor te zien krijgt, zou ik eerst op een Tahoe-Mac controleren voordat je erop vertrouwt . Het is relevant voor klembordmanagers, omdat hun hele taak erin bestaat het klembord op de achtergrond te lezen. Kijk dus in de documentatie van elke app naar de rechten onder Tahoe.
Synchroniseert het klembord tussen mijn Mac en iPhone?
Ja, via Universeel klembord. Het maakt deel uit van Continuity: log op beide apparaten in met hetzelfde Apple-account, zet Handoff aan, laat Bluetooth en wifi aanstaan en houd de apparaten in de buurt van elkaar. Kopieer op het ene apparaat, plak op het andere. De overgedragen inhoud is maar kort beschikbaar, dus het werkt als een overdracht en niet als een gesynchroniseerde geschiedenis. Het is ook beperkt tot één item: elke nieuwe kopie vervangt de vorige.
Als het niet meer werkt, zijn de gebruikelijke oorzaken dat Handoff uitstaat, Bluetooth is uitgeschakeld of de apparaten op verschillende Apple-accounts zitten. Handoff uit- en weer aanzetten is de klassieke eerste oplossing.
Wat blijft privé en wat niet?
Het klembord is leesbaar voor elke app die het mag lezen. Er is geen versleuteling per kopie. Daarom heeft de community een conventie bedacht: apps die gevoelige gegevens kopiëren, markeren die met speciale pasteboard-typen, gedocumenteerd op nspasteboard.org, zoals org.nspasteboard.ConcealedType (wachtwoorden) en org.nspasteboard.TransientType (kortlevende inhoud). Wachtwoordmanagers zetten die doorgaans en nette klembordmanagers slaan alles over wat zo’n markering draagt.
Maccy volgt deze conventie. In de instellingen kun je onder Negeren de lijst met genegeerde pasteboard-typen bekijken en bewerken, en specifieke apps volledig negeren . Twee kanttekeningen, eerlijk gezegd: de markeringen zijn een afspraak en geen afdwingmechanisme, dus een app die ze niet zet, laat haar gegevens blootliggen, en alles wat je kopieert is zichtbaar voor elke app die het klembord mag lezen totdat het wordt overschreven.
Het ingebouwde klembord versus een klembordmanager
| Ingebouwd klembord (pasteboard) | Spotlight-geschiedenis (Tahoe) | Speciale manager (bijv. Maccy) | |
|---|---|---|---|
| Bewaarde items | Eén | Alleen recente items, ongeveer uren | Instelbare geschiedenis |
| Zoeken | Nee | Via Spotlight | Ja, typ om te filteren |
| Gevoelige apps/typen negeren | Niet van toepassing | Ja | |
| Opgeslagen op schijf | Nee | Lokaal op je Mac | |
| Kosten | Inbegrepen | Inbegrepen | Maccy: gratis en open source |
Als je maar af en toe een recente kopie wilt terughalen, is de geschiedenis van Spotlight misschien al genoeg. Als je dagelijks uit dezelfde set snippets plakt, of uitzonderingen voor gevoelige apps en een langere geschiedenis wilt, verdient een speciale manager zijn plek. Maccy App draait vanuit de menubalk, opent standaard met ⇧⌘C en is gebouwd rond filteren met het toetsenbord . Welke route je ook kiest, alles hierboven blijft van kracht, want elk hulpmiddel draait bovenop hetzelfde pasteboard.
Problemen oplossen: als het klembord zich vreemd gedraagt
- Plakken doet niets of plakt oude inhoud. Kopieer iets onbenulligs uit een tekstveld met platte tekst om de status te resetten en probeer het opnieuw. Houdt het aan, start dan de app opnieuw waarin je plakt.
- Opmaak blijft meekomen. Gebruik Plak en pas stijl aan (⌥⇧⌘V).
- Een bestand gekopieerd, maar het pad gekregen (of andersom). De app kiest een andere weergave dan je verwachtte. Kijk met
osascript -e 'clipboard info'wat er op het klembord staat. - Universeel klembord is wispelturig. Controleer of je hetzelfde Apple-account gebruikt en of Handoff, Bluetooth en wifi aanstaan.
- Laatste redmiddel. Log uit en weer in, of start opnieuw op. De pasteboard-service wordt door het systeem beheerd en start mee met je sessie.
Het denkmodel om te onthouden
Kopiëren publiceert een bundel formaten en verhoogt een teller. Plakken is de doelapp die uit die bundel kiest. Al het andere, waaronder geschiedenis, synchronisatie en privacy, is op die eenvoudige basis gebouwd. Zodra je de bundel kunt zien met clipboard info, zijn de meeste klembordraadsels geen raadsels meer.
Welke plakverrassing irriteert jou het meest: verloren opmaak, verloren geschiedenis of iets anders? Laat het weten, dan wordt het misschien de volgende gids.