Блог Миши Тугушева

Лучший менеджер буфера обмена на macOS

Десятилетиями шёл к простому решению: один инструмент — BetterTouchTool — закрывает буфер обмена так, как нужно каждый день: быстро, удобно, без зоопарка утилит.

буфер обмена BetterTouchTools версии 5.631
На фото Кату-Яры́к – перевал в Алтайских горах, где автор блога был в 2021 году открытый в программе BetterTouchTool

Буфер обмена (анг. clipboard manager) — это простая программа или встроенная в систему функция, сохраняющая всё, что вы копируете. Это своего рода невидимый карман вашего устройства: промт для ии-бота, картинку с мемом, ссылку на новый выпуск Сережи и микрофон, файлы и многое другое. Всё, что может быть скопировано, хранится в буфере.

Но у стандартного буфера есть ограничение: он хранит только последний скопированный элемент. Не слишком удобно, особенно если работаешь с кучей данных и нужно быстро переключаться между разными фрагментами. А нам, эффективным прокрастинаторам с ЭВМ, конечно хочется большего! Это же компьютер, он может хранить больше одного объекта.

мем с уилом смитом про робота и буфер обмена

Так появились продвинутые менеджеры буфера обмена — программы, которые хранят множество скопированных элементов и поддерживают порядок сами по себе. Стандартные горячие клавиши — ⌘+C для копирования и ⌘+V для вставки. Все скопированные объекты на короткое время сохраняются в скрытых файлах на компьютере. Когда ты мечешься между десятками копипастов за час, начинаешь мечтать о действительно удобном буфере — с возможностями вроде:

  • быстрое открытие
  • открытие на любом рабочем столе
  • открытие поверх любых окон
  • перемещение объектов (drag&drop)
  • поиск по содержимому
  • автоматическое закрытие окна после вставки
  • автоматическая вставка в активном окне
  • вставка чистого текста без стилей и форматирования

Кто-то скажет, что синхронизация с iOS — must-have. Мне же всё чаще хочется включать режим луны не беспокоить и отключать устройства. По опыту, это помогает лучше сосредоточиться и отдыхать

Со временем я понял одну простую вещь: буфер обмена должен работать на тебя, а не наоборот. Как и любой инструмент, он должен помогать, а не мешать.

Немного истории

Первым моим буфером обмена стал встроенный в Unclutter. Но у него были серьёзные ограничения, не исправленные до сих пор. Неполная история, отсутствие зума в превью и неудобный drag&drop, затрудняющий вставку в другие программы.

В 2016 году на Product Hunt быстро взлетела программа Paste c удобным дизайном и большими превью. Она быстро завоевал популярность среди маководов. Но с выходом версии 2.6 разработчик ввёл подписку — это вызвало шквал критики, многие не приняли такую модель.

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

Меньше программ — меньше проблем при обновлении системы или покупке нового мака. И меньше времени на настройку и перенос данных.

Буфер у Alfred был простой, визуально понятный, но опять с ограничениями: поиск по содержиму внутри элемента нет, зума для превью нет и количество триггеров минимальное. Но ключевую функцию он выполнял.

В Twitter я подписался на разработчика Raycast. Программа сразу впечатлила: зум в превью, поиск по содержимому, режим Plain Text и стильный дизайн — и всё бесплатно! Но после чтения отзывов на Reddit меня смутили вопросы приватности и политика венчурных инвестиций.

сравнение окна буфера обмена Alfred, BTT, Raycast
Вот сравнение окон буферов обмена Alfred, BTT и Raycast (слева направо).

Unclutter был первым, но функционально отставал. Paste радовал дизайном, но подписка стала проблемой. Alfred удобен, но с компромиссами. Raycast цепляет бесплатными возможностями и дизайном, но вопросы приватности ставят под сомнение выбор. Постепенно я возвращаюсь к стандартным приложениям macOS, таким как Spotlight Search, которые хоть и не такие крутые по количеству встроенных функций, но работают быстро и органично.

Мой выбор: BTT

После покупки мака в этом году вспомнил, что в BetterTouchTool (BTT) есть встроенный менеджер буфера обмена. BTT помогает настраивать жесты, шорткаты и триггеры под свои задачи. Сейчас это фактически комбайн для продвинутых: BTT уже заменил мне Paste и Bartender, а со временем, вероятно, заменит и Karabiner-Elements и Popclip — нужные фичи там уже появились.

Про BTT писал много раз — это мои самые любимые посты в блоге. Их подготовка подарила кучу приятных моментов. Если пропустили, загляните в заметку про жесты

Поначалу разочаровался: CleanShot X копировал скриншот в буфер как изображение, и в Unclutter он вставлялся картинкой, а не «файлом» (режим Copy to clipboard: File & Image по умолчанию в CleanShot X). У меня в Unclutter расшарена папка Downloads, куда складываю рабочие файлы на день, поэтому хотелось добавлять скриншоты именно как файлы, а не как image data.

Обходных пути два: сначала сохранить снимок в файл горячей клавишей, а затем сделать его файлом и вставлять, или перетащить из превью в нужное место через drag&drop. Для чатов и форм веб‑сайтов вставка изображения проходит без проблем, но для Unclutter удобнее сценарий «как файл». Начиная с версии 5.631 поведение в BTT поправили, и проблема с вставкой в формате файла у меня больше не повторялась.

Вернулся к BTT спустя полгода и оставил его: есть зум превью, мгновенный поиск, мой старый шорткат работает, команда небольшая, цена адекватная. Главный плюс — не ставлю лишние приложения на новый мак: импорт настроек — и всё летает.

Дальше — про мои паттерны работы с буфером. Инструмент должен подстраиваться под логику, иначе толку мало. Вот что для меня важно и как это реализовано.

Открытие поверх окон
Открывается на любом рабочем столе и поверх любых приложений — меньше переключений контекста.

Тащи и бросай (Drag&Drop)
Можно поделиться с пацанами в чатике какой-то классной новостью или скриншотом.

Отправляю в чатик @ToolsProductivity

Поиск
Ищет по содержимому текста, типам и символам: достаточно набрать jpg/png/excel или фрагмент строки.

Редактирование текста
Дает поправить скопированное перед вставкой — экономит время на мелочах.

Что там по настройкам?

Control или Ctrl ⌃, Option или Alt ⌥, Shift ⇧, Command ⌘, Space ␣

Без теории — только рабочие шаги, чтобы быстро завести буфер в BTT. Пошаговая инструкция:

  1. Открываем BTT → Configuration → иконка клавиатуры →
  2. Нажать внизу на + внизу и записать шорткат + (Click here to record a shortcut)
  3. В Assign First Action to Selected Trigger выбрать Show Clipboard Manager / Pasteboard History
    Итог: шорткат ⌥␣ открывает менеджер буфера.
настройка триггера BetterTouchTools настройка окна буфера обмена BetterTouchTools
Настройка триггера открытия менеджера буфера и окна в BTT

После ⌥␣ настраиваю окно: отключаю слева панель избранного (Toggle Snippet Sidebar) и справа включаю режим предварительного просмотра (Toggle Collapse). В этом режиме зум не нужен: превью сразу крупное и читаемое. Если нужен зум, временно отключаю панель превью — просто тяну правый край списка вправо до упора. Панель форматирования (Aa) выключаю одним кликом. Шорткат для открытия — ⌥␣.

Триггер Описание
Keep items in history for x days (favorites will never be deleted) Хранить элементы x дней (у меня 14).
Default paste option:Plain Text Вставлять очищенный текст.
Move pasted item to top of list Перенос вставленный элемент в начало списка.
Keep Clipboard Manager floating on top while open (may cause pasting issues if disabled) Держать окно менеджера поверх остальных.
Close Clipboard Manager before pasting Закрывать менеджер перед вставкой.
DISABLE Microsoft Office performance optimizations Отключить оптимизации Office для корректной вставки.
Prevent duplicates Не добавлять дубликаты.
Ignore things copied via scripts within BetterTouchTool Игнорировать копирования из скриптов BTT
Show on monitor that contains active window Показывать на мониторе активного окна.
Row Height: 50 px Высота строки 50 px

Ещё одну отдельную программу удалось заменить — меньше расходов и проще обслуживание. При переустановке системы достаточно импортировать бэкап настроек, и всё сразу работает. Предпочитаю минимум лишних утилит и предсказуемое поведение одного инструмента. Долгосрочная поддержка тоже важна — хочется быть уверенным, что проект Андреаса Хегенберга будет жить.

BetterTouchTools стал для меня идеальным решением — компактный, функциональный и не требует лишних расходов. А у вас какой любимый менеджер буфера обмена? Поделитесь в комментариях, всегда интересно узнать ваши варианты!

Еще по теме

Поигрался со Stable Diffusion

Давно хотел наконец‑то поработать с визуальными ИИ‑моделями — тем более после всех разговоров о том, как “легко” это делается.

Перепробовал разные алгоритмы, но всё время упирался в ограничения или предсказуемость их работы. В итоге решил поднять Stable Diffusion локально на макбуке с M4 — благо сейчас доступно несколько адаптированных сборок под macOS. Это открытая модель генерации изображений, где ты сам решаешь, что и как запускать, без внешних лимитов.

Скачиваешь нужные модели на civitai Civitai, подбираешь тематические LoRA, и дальше начинается весёлый день‑два подбора рабочих сочетаний настроек. Для новичков это адский процесс, особенно на маке. Я шел по инструкции из Perplexity, и в целом установка на ARM‑процессоре прошла без боли: ставим Python, создаем окружение, запускаем Stable Diffusion в консоли, а потом уже открываем интерфейс в браузере.

Поначалу тестировал хардкорные модели — от CyberRealistic и LucentXL до Flux 1.Dev в fp16 и fp8. Примерно три дня пытался нащупать баланс Sampler, Steps, CFG и размера. На Civitai находил понравившиеся образы, смотрел промты, адаптировал их под себя. Хотел воспроизвести стиль своих любимых авторов вроде @squishypotato — и, конечно, с теми же параметрами получались совершенно другие результаты.

На низких Steps и слабом CFG лица часто плыли, иногда появлялись лишние руки или пальцы. Но это только подзадоривало. После пары ночей экспериментов понял главное различие: большинство картинок на Civitai созданы не на внутренней “инфраструктуре” сайта, а на более мощных системах с другими настройками.

Так выглядят искажения, когда параметры не оптимизированы

Секрет оказался в простом апскейле — просто увеличил разрешение в два раза.

Апскейл реально улучшил детализацию: лица стали узнаваемее, кожа ровнее, предметы четче. Правда, цена — время. Генерация с 512×512 до 1024×1024 на M4 выросла с двух до примерно пяти минут. Но результат того стоил: картинки выглядели почти как у популярных ИИ‑артистов.

Чем больше сидел на Civitai и прокачивал насмотренность, тем чётче становилось понимание, какие сочетания параметров дают “киношную” картинку. Мой первый удачный результат настолько вдохновил, что я начал воссоздавать свои старые сохранёнки из инсты — например, работы AJ Hamilton.

Генерация таких изображений занимает от 4 до 6 минут

Мой первый результат меня так пушил, что я наконец-то пытался повторить разные своих сохраненки из инсты. Например, работы AJ Hamilton:

Постепенно увлечение переросло в чистое задротство: я вылизывал каждую деталь, пока не получалось максимально близко к “реальному” фото. Иногда, конечно, перегибал — например, просил добавить прозрачный боди и татуировки, а модель вдруг решила поменять расу персонажа или перепутала веса LoRA и промта, оставив только полупрозрачный лиф.

Если используем модели с приставкой NSFW, то будьте готовы, что даже в самых безобидных промтах может давать эротику, а не то что нужно было

В итоге я понял простую вещь: результат всегда зависит от того, на чём обучалась модель, с какими LoRA ты её смешал и как собрал промт. Всё остальное — немного удачи и чуточку магии.

Организация и хранений паролей в Apple Passwords

Всем привет, мои маленькие любители цифровой гигиены. Уже полгода я использую приложение Пароли от Эпл (Password) для хранения паролей и жопа у меня не отвалилась. Туда перевез не только пароли, но и другие чувствительные данные, которыми часто пользовался в приложении 1Password.

В этом посте я намерено пишу Apple Passords, а иначе непонятно про какие пароли я пишу. Просто пароли или это приложение пароли от Эпл

Для начала, общее понимание, что храню: пароли сайтов/приложений, банковские карточки и документы. Для больших групп создал отдельные папки. Так мне наиболее легко перемещаться между категориями. Эпл это придумал, как шеринг с другими, но для меня это просто как дополнение разделение типов.

Папка Заголовок Описание
Banking Название банка *четыре последних цифры Данные банковских карточек, включающие номера, пин-коды, дату окончания и CVV.
Family Это пароли для моих родных и близких.
Gov Название категории – Название документа Данные паспортов, инэнэнов и прочих снилсов
Work Название проекта – Название сервиса Рабочие пароли

В планах сюда внести обратно папку с IT, потому что в Apple Passwords – это отдельный гемор хранить данные длинных ссылок с портами, где есть важные данные после слэша. Про нейминг логинов можно почитать в посте про 1Password – это все еще актуально для меня и я также это адаптировал для Apple Passwords.

группы в приложении Эпл Пароли
Стандартное приложение Apple Passwords в macOS Sequoia 15.6

Данные карточек
По идее, можно было бы использовать автозаполнение из Сафари, но в последних версиях iOS оно стало связано с Apple Wallet и в России это не работает. Мне привычнее и удобнее иметь общее место для хранения таких данных. Безусловно, в 1Password это круто реализовано, но я устал от гемора с оплатой и мне, честно говоря, надоело платить за удобство. Пусть будет менее удобно, но зато в одной экосистеме, когда у тебя и мак, и айфон, и айпад.

Я больше всего кайфую с поисковой строки внизу. КАК ЖЕ ЭТО СТАЛО УДОБНО, особенно если вы ходите с айфон про макс. Каждый раз, когда мне приходится открывать 1Password на Айфоне, то это жуткая боль. Почему они не додумались перенести поиск вниз? Неужели все люди с 1Password ходят с Айфон Мини?

Сравнение стартовых экранов Эпл Пароли и Ванпассворд

Номер карты я добавляю в поле User Name, а пин-код в поле Password. Остальное записываю в блок Notes, обычно это дата и CVV (Card Verification Value). Его бы, по-хорошему, тоже скрывать, но я готов пойти на такие риски, при условии, что не тыкаю своими данными в глаза прохожих.

банковские карты в Эпл паролях

Другая штука – это чувствительный поиск. Я специально добавил символы в содержании карт. Во-первых, я могу ввести символ решетки # и у меня будут все мои 100500 банковских карточек. Да-да, у меня отдельный банк для каждой оплаты :D

Во-вторых, если я забуду про решетку, когда перед оплатой мне нужно зайти и вспомнить пин, то я могу использовать звездочку * или название банка. У меня тут принципиально на английском, чтобы все было однородно и было легко искать без напряга памяти.

И в-третьих, работает это так быстро, что 1Password и не снилось. Это работает мгновенно и без какой-либо задержки на моем любом устройстве от Эпл.

Документы
Можно использовать, конечно, Госуслуги, которые сделали хранение всех данных удобными, но есть всегда риски, что они могут не открыться, когда нет интернета. А тут тебе все хранится локально на устройстве, а значит ты не останешься без номера паспорта или даты его выдачи. ФИО я добавляю в User Name, как средство визуального отделения от других типов. Я всегда знаю, что это данные моих документов, а не банковских карточек или чего-то еще.

данные загранпаспорта в Эпл паролях
Данные загранпаспорта

Номер документа добавляется в поле Password, а дата выдачи или название органов, выдавших его, идут в поле Notes. Да, тут нет возможности быстро скопировать отдельный фрагмент, есть вероятность, что вы можете повредить данные, но, мне кажется, эта вероятность настолько мала, что можно и так пожить с этим.

Веб-сервисы
Данные всевозможных веб-сервисов, работающих на убунте, мне приходится разделять. Благодаря возможности на кинетиках в один клик буквально выпустить домен, то я добавил каждому отдельное имя. Это делается, потому что Apple Passwords не умеют хранить такие данные: http://192.168.1.1:9090, подобная ссылка автоматически сохранится до http://192.168.1.1. Поэтому такие данные я храню в поле Notes. Например, на моей убунте все сервисы по этому разделены. Выглядит так:

  • Transmissions, trm.rtr-nkz.netcraze.pro
  • JupyterLab, jupyter.rtr-nkz.netcraze.pro
  • ProxMox, prm.rtr-nkz.netcraze.pro

Теперь пароли не пересекаются и хранятся отдельно друг от друга. Внутренние адреса с портами уже записаны внутри заметок. Также не возникает конфликтов при автозаполнении. Раньше Apple Passwords на Transmissions вполне бы мог предложить пароль от ProxMox или роутера, так как для него это один домен. Как я писал в начале, то в планах как раз для всех веб-сервисов, хостингов и панелей завести отдельную папку для хранения подобных данных, иначе хрен вспомню название хостера, которого завел полгода назад.

Глюки Apple Passwords

  • Если вы переименовали папку на одном устройстве, то она не мгновенно меняет название на другом устройстве
  • Если набрать слова alfa и не только, то будут выведены логины, где рандомно встречаются эти буквы

В остальном приложение отлично подходит под мои задачи, а благодаря экосистеме все синкается и мгновенно работает между устройствами. Предполагаю, что флоу как у меня явно не подойдет тем кто ходит с Айфоном, а работает на Винде. Тут явно будет неудобно и больно. Тогда проще завести 1Password или на худой конец опенсорсный Bitwarden.

Расскажите, как вы храните пароли?

Еще по теме

Полгода с Spotlight Search

Решил больше не ставить Alfred и Raycast на новый макбук. Год назад они были в моем любимом списке софта на мак, но в последних апдейтах стало слишком много попапов про оплату — я просто сказал: «да идите вы нахер». Плюс, несколько обсуждений на реддите навели на мысль, что с проектами, которые финансируются венчурными деньгами, сложно быть уверенным: сегодня есть, завтра сдали данные куда-то.

А по факту — на M4 встроенный Спотлайт работает так быстро и органично, что никуда и переходить не хочется. Особенно учитывая, что конкуренты так и не закрыли мои рабочие задачи.

Почему Raycast и Alfred мне не зашли

  • Raycast: встроенный переводчик там настолько медленный, что быстрее к соседке-бабушке обратиться; плюс сама концепция маленьких окошек не ложится мне в рабочий флоу.
  • Alfred: одна из лучших функций — подключение переводчика через API. Пока доступ был бесплатный — пользовался, но его настройка всегда была геморройной, да и плагины не факт что обновляются в 2025.
  • Древний дизайн Alfred будто из эпохи Джобса и в этом смысле разработчик Raycast понял, что надо типам.

Что заменил в Alfred/Raycast

  • Раньше любил быстрый поиск по Google Docs через Alfred, но с разделением рабочих и личных аккаунтов стало неудобно.
  • У Рейкаста хорошая интеграция с ChatGPT и другими AI-инструментами (мой постоянный читатель Артем, например, кайфует от связки ChatGPT Plus + Raycast AI + Perplexity Pro + OpenRouter). Но для меня Perplexity в Slidepad встроился гораздо органичнее — всегда под рукой и не мешает.
Поиск рабочих файликов с помощью Alfred

Что реально работает в Spotlight

Для моих задач оказалось, что хватает встроенного Спотлайта:

  • молниеносное открытие программ
  • быстрый поиск и открытие документов/писем (нежно люблю mail.app)
  • поиск по эпл-заметкам без костылей и плагинов

Да, у Spotlight функций меньше, чем у Alfred или Raycast, и с математикой у него всё проще. Но главное — он работает из коробки и не требует вечных настроек. Хотя у Alfred был крутой плагин Alfred Calculate Anything — по моим ощущениям, до сих пор никто его не переплюнул.

Я бы с радостью остался на Alfred и поддерживал такие маленькие команды, но Perplexity как будто заменил их всех.

В итоге, всем, кто сидит на Mac и не хочет заморачиваться с настройками или переживать о приватности — стандартный Spotlight отлично подойдёт.

Почему пользоваться Аезой это высокий риск?

Последние дни напомнили мне, зачем вообще нужна психотерапия. Все началось с обычного утра: два любимых сервера в Aeza вырубились разом — не пингуются, не заходят по SSH, VNC тоже мертвый. Решил проверить — может, баг, перегрузил, бывает. Но нет. Поддержка отвечает: «Мы не можем восстановить ОС, предлагаем только переезд на новый хост и вот тебе SWE-PROMO с новыми ресурсами».

И тут начинается триллер

  • Сервер удалили, о данных можешь забыть.
  • По тарифу теперь не 20 ГБ и 8 ГБ RAM, а два раза меньше.
  • Денег за оставшийся период никто отдавать не собирается, промо — не возвращаем.

Все мои протесты про «вы должны компенсировать, вернуть такие же ресурсы или вернуть деньги» разбиваются о стену ответов «услуга оказана, ничего не меняем».

Аеза кинула на сервера Аеза кинула на деньги

Короткий FAQ из переписки

  • Запрос — что случилось? Ответ: «Технические причины, перенос невозможен»;
  • По данным: «Нет возможности сохранить — мы не управляем этим оборудованием»;
  • По тарифу: «Изменение невозможно, возврата нет»;
  • На попытку объяснить, что сервис не нужен и ждать возврат — «Невозможно, создайте тикет»;
  • По выделенным ресурсам: «Что дали, то получите».

У одного из серверов оплата до февраля 2026, у другого до ноября 2025. За год платил по 1200₽ в пересчете на их евро-курс (2 евро = где-то 260 рублей), кайфовал, конфиги, данные, трафик — всё летало. Но в один момент просто всё обнулили. Для справки: вот чем отличаются старый и новый «промо»-тарифы, которые они теперь предлагают:

Сравнение промо тарифа Аезы 2022 года и 2025
Сверху стало, снизу было

Вывод
Если любишь предсказуемость — Aeza точно не про это. В любой момент промо-тариф могут отключить, поменять условия, твои данные и ресурсы исчезнут без компенсации. А поддержка во всех случаях ссылается на «таковы правила, услуга оказана». Сейчас присмотрелся к hosting-vds.com за 200₽ можно получить что-то сопоставимое.

P.S. Спустя три дня после обращения компания сделала перерасчет и выплатили всего 25€. По моим расчет было почти 30, ну и на этом спасибо как говорится.

Самая важная настройка в Zoom

Мы все живем в постоянном потоке звонков. Кто-то по рабочим задачам, кто-то по учебе, а у кого-то на день расписаны подряд три «синка» с коллегами. Но есть одна вещь, которая меня всегда бесила — создание ссылки на Zoom-встречу.

Знакомо? Ты хочешь за две секунды открыть конфу и закинуть линк другу или коллеге, а вместо этого начинаешь копаться в настройках, выбирать New Meeting, жать Invite, копировать ссылку и потом вручную её кидать. Кажется, что это пустяк, но именно такие микрозадержки вытягивают по миллиметру твое внимание и настроение.

Я однажды подумал: «А почему Zoom не может работать так же легко, как быстрое сообщение в мессенджере?» И нашел решение лет пять назад.

В Zoom есть прекрасная настройка, которой мало кто пользуется — Personal Meeting ID (PMI). Твоя уникальная, постоянная ссылка для звонков.

Что нужно сделать:

  • Отметьте Use my personal meeting ID (PMI)
  • Сохраните ссылку us04web.zoom.us/j/3745324450?pwd=em93V1BsWE1xT3hKU1VLcVdXTVcyQT88 из Copy invitation
  • Зайдите в macOS в System Settings > Keyboard > Text Replacements и добавьте свой шорткат
Настйка персональной встречи в Zoom Быстрый шорткат через замену текста в macOS для Zoom

Теперь достаточно вбить в любом чате «@zoom» или другой свой триггер — и система сама превратит это в полноценную Zoom-ссылку.

Почему это удобно

  • Экономишь минуты каждый день
  • Не тратишь внимание на рутину: Zoom стал таким же быстрым, как стикер в Телеграме
  • Всегда одна и та же ссылка: никакой путаницы
  • Можно использовать и для других приложений

Как Unclutter упрощает жизнь на маке

Есть такие программы, которые покупаешь в самом начале и они становятся чем-то вроде робота-пылесоса в квартире. Стоят где-то в углу, никому не мешают и каждый день тебя выручают. У меня такой старожил на маке — Unclutter (рус. «Анклатер»).

Я поставил его еще 28 ноября 2015 года. И помню этот кайф: заплатил 10$, и теперь у меня под рукой есть удобный карманчик, который вызывается простым движением — двумя пальцами вниз по трекпаду. И при этом этот карман не занимает место на экране и виден только тогда, когда ты его открыл. В нем можно быстро хранить файлы, заметки и буфер обмена — всё, что нужно, всегда рядом, но без лишнего шума, пока не понадобилось.

Не буду врать — потребовалось несколько итераций, чтобы сделать его максимально удобным

Мой флоу

Сначала сделал быстрый доступ к Downloads. Это банальная папка, в которую валятся все файлы из браузера. Но в связке с Unclutter всё стало как-то живее: открыл Фигму — перетащил картинку раз, открыл архив — посмотрел через backspace два. Минимум действий, максимум скорости.

Перенос файлов в программе Анклатер

Потом добавил заметки. Вот тут началось настоящее удобство. Ты работаешь с API, нужно сохранить какой-то ключ, а в Notion или заметки лезть лень. Просто свайпнул, бросил туда короткую запись, и она всегда под рукой. Минус? Да. Новый мак — и ты такой: «А где те самые ключи?» Всё, улетели вместе со старой системой. Поэтому раз в год у меня происходит ритуал забвения.

Добавление заметки в программе Анклатер

Дальше была история с буфером обмена. Вот он у меня дошёл до стадии «красиво, но не работает». Полгода я пытался им пользоваться, пока не понял, что ограничения слишком душные: мало места, нельзя нормально работать с картинками, drag&drop не дружит. В итоге меня выручил BetterTouchTool. Но идея, конечно, хорошая.

Самый большой минус программы только в одном — нет поддержки меню Quick Actions для файлов

За что я его уважаю

Программа живёт уже более 10 лет. Она неоднократно попадала в сборники от Mac App Store в 2018 и с 2020 по 2023 года. Сделал её украинский разработчик Женя Крупнов ещё в 2012 году, и с тех пор он стабильно выпускает апдейты, чинит баги и даже отвечает на русском. Такой ламповый подход реально дорогого стоит.

Письмо разработчика Анклатер
Переписка с Женей в 2020 году о баге с файлами

Жаль только, что сейчас в российском Апсторе купить Unclutter нельзя. Если повезло урвать раньше — береги, потому что аналогов с таким же простым UX я даже не видел.

Главное

  • Файлы: быстрый доступ и моментальные действия
  • Заметки: для быстрых, временных, но очень нужных мыслей
  • Буфер: красивый концепт, но на практике мимо
  • Цена 20$ в апсторе сущие копейки за скорость
  • Доступна в менеджере пакетов Home Brew

Еще по теме

Choosy — браузерный ассистент

Choosy — это утилитита, помогающая открывать ссылки не только в браузерах, но и программах.

Она ежедневно выручает тех, кто пользуется несколькими браузерами или разными программами, использующих веб-ссылки. Программа платная и стоит 10$. Есть возможность ее установить из менеджера пакетов Brew и потом просто указать свою лицензию.

Основной функционал:

  • Выбор любого установленного браузера или профиля без открытия напрямую
  • Нативно работает в macOS, как AirDrop, Handoff и меню «Поделиться»
  • Расширения для браузеров, чтобы переносить ссылки между браузерами
  • Есть поддержка API для работы с ссылками

Программу разработал Джордж Броклхерст (англ. George Brocklehurst.) в 2007 году.

настройки браузеров в программе Choosy 2.4.2 настройки правил в программе Choosy 2.4.2 настройки визуального меню в программе Choosy 2.4.2 расширенные настройки в программе Choosy 2.4.2 о программе и авторе в программе Choosy 2.4.2
Это все доступные настройки в программе

У нее довольно простой интерфейс, где мы просто назначаем Choosy браузером по-умолчанию и дальше она управляет работой ссылок в macOS. В базовой настройке я добавляю только Zoom, так как Teams и прочие больше не используется в рабочих проектах. Меняю на стиль в виде кружочков и программой можно пользоваться. Несколько примеров из жизни:

Zoom
Ссылки в Zoom сразу открываются в Zoom, если он открыт, минуя открытие окна в браузере

Spotify
Ссылки на треки или плей-листы в Spotify сразу открываются в программе Spotify

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

Еще по теме

Разбор задач из Озона для аналитиков

На собеседованиях любят простые по формулировке задачи, которые при этом сразу проверяют: понимаешь ли ты, как работает SQL и умеешь ли мыслить данными. Хочу разобрать две задачи, которые «встряхнули» меня на интервью. Первая — про JOIN‑ы, вторая — про пересчёт валют.

Задача 1

Две таблички с набором строк:

  • слева 4, 5, 6 (Tab 1)
  • справа 4, 4, 5, 5, (Tab 2)

Вопрос: скажите количество строк в результирующей таблице при 1. inner join 2. left join 3. cross join

Решение

  1. INNER JOIN берёт каждую строку из левой таблицы и ищет в правой все строки, где id совпадает. Если для одного значения в левой таблице есть несколько подходящих строк в правой — то SQL создаёт отдельную строку результата для КАЖДОГО совпадения. Это как правило умножения: 1 строка слева × N совпадений справа → N строк в результате.

У нас получается две строки: первая это 4,4; вторая 4;4 так как в табличке справа всего одно значение 4. Далее три пятерки также создают две строки. Всего 4 строки

  1. LEFT JOIN берёт все строки из левой таблицы (Tab 1) и “подклеивает” подходящие строки из Tab 2.
    Если совпадений нет → будет NULL в части Tab 2. Разберём:
    id=4 — 2 совпадения → 2 строки
    id=5 — 2 совпадения → 2 строки
    id=6 — нет совпадений → 1 строка (tab2.id = NULL)

Итого: 2 + 2 + 1 = 5 строк

  1. CROSS JOIN — декартово произведение: каждая строка Tab 1 умножается на каждую строку Tab 2. В Tab 1 — 3 строки, в Tab 2 — 4 строки. Итог: 3 × 4 = 12 строк

Задача 2. Пересчёт транзакций в рубли

Дано две таблицы:

transactions

  • id (int) — PK
  • date (date) — дата транзакции (может быть и выходной)
  • currency (varchar) — валюта
  • amount (float) — сумма в валюте

exchange

  • id (int) — PK
  • date (date) — дата публикации курса (только будние дни)
  • currency (varchar) — валюта
  • exc_cource (float) — курс валюты к рублю

Задача:

Добавить в transactions поле rub_amount = сумма в рублях.

  • если курс есть на дату транзакции — берём его,
  • если нет (например, выходные) — берём последний доступный курс до этой даты.

Основное затруднение

— Курс есть не на любую дату, а только на последние рабочие дни
— Поэтому на выходных берём последний курс до транзакции

Ошибочный путь

Я на собесе сначала пытался просто присоединить по дате и валюте. Но если транзакция попадает на выходной, курса на этот день нет → результат NULL.

Правильный алгоритм

  1. Для каждой транзакции фильтруем курсы по нужной валюте.
  2. Оставляем только те, где date <= дата транзакции.
  3. Берём курс с максимальной датой из этих.
  4. Умножаем amount * exc_cource.
Задача SQL для аналитика в Ozon
SELECT
    t.*,                            -- 1. Берём все поля из таблицы транзакций
    t.amount * e.exc_cource AS rub_amount     -- 2. Добавляем новый столбец: пересчёт суммы в рубли
FROM
    transactions t                            -- 3. Основная таблица транзакций
LEFT JOIN exchange e                          -- 4. Присоединяем таблицу курсов
    ON e.currency = t.currency                --    по совпадению валюты
    AND e.date = (                            --    и по дате:
        SELECT MAX(date)                      -- 5. Вложенный запрос: находим
        FROM exchange                         --    среди курсов
        WHERE currency = t.currency           --    по нужной валюте
          AND date <= t.date                  --    и не позже даты транзакции!
    )

Эта задача проверяет умение правильно «подбирать» данные, когда они неполные. На практике это встречается часто (календарные ряды, цены на дату, остатки складов).

Пошагово:

  • Читаем из transactions по одной строке.
  • Для каждой строки ищем ВСЕ курсы в exchange с этой валютой и датой не позже транзакции.
  • Среди них берём САМУЮ ПОЗДНЮЮ дату (MAX(date)).
  • Присоединяем найденную строку exchange к транзакции (по валюте и дате курса).
  • Считаем сумму в рублях.
  • Если курс не найден — rub_amount будет NULL (транзакция останется без курса).

Итог

Две задачи, простые на вид, позволяют показать логику:

  • Задача 1 тренирует понимание join‑ов.
  • Задача 2 — умение работать с неполными данными и аккуратно подбирать «последнее известное значение».

Именно такие кейсы на собесах отличают того, кто просто знает SQL‑синтаксис, от того, кто умеет применять его для аналитики.

Earlier Ctrl + ↓