Cara Kerja Clipboard di macOS Tahoe

Cara Kerja Clipboard di macOS Tahoe

Jawaban singkat: Clipboard macOS adalah layanan sistem yang disebut pasteboard. Saat Anda menyalin, aplikasi sumber menyerahkan satu atau lebih representasi dari konten yang sama ke sistem (teks biasa, rich text, gambar, referensi file), lalu sebuah penghitung bertambah. Saat Anda menempel, aplikasi tujuan memilih format terkaya yang bisa ia pahami. Tahoe mempertahankan model ini, menambahkan riwayat clipboard bawaan di Spotlight, dan terus memperketat privasi terhadap aplikasi yang membaca clipboard di latar belakang.

Anda menekan ⌘C puluhan kali sehari. Mari kita ikuti satu tekanan itu dari awal sampai akhir, karena hampir semua keanehan clipboard yang pernah Anda temui (teks tertempel dengan font yang salah, gambar muncul sebagai file, kata sandi nongol di aplikasi riwayat) berasal dari salah satu langkah dalam perjalanan ini.

Apa itu clipboard di macOS?

Secara teknis, clipboard adalah general pasteboard, layanan sistem bersama yang diakses aplikasi lewat API NSPasteboard. Ia bukan file dan bukan aplikasi yang terlihat. Ia hanya menyimpan satu «kumpulan item» aktif pada satu waktu, dan menyalin lagi akan menggantikannya. Nama «pasteboard» inilah alasan Anda melihat pb pada perintah terminal seperti pbcopy dan pbpaste.

Dua hal ini penting untuk semua pembahasan di bawah:

  • Hanya menyimpan satu hal sekaligus. macOS tidak pernah punya riwayat multi-item bawaan untuk general pasteboard seperti ⊞V di Windows. Riwayat selalu merupakan tambahan di atasnya. Fitur Spotlight di Tahoe adalah upaya pertama Apple di level sistem (lihat di bawah).
  • Satu salinan sebenarnya adalah beberapa salinan. Satu kali ⌘C bisa menaruh banyak representasi dari konten yang sama ke pasteboard sekaligus.

Apa yang terjadi saat Anda menekan ⌘C?

  1. Aplikasi mengklaim pasteboard. Isi lama dihapus dan aplikasi mendeklarasikan apa yang akan disediakannya. Pada saat inilah change count pasteboard (sebuah bilangan bulat) naik satu.
  2. Aplikasi menawarkan beberapa tipe. Setiap tipe diidentifikasi dengan Uniform Type Identifier (UTI), sistem yang sama yang dipakai untuk mengenali jenis file.
  3. Data bisa dikirim secara lazy. Aplikasi dapat menjanjikan sebuah format dan baru menghasilkan datanya ketika ada yang benar-benar menempel. Ini membuat salinan besar (gambar berukuran besar, rentang sel spreadsheet) tetap ringan sampai benar-benar dibutuhkan.

Kenapa hasil tempel berbeda di tiap aplikasi?

Karena yang memilih adalah aplikasi tujuan. Salin satu paragraf berformat dari Safari, dan pasteboard bisa menyimpan beberapa versi sekaligus:

Representasi Type identifier umum Siapa yang memilih
Teks biasa public.utf8-plain-text Terminal, editor kode, kolom pencarian
Rich text public.rtf TextEdit, Pages, Mail
HTML public.html Editor web, Notes, kolom rich text
Gambar public.png / public.tiff Preview, Keynote, aplikasi desain
Referensi file public.file-url Finder, lampiran Mail, aplikasi chat

Editor kode mengambil teks biasa dan mengabaikan HTML, sehingga stylingnya hilang. Notes mengambil HTML dan mempertahankannya. Keduanya bukan bug. Inilah juga alasan ⌥⇧⌘V (Paste and Match Style) ada: ia meminta aplikasi tujuan memakai representasi teks biasa lalu menerapkan format lokal.

Buktikan sendiri lewat Terminal

Anda tidak perlu percaya begitu saja. Salin sesuatu, lalu jalankan:

osascript -e 'clipboard info'

Perintah ini mencetak setiap tipe yang sedang ada di clipboard beserta ukurannya dalam byte. Salin rentang sel dari Numbers, lalu salin paragraf dari halaman web, dan bandingkan kedua daftarnya. Perbedaan itulah inti dari mengapa perilaku tempel berbeda antar aplikasi. Untuk versi teksnya, pbpaste mencetak isinya, dan echo "hello" | pbcopy menulis ke clipboard.

Bagaimana Mac tahu clipboard berubah?

Sebagian besar, ia tidak memberi tahu siapa pun. Sejauh menyangkut API yang terdokumentasi publik, NSPasteboard tidak menyediakan notifikasi «clipboard berubah». Aplikasi yang peduli, yaitu semua clipboard manager, melakukan polling terhadap change count dengan timer singkat dan baru membaca isinya ketika angkanya bergerak. Ini murah, karena membaca satu bilangan bulat nyaris tidak memakan biaya.

Ada konsekuensi praktisnya:

  • Aplikasi riwayat tidak bisa melihat apa pun yang disalin saat ia tidak berjalan.
  • Jika dua penyalinan terjadi lebih cepat dari interval polling, yang pertama bisa terlewat. Interval polling Maccy dapat diatur di pengaturannya .
  • Change count juga bertambah ketika aplikasi menulis ulang konten yang sama, itulah sebabnya alat riwayat butuh de-duplikasi sendiri.

Apa yang baru di Tahoe?

Riwayat clipboard di Spotlight

Perubahan utama Tahoe untuk topik ini adalah Spotlight kini punya tampilan Clipboard. Buka Spotlight dan pindah ke tampilan itu (set pintasan Apple untuk kategori Spotlight yang baru menempatkan clipboard di ⌘4 ), lalu Anda bisa menelusuri salinan terbaru dan menempelkannya kembali. Apple menggambarkan riwayat ini bersifat jangka pendek, hanya sekitar delapan jam ke belakang .

Ini menjadikan Spotlight jaring pengaman yang lumayan untuk situasi «tadi sejam lalu saya salin apa ya». Namun, berdasarkan desain yang disebutkan, ia bukan arsip jangka panjang: tidak ada snippet berumur seminggu, tidak ada favorit yang bisa disematkan, dan tidak ada aturan abaikan per aplikasi seperti yang ditawarkan alat khusus .

Privasi yang lebih ketat pada pembacaan clipboard

Apple bergerak ke arah membuat pembacaan clipboard secara programatik terlihat oleh pengguna. Fondasinya sudah dirilis sebagai API pasteboard access-behavior baru untuk developer, dan arahnya adalah munculnya prompt ala iOS saat sebuah aplikasi membaca clipboard tanpa aksi tempel dari pengguna. Seberapa ketat Tahoe menerapkannya pada aplikasi pihak ketiga biasa, dan pengaturan apa yang terlihat oleh pengguna, adalah detail yang sebaiknya Anda pastikan langsung di Mac dengan Tahoe sebelum dijadikan pegangan . Ini penting bagi clipboard manager karena seluruh tugas mereka adalah membaca clipboard di latar belakang, jadi periksa dokumentasi masing-masing aplikasi soal izin di Tahoe.

Apakah clipboard tersinkron antara Mac dan iPhone?

Ya, lewat Universal Clipboard. Fitur ini bagian dari Continuity: masuk dengan Akun Apple yang sama di kedua perangkat, aktifkan Handoff, nyalakan Bluetooth dan Wi-Fi, dan dekatkan kedua perangkat. Salin di satu perangkat, tempel di perangkat lain. Konten yang ditransfer hanya tersedia dalam jendela waktu singkat, jadi ia berperilaku sebagai handoff, bukan riwayat yang tersinkron. Ia juga hanya satu item: setiap salinan baru menggantikan yang sebelumnya.

Jika berhenti bekerja, penyebab yang biasa adalah Handoff dimatikan, Bluetooth nonaktif, atau kedua perangkat memakai Akun Apple berbeda. Mematikan lalu menyalakan kembali Handoff adalah perbaikan pertama yang klasik.

Apa yang tetap privat dan apa yang tidak?

Clipboard bisa dibaca oleh aplikasi mana pun yang diizinkan membacanya. Tidak ada enkripsi per salinan. Karena itu komunitas membuat sebuah konvensi: aplikasi yang menyalin data sensitif menandainya dengan tipe pasteboard khusus, yang didokumentasikan di nspasteboard.org, seperti org.nspasteboard.ConcealedType (kata sandi) dan org.nspasteboard.TransientType (konten berumur pendek). Password manager umumnya menyetel tanda ini, dan clipboard manager yang baik akan melewati apa pun yang membawanya.

Maccy mengikuti konvensi ini. Di pengaturannya, pada bagian Ignore, Anda bisa melihat dan mengedit daftar tipe pasteboard yang diabaikan serta mengabaikan aplikasi tertentu sepenuhnya . Dua catatan jujur: penanda itu hanyalah konvensi, bukan mekanisme penegakan, sehingga aplikasi yang tidak menyetelnya membiarkan datanya terbuka, dan apa pun yang Anda salin terlihat oleh aplikasi mana pun yang diizinkan membaca clipboard sampai ia tertimpa.

Clipboard bawaan vs. clipboard manager

Clipboard bawaan (pasteboard) Riwayat Spotlight (Tahoe) Manager khusus (mis. Maccy)
Item tersimpan Satu Hanya item terbaru, kira-kira hitungan jam Riwayat yang bisa diatur
Pencarian Tidak ada Lewat Spotlight Ada, ketik untuk memfilter
Abaikan aplikasi/tipe sensitif Tidak berlaku Ya
Disimpan di disk Tidak Secara lokal di Mac Anda
Biaya Sudah termasuk Sudah termasuk Maccy: gratis dan open source

Jika Anda hanya sesekali perlu memulihkan salinan terbaru, riwayat Spotlight mungkin sudah cukup. Jika Anda menempel dari kumpulan snippet yang sama setiap hari, atau menginginkan pengecualian aplikasi sensitif dan riwayat lebih panjang, manager khusus layak dipakai. Maccy App berjalan dari menu bar, terbuka dengan ⇧⌘C secara default, dan dirancang dengan penyaringan yang mengutamakan keyboard . Apa pun pilihan Anda, semua penjelasan di atas tetap berlaku, karena setiap alat bertumpu pada pasteboard yang sama.

Pemecahan masalah: saat clipboard bermasalah

  • Tempel tidak berefek atau menempelkan konten lama. Salin sesuatu yang sepele dari kolom teks biasa untuk mereset kondisinya, lalu coba lagi. Jika masih terjadi, mulai ulang aplikasi tempat Anda menempel.
  • Format ikut terbawa. Gunakan Paste and Match Style (⌥⇧⌘V).
  • Menyalin file tapi yang tertempel path-nya (atau sebaliknya). Aplikasi memilih representasi yang berbeda dari yang Anda harapkan. Periksa isi clipboard dengan osascript -e 'clipboard info'.
  • Universal Clipboard tidak stabil. Pastikan Akun Apple sama, Handoff aktif, serta Bluetooth dan Wi-Fi menyala.
  • Jalan terakhir. Log out lalu masuk lagi, atau restart. Layanan pasteboard dikelola sistem dan dimulai ulang bersama sesi Anda.

Model mental yang perlu diingat

Menyalin berarti memublikasikan sekumpulan format dan menaikkan sebuah penghitung. Menempel berarti aplikasi tujuan memilih dari kumpulan itu. Semua hal lain, termasuk riwayat, sinkronisasi, dan privasi, dibangun di atas fondasi sederhana tersebut. Begitu Anda bisa melihat isi kumpulan itu dengan clipboard info, sebagian besar misteri clipboard tidak lagi misterius.

Kejutan saat menempel mana yang paling mengganggu Anda: format yang hilang, riwayat yang hilang, atau hal lain? Beri tahu kami, dan mungkin itu jadi panduan berikutnya.



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