Живой буфер обмена, синхронный в реальном времени

Живой буфер обмена — это онлайн-буфер обмена без кнопки отправки: текст появляется на другом вашем устройстве, пока вы его набираете, а скопированное уходит следом само. Почти всё в этой категории — поле ввода и кнопка. Разница кажется косметической, но это не так: она отделяет буфер обмена, которым вы делитесь, от формы, которую вы отправляете.

Что делает буфер обмена живым

Проверка простая: нужно ли что-то нажимать. Обычный онлайн-буфер обмена даёт вам поле, вы вставляете в него, жмёте «Отправить», а другое устройство показывает результат, когда перезагрузится или опросит сервер. Каждый шаг — это решение, а круг получается настолько долгим, что люди перестают ему доверять и снова начинают писать сами себе.

Живой буфер обмена убирает все три шага:

  • Нечего нажимать. Нажатия клавиш уходят на другое устройство, пока вы ещё печатаете.
  • Нечего перезагружать. Соединение остаётся открытым, поэтому приходящий текст появляется сам.
  • Некуда вставлять. На верхней ступени достаточно скопировать в любом месте машины — следят за самим буфером обмена.

Последнее и есть главный приз, и с ним же нужно быть аккуратнее всего: буфер обмена, который синхронизирует всё, синхронизирует и пароли, скопированные совсем по другому поводу. Поэтому это ступень, на которую вы поднимаетесь сами, а не единственный способ работы.

Живой, в реальном времени, онлайн

Это три названия одной категории, и разница в акценте, а не в сути. Тот, кто ищет любое из них, обычно хочет одного и того же, но слова несут разные ожидания, и стоит сказать, какое что означает.

Слова «живой», «в реальном времени», «онлайн» и «облачный» буфер обмена в сравнении: что подчёркивает каждое и что обычно имеют в виду те, кто его ищет.
Слово Что оно подчёркивает Что обычно имеют в виду
Живой Никаких ручных действий Обновляется сам, в обе стороны
В реальном времени Никакой задержки Приходит сейчас, а не после обновления страницы
Онлайн Через интернет Категория в целом, живая или нет
Облачный Привязан к учётной записи Обычно встроенный — Windows, Apple

Последняя строка и сбивает с толку. Облачный буфер обмена — так Microsoft и Apple называют функцию, встроенную в их собственные операционные системы, и обе привязаны к одной экосистеме и к одной учётной записи с выполненным входом: история Windows синхронизируется между компьютерами на Windows, Универсальный буфер обмена — между устройствами Apple, и ни один не переходит на другую сторону. Если вы ищете как раз потому, что телефон и ноутбук у вас от разных производителей, встроенный облачный буфер — именно то, что помочь не может.

В реальном времени набирается, а не только вставляется

Буфер обмена может делать в реальном времени две разные вещи, и большинство инструментов, которые заявляют это слово, умеют только вторую. Быстро доставить уже готовый фрагмент — лёгкая половина. Показать текст, пока он ещё пишется, — та половина, из-за которой два экрана начинают ощущаться как один.

Здесь набор передаётся потоком, а фрагменты фиксируются, и эти два пути разделены намеренно:

  1. Пока вы печатаете, редактор отправляет текст примерно десять раз в секунду. Другая сторона рисует его и больше ничего с ним не делает — ни истории, ни записи в буфер обмена.
  2. Когда вы останавливаетесь — через 800 мс тишины, при потере фокуса или по Ctrl+Enter — происходит фиксация. Именно тогда это становится настоящим фрагментом: попадает в историю и на верхней ступени уходит в системный буфер обмена.

Примерно после 4 КБ поток прекращается и текст синхронизируется только при фиксации; на практике это незаметно — такой длины текст вставляют, а не набирают.

Двое, печатающих одновременно, никогда не сливаются в один текст. Слияние параллельных правок требует CRDT, а это буфер обмена, а не редактор документов. Приходящий поток отбрасывается, пока печатаете вы, а фрагмент, который затёр бы несохранённое, предлагается, а не применяется. Столкновение на практике предотвращает то, что вы видите его заранее: курсор каждого подкрашивает его строку на полях его собственным цветом, так что вы видите, как другой начал, раньше, чем оба зафиксируете.

Насколько далеко достаёт живая синхронизация

Охват синхронизации — это одна настройка с тремя ступенями, и каждая добавляет ровно одно к предыдущей. Она в шапке приложения, а не в меню настроек, потому что это тот переключатель, который решает, что покидает машину.

Три ступени синхронизации — Выключено, Приложение и Буфер обмена — по тому, что покидает устройство и затрагивается ли системный буфер обмена.
Ступень Что происходит Трогает системный буфер обмена?
Выключено Ничего не покидает это устройство и ничего не приходит Нет
Приложение Текст синхронизируется внутри окна, живьём, в обе стороны Нет
Буфер обмена Скопированное вами уходит, а пришедшее копируется сюда Да, в обе стороны

Приложение — ступень, на которой большинству стоит оставаться на общих и рабочих машинах: сессия полностью живая, но системный буфер обмена не читается и не пишется, поэтому ничто скопированное по другому поводу наружу не уходит. Буфер обмена — та ступень, на которой достаточно скопировать где угодно на машине, и это одна настройка, управляющая обоими направлениями: устройство, переставшее отправлять, не продолжает молча принимать.

Чего живая синхронизация стоит на самом деле

Автоматическое чтение системного буфера обмена — это возможность, которую даёт браузер, а не функция, которую сайт может просто решить иметь, и ограничения стоит знать до того, как решить, что что-то сломалось.

  • Автоматическое чтение требует браузера на Chromium — Chrome, Edge, Brave, Opera. Firefox и Safari умеют отправлять и принимать вставленный текст, но сами буфер обмена не читают.
  • Ни один браузер не читает буфер обмена, пока его вкладка в фоне. Это правило безопасности браузера, и оно действует для всех веб-инструментов этой категории, не только для этого. Окно должно быть в фокусе.
  • Один фрагмент ограничен 24 000 символов — это размер кадра ретранслятора после шифрования, а не произвольный предел.
  • Файлы — не текст и потоком не идут: они передаются напрямую между браузерами по WebRTC, до 5 МБ каждый.

Если синхронизация не приходит вовсе, причина почти всегда из короткого списка — синхронизация буфера обмена не работает разбирает его по порядку.

Как пользоваться живым буфером обмена

RealtimeClipboard — живой буфер обмена из тех, что работают по общему ключу, так что регистрировать нечего:

  1. Откройте приложение на обоих устройствах.
  2. Введите на каждом один и тот же короткий ключ. Именно он их связывает — без учётной записи, без почты, без входа.
  3. Печатайте. Текст появляется на другом экране по ходу дела.

Ключ никогда не покидает ваш браузер: до ретранслятора доходит SHA-256(ключ) — только как адрес комнаты — и текст, уже зашифрованный AES-GCM. Ретранслятор пересылает шифротекст между соединениями и ничего не пишет на диск, поэтому «живой» здесь не значит «лежит на сервере и ждёт, пока вы заберёте»: забирать нечего, копии нет нигде. Он работает между разными сетями, а не только в одной Wi-Fi, и это та черта, на которой останавливаются локальные инструменты вроде Snapdrop.

Открыть живой буфер обмена

Частые вопросы

Есть ли онлайн-буфер обмена, который синхронизируется сам в реальном времени?

Есть. Оба устройства открывают одну и ту же страницу и вводят один и тот же короткий ключ, и дальше текст ходит между ними без единого нажатия — пока вы ещё печатаете, а не после отправки. На верхней ступени подключён и системный буфер обмена, так что достаточно скопировать в любом месте машины.

Чем «живой» отличается от «в реальном времени»?

На практике ничем — это одна и та же категория. «Живой» подчёркивает, что для обновления ничего не нужно нажимать, «в реальном времени» — что приходит сейчас, а не после следующего обновления страницы. Оба слова описывают онлайн-буфер обмена, который держит открытое соединение вместо того, чтобы заставлять вас отправлять форму.

Чем живой буфер обмена отличается от pastebin?

Pastebin хранит ваш текст по ссылке, чтобы вы отправили её кому-то, и текст лежит там до истечения срока. У живого буфера обмена нет ссылки, где лежало бы ваше содержимое, и делиться нечем: он кладёт текст на другое устройство прямо по мере написания и после этого ничего не хранит. Одно публикует, другое синхронизирует.

Работает ли это между Windows и Android?

Да, и это главная причина пользоваться им вместо встроенного варианта. Синхронизация Windows работает только между компьютерами на Windows с одной учётной записью Microsoft, а Универсальный буфер обмена Apple — только между устройствами Apple. Браузерный буфер обмена одинаково относится ко всем платформам, потому что ему нужен только браузер.

Почему синхронизация останавливается, когда я переключаю вкладку?

Потому что ни один браузер не позволяет странице читать системный буфер обмена, пока её вкладка в фоне, — это правило безопасности, и оно действует для всех веб-инструментов такого рода. Текст, уже попавший в сессию, приходит по-прежнему; приостанавливается автоматическое чтение того, что вы копируете в другом месте. Возврат фокуса на окно возобновляет его.

Безопасно ли это, если он видит всё, что я копирую?

Всё зависит от того, может ли сервис прочитать скопированное вами. Здесь текст шифруется в вашем браузере до отправки, поэтому ретранслятор пересылает шифротекст, который не может открыть, и ничего не пишет на диск. По той же причине охват синхронизации сделан ступенью, которую вы выбираете: на ступени «Приложение» сессия остаётся полностью живой, но системный буфер обмена не читается никогда, так что пароли, скопированные по другим поводам, в него вообще не попадают.