Documentation

Конфигурация

Программная настройка Snapzy с помощью файла config.toml для переносимого управления параметрами, автоматического резервного копирования и синхронизации с dotfiles.

Обзор

Для опытных пользователей, разработчиков и системных администраторов Snapzy поддерживает расширенную программную настройку с помощью стандартного файла TOML (config.toml). Это позволяет управлять всеми параметрами приложения в текстовом формате, синхронизировать их через репозитории dotfiles и настраивать автоматическое развертывание в различных окружениях macOS.

Требование для начала работы — Из-за ограничений безопасности песочницы macOS приложению Snapzy требуется разовое предоставление разрешений на доступ к папке, чтобы иметь возможность читать или писать файлы в вашем домашнем каталоге. Настройте это на вкладке «Дополнительно» (Advanced) в настройках приложения.


Начало работы

1. Предоставление доступа к конфигурации

  1. Откройте Настройки (Preferences) Snapzy (Cmd + ,) и перейдите на вкладку Дополнительно (Advanced).
  2. Нажмите Настройка config.toml (Set Up config.toml).
  3. Появится системное диалоговое окно с запросом на выбор каталога конфигурации или предоставление доступа к нему. Выберите нужную директорию (обычно ~/.config/snapzy/) и нажмите Предоставить доступ (Grant Access).

После предоставления доступа Snapzy автоматически сгенерирует файл config.toml по умолчанию по следующему пути:

~/.config/snapzy/config.toml

2. Синхронизация и фоновая загрузка

  • Применение при запуске: Snapzy анализирует и проверяет валидность config.toml при каждом запуске приложения.
  • Автоматическая фоновая синхронизация: Приложение отслеживает изменения в файле config.toml в фоновом режиме. Изменения, сохраненные непосредственно в вашем редакторе, автоматически проверяются и применяются в течение нескольких секунд (используется фильтрация дребезга для предотвращения неполного считывания файла во время записи).
  • Ручная синхронизация: Вы можете нажать кнопку Синхронизировать config.toml (Sync config.toml) в дополнительных настройках, чтобы мгновенно перезагрузить конфигурацию.
  • Сброс настроек: Нажатие кнопки Восстановить настройки по умолчанию перезаписывает существующий TOML-файл заводскими значениями по умолчанию.

Шаблон файла TOML с комментариями

Ниже приведен полный шаблон файла config.toml со всеми доступными параметрами и комментариями, объясняющими каждый атрибут.

# Версия схемы Snapzy TOML (должна быть равна 1)
schema_version = 1

# Минимальная версия Snapzy, необходимая для этого файла
snapzy_min_version = "1.20.0"

[general]
language = "system"                # "system" или код языка: "en", "vi", "ja", "ko", "ru", "zh", "zh-tw"
appearance = "system"              # Тема оформления: "system", "light" или "dark"
play_sounds = true                 # Воспроизведение звуковых эффектов при снимке/записи
start_at_login = false             # Автоматический запуск Snapzy при старте macOS
export_location = "~/Pictures"     # Локальная папка для сохранения снимков (поддерживается символ ~)

[updates]
check_automatically = true         # Автоматическая проверка обновлений через Sparkle
download_automatically = false     # Фоновая загрузка обновлений без вывода всплывающих окон

[diagnostics]
enabled = true                     # Включение локального ведения журнала диагностики для отчетов о проблемах
retention_days = 7                 # Количество дней для хранения файлов журналов (от 1 до 30)

[capture]
hide_desktop_icons = false         # Временное скрытие иконок рабочего стола при захвате
hide_desktop_widgets = false       # Временное скрытие виджетов рабочего стола при захвате

[capture.naming]
screenshot_template = "Snapzy_{year}-{month}-{day}_{hour}-{minute}-{second}_{milliseconds}" # Шаблон имени снимков
recording_template = "Snapzy_{year}-{month}-{day}_{hour}-{minute}-{second}_{milliseconds}"  # Шаблон имени видеозаписей

[capture.screenshot]
format = "png"                     # Формат файлов снимков: "png", "jpeg" или "webp"
include_snapzy = false             # Включение панелей управления самого Snapzy в область снимков
show_cursor = false                # Показывать курсор мыши macOS на снимках экрана

[capture.scrolling]
show_hints = true                  # Показывать подсказки во время захвата с прокруткой

[capture.ocr]
success_notification = false       # Отправлять системное уведомление при успешном распознавании текста (OCR)

[capture.object_cutout]
auto_crop = true                   # Автоматическая обрезка пустых полей вокруг вырезанного объекта

[capture.after.screenshot]
save = true                        # Автоматически сохранять скриншоты в целевую папку
quick_access = true                # Показывать панель быстрого доступа после захвата
copy_file = true                   # Копировать путь к сохраненному файлу в буфер обмена
open_annotate = false              # Автоматически открывать изображение в редакторе аннотаций (Annotate)
upload_to_cloud = false            # Мгновенно загружать изображение в настроенное облачное хранилище

[capture.after.recording]
save = true                        # Автоматически сохранять видеозаписи в целевую папку
quick_access = true                # Показывать панель быстрого доступа после завершения записи
copy_file = true                   # Копировать путь к файлу видеозаписи в буфер обмена
open_annotate = false              # Автоматически открывать видео в видеоредакторе (Video Editor)
upload_to_cloud = false            # Мгновенно загружать видео в настроенное облачное хранилище

[recording]
format = "mov"                     # Формат видеоконтейнера: "mov" или "mp4"
quality = "high"                   # Профиль качества видео: "high", "medium" или "low"
fps = 30                           # Целевая частота кадров в секунду (от 1 до 120)
output_mode = "video"              # Формат экспорта медиа: "video" (MP4/MOV) или "gif" (анимированный GIF)
capture_system_audio = true        # Запись системного звука (требуется виртуальный аудиодрайвер)
capture_microphone = false         # Запись звука с микрофона
microphone_device_id = ""          # Идентификатор устройства CoreAudio для записи с микрофона
remember_last_area = true          # Запоминать координаты последней области захвата для следующих сессий
include_snapzy = false             # Включать панели управления Snapzy в финальную видеозапись
show_cursor = true                 # Включать курсор мыши macOS в видеозапись
highlight_clicks = false           # Отображать анимационные кольца вокруг указателя при кликах мыши
show_keystrokes = false            # Отображать нажатые клавиши на экране во время записи

[recording.mouse_highlight]
size = 50                          # Диаметр круга подсветки клика мыши в пикселях (от 20 до 120)
animation_duration = 0.7           # Длительность анимации волны клика в секундах (от 0.1 до 3.0)
color = "#FF000080"                # Шестнадцатеричный код цвета круга подсветки (#RRGGBB или #RRGGBBAA)
opacity = 0.5                      # Непрозрачность круга подсветки (от 0.0 до 1.0)
ripple_count = 3                   # Количество кругов волны на один клик (от 1 до 6)

[recording.keystrokes]
font_size = 18.0                   # Размер шрифта отображения клавиш в пунктах (от 10.0 до 48.0)
position = "bottomCenter"          # Положение оверлея: "topLeft", "topRight", "bottomLeft", "bottomRight", "bottomCenter" и т. д.
display_duration = 2.0             # Время отображения клавиш на экране в секундах (от 0.3 до 10.0)

[recording.annotation_shortcuts]
modifier = "shift"                 # Вспомогательная клавиша для вызова панели аннотаций: "shift", "option", "command", "control"
hold_duration = 1.0                # Время удержания клавиши для активации панели в секундах (от 0.1 до 5.0)

[quick_access]
enabled = true                     # Включение мини-панели быстрого доступа после захвата
position = "bottomRight"           # Угол привязки панели: "topLeft", "topRight", "bottomLeft", "bottomRight"
auto_dismiss = true                # Автоматически скрывать панель по истечении таймера
auto_dismiss_delay = 10.0          # Время ожидания перед скрытием панели в секундах (от 3.0 до 30.0)
pause_countdown_on_hover = true    # Приостанавливать таймер автоскрытия при наведении курсора на панель
overlay_scale = 1.0                # Коэффициент масштаба панели быстрого доступа (от 0.75 до 1.5)
drag_drop = true                   # Разрешить перетаскивание файлов (Drag and Drop) из панели в другие приложения
actions_order = ["copy", "annotate", "save", "cloud", "delete"] # Порядок отображения быстрых кнопок
enabled_actions = ["copy", "annotate", "save", "cloud", "delete"] # Список отображаемых кнопок действий

[quick_access.slots]
center_top = "copy"                # Назначение действия для центрального верхнего слота
center_bottom = "annotate"         # Назначение действия для центрального нижнего слота
top_trailing = "save"              # Назначение действия для верхнего правого слота
top_leading = "cloud"              # Назначение действия для верхнего левого слота
bottom_leading = "delete"          # Назначение действия для нижнего левого слота
bottom_trailing = ""               # Оставьте пустым, если слот не используется

[history]
enabled = true                     # Включение локального сохранения истории захватов в приложении
retention_days = 30                # Период хранения записей в днях (0 для бесконечного хранения)
max_count = 500                    # Максимальное количество записей в истории (от 0 до 1000)
background_style = "hud"           # Стиль фона окна истории: "hud" (полупрозрачное стекло) или "solid" (непрозрачный)
open_on_launch = false             # Автоматически открывать окно истории при каждом запуске Snapzy

[history.floating]
enabled = true                     # Показывать всплывающую панель истории HUD на экране
position = "topCenter"             # Положение всплывающей панели истории: "topCenter", "bottomCenter", "center"
default_filter = "all"             # Фильтр по умолчанию: "all", "screenshot", "recording", "ocr", "cutout"
max_displayed_items = 10           # Максимальное количество отображаемых карточек в панели (от 3 до 20)
scale = 1.0                        # Масштаб всплывающей панели истории (от 0.8 до 1.2)
auto_clear_days = 0                # Автоматически удалять записи истории старше указанных дней (от 0 до 365)

[cloud]
provider = "aws_s3"                # Облачный провайдер: "aws_s3" или "cloudflare_r2"
bucket = "my-snapzy-bucket"        # Имя бакета AWS S3 или Cloudflare R2
region = "us-east-1"               # Идентификатор региона бакета (обязательно для S3)
endpoint = ""                      # URL-адрес конечной точки API (обязательно для Cloudflare R2)
custom_domain = ""                 # Собственный домен для создания коротких ссылок общего доступа
expire_time = "7d"                 # Срок действия ссылок/правило хранения: "1d", "3d", "7d", "14d", "30d", "60d", "90d", "permanent"
uploads_window_position = "center" # Положение панели отслеживания загрузки в облако: "top", "center", "bottom"

[annotate]
clipboard_image_open_behavior = "ask" # Поведение при открытии пустого редактора и наличии картинки в буфере: "ask", "loadAutomatically", "doNothing"
close_after_drag = true            # Автоматически закрывать окно аннотаций после перетаскивания файла наружу
bring_forward_after_drag = false   # Выводить целевое приложение на передний план после завершения перетаскивания
quick_properties_sync = true       # Мгновенно синхронизировать толщину линий и цвет между инструментами рисования

[shortcuts]
enabled = true                     # Включение глобальных горячих клавиш (необходимо для регистрации сочетаний)

[shortcuts.global.fullscreen]
enabled = true
key = "3"
modifiers = ["command", "shift"]

[shortcuts.global.area]
enabled = true
key = "4"
modifiers = ["command", "shift"]

[shortcuts.global.areaAnnotate]
enabled = true
key = "7"
modifiers = ["command", "shift"]

[shortcuts.global.scrollingCapture]
enabled = true
key = "6"
modifiers = ["command", "shift"]

[shortcuts.global.recording]
enabled = true
key = "5"
modifiers = ["command", "shift"]

[shortcuts.global.annotate]
enabled = true
key = "A"
modifiers = ["command", "shift"]

[shortcuts.global.videoEditor]
enabled = true
key = "E"
modifiers = ["command", "shift"]

[shortcuts.global.cloudUploads]
enabled = true
key = "L"
modifiers = ["command", "shift"]

[shortcuts.global.shortcutList]
enabled = true
key = "K"
modifiers = ["command", "shift"]

[shortcuts.global.ocr]
enabled = true
key = "2"
modifiers = ["command", "shift"]

[shortcuts.global.objectCutout]
enabled = true
key = "1"
modifiers = ["command", "shift"]

[shortcuts.global.history]
enabled = true
key = "H"
modifiers = ["command", "shift"]

[shortcuts.overlay.area_application_capture]
enabled = true
key = "SPACE"                      # Дополнительная вспомогательная клавиша при захвате области
modifiers = []

[shortcuts.overlay.recording_application_capture]
enabled = true
key = "SPACE"
modifiers = []

[shortcuts.annotate_tools]
disabled = []
# Назначение цифровых клавиш от «1» до «8» для быстрого выбора инструментов рисования
"1" = "pen"
"2" = "arrow"
"3" = "rect"
"4" = "oval"
"5" = "text"
"6" = "blur"

[shortcuts.annotate_actions.copyAndClose]
enabled = true
key = "C"
modifiers = ["command"]

[shortcuts.annotate_actions.toggleSidebar]
enabled = true
key = "B"
modifiers = ["command"]

[shortcuts.annotate_actions.togglePin]
enabled = true
key = "P"
modifiers = ["command"]

[shortcuts.annotate_actions.cloudUpload]
enabled = true
key = "U"
modifiers = ["command"]

Справочник свойств конфигурации

Общий раздел ([general])

Имя свойстваТип данныхЗначение по умолчаниюДопустимые варианты / ДиапазонОписание
languageСтрока"system""system", "en", "vi", "ja", "ko", "ru", "zh", "zh-tw"Настройка языка интерфейса приложения.
appearanceСтрока"system""system", "light", "dark"Режим цветовой темы интерфейса.
play_soundsБулевоtruetrue, falseВключение/выключение звуков при захвате.
start_at_loginБулевоfalsetrue, falseАвтозапуск приложения при входе в macOS.
export_locationСтрока"~/Pictures"Корректный путь к папкеЛокальный путь для автоматического сохранения файлов.

Обновления и диагностика

Имя свойстваТип данныхЗначение по умолчаниюДопустимые варианты / ДиапазонОписание
updates.check_automaticallyБулевоtruetrue, falseАвтоматическая проверка новых обновлений через Sparkle.
updates.download_automaticallyБулевоfalsetrue, falseФоновое скачивание пакетов обновлений без вывода запросов.
diagnostics.enabledБулевоtruetrue, falseВключение записи логов диагностики работы для отчетов о сбоях.
diagnostics.retention_daysЦелое число7От 1 до 30Количество дней для хранения файлов диагностических логов на диске.

Захват экрана и правила именования ([capture])

Имя свойстваТип данныхЗначение по умолчаниюДопустимые варианты / ДиапазонОписание
hide_desktop_iconsБулевоfalsetrue, falseАвтоматически скрывать файлы на рабочем столе при захвате.
hide_desktop_widgetsБулевоfalsetrue, falseАвтоматически скрывать виджеты рабочего стола при захвате.
naming.screenshot_templateСтрока"Snapzy_{year}...Строка шаблона имениШаблон для автоматического именования файлов снимков.
naming.recording_templateСтрока"Snapzy_{year}...Строка шаблона имениШаблон для автоматического именования файлов видеозаписей.
screenshot.formatСтрока"png""png", "jpeg", "webp"Формат сохраняемых изображений снимков экрана.
screenshot.include_snapzyБулевоfalsetrue, falseЗахватывать оверлеи и панели управления самого Snapzy на снимках.
screenshot.show_cursorБулевоfalsetrue, falseСохранять указатель мыши системы на скриншотах.
scrolling.show_hintsБулевоtruetrue, falseПоказывать визуальные указатели при захвате страниц с прокруткой.
ocr.success_notificationБулевоfalsetrue, falseОтправлять пуш-уведомление при успешном извлечении текста.
object_cutout.auto_cropБулевоtruetrue, falseАвтоматически кадрировать пустоту по краям вырезанного объекта.

События после захвата (After Capture)

Имя свойстваТип данныхЗначение по умолчаниюДопустимые варианты / ДиапазонОписание
capture.after.screenshot.saveБулевоtruetrue, falseЗаписывать файлы скриншотов в целевую папку экспорта.
capture.after.screenshot.quick_accessБулевоtruetrue, falseОтображать мини-панель быстрого доступа после снимка.
capture.after.screenshot.copy_fileБулевоtruetrue, falseКопировать полный путь к сохраненному файлу в буфер обмена.
capture.after.screenshot.open_annotateБулевоfalsetrue, falseМгновенно передавать скриншот в графический редактор аннотаций.
capture.after.screenshot.upload_to_cloudБулевоfalsetrue, falseАвтоматически инициировать отправку файла в облако.
capture.after.recording.saveБулевоtruetrue, falseЗаписывать видеозаписи в целевую локальную папку экспорта.
capture.after.recording.quick_accessБулевоtruetrue, falseОтображать мини-панель быстрого доступа после завершения записи.
capture.after.recording.copy_fileБулевоtruetrue, falseКопировать полный путь к файлу видеозаписи в буфер обмена.
capture.after.recording.open_annotateБулевоfalsetrue, falseМгновенно отправлять видеозапись в видеоредактор.
capture.after.recording.upload_to_cloudБулевоfalsetrue, falseАвтоматически инициировать отправку видео в фоновом режиме в облако.

Запись видео экрана ([recording])

Имя свойстваТип данныхЗначение по умолчаниюДопустимые варианты / ДиапазонОписание
formatСтрока"mov""mov", "mp4"Формат контейнера видеозаписи.
qualityСтрока"high""high", "medium", "low"Качество сжатия видеоряда.
fpsЦелое число30От 1 до 120Целевая плотность кадров в секунду при записи.
output_modeСтрока"video""video", "gif"Итоговый экспортируемый медиаформат.
capture_system_audioБулевоtruetrue, falseЗаписывать общие звуки, воспроизводимые на компьютере.
capture_microphoneБулевоfalsetrue, falseВключать в видеоряд аудиопоток с микрофона.
microphone_device_idСтрока""Идентификатор аудиоустройстваРучной выбор внешнего аппаратного микрофона для записи.
remember_last_areaБулевоtruetrue, falseЗапоминать границы области последнего захваченного видеоряда.
show_cursorБулевоtruetrue, falseЗаписывать видео с указателем мыши.
highlight_clicksБулевоfalsetrue, falseПоказывать эффектные круги вокруг курсора при нажатиях.
show_keystrokesБулевоfalsetrue, falseПоказывать плашку с нажатыми клавишами на видеоряде.
mouse_highlight.sizeВещественное50.0От 20.0 до 120.0Внешний диаметр круга индикации клика.
mouse_highlight.colorСтрока"#FF000080"HEX-код цвета (#RRGGBBAA)Цвет подсветки клика мыши.
mouse_highlight.opacityВещественное0.5От 0.0 до 1.0Непрозрачность индикации кликов.
mouse_highlight.ripple_countЦелое число3От 1 до 6Количество волн анимации клика.
keystrokes.font_sizeВещественное18.0От 10.0 до 48.0Высота шрифта клавиш в пунктах.
keystrokes.positionСтрока"bottomCenter"Положение оверлеяРасположение плашки вывода горячих клавиш на видео.
keystrokes.display_durationВещественное2.0От 0.3 до 10.0Время удержания плашки с клавишами на экране.
annotation_shortcuts.modifierСтрока"shift"Код клавиши-модификатораГорячая клавиша для быстрого вызова рисования на видео.
annotation_shortcuts.hold_durationВещественное1.0От 0.1 до 5.0Длительность зажатия клавиши для вызова панели.

Панель быстрого доступа ([quick_access])

Имя свойстваТип данныхЗначение по умолчаниюДопустимые варианты / ДиапазонОписание
enabledБулевоtruetrue, falseОтображение всплывающей мини-панели после создания снимка.
positionСтрока"bottomRight"Положение оверлеяУгол экрана для размещения плашки быстрого доступа.
auto_dismissБулевоtruetrue, falseВключение таймера автоматического скрытия плашки.
auto_dismiss_delayВещественное10.0От 3.0 до 30.0Тайм-аут скрытия панели быстрого доступа (в секундах).
pause_countdown_on_hoverБулевоtruetrue, falseЗамораживать таймер скрытия при наведении курсора на панель.
overlay_scaleВещественное1.0От 0.75 до 1.5Коэффициент изменения размера панели быстрого доступа.
drag_dropБулевоtruetrue, falseВозможность прямого экспорта файлов методом перетаскивания.
actions_orderМассивПо умолчаниюИдентификаторы кнопокПорядок сортировки управляющих кнопок.
enabled_actionsМассивПо умолчаниюИдентификаторы кнопокНабор функций, отображаемых на панели быстрого доступа.

Журнал истории файлов ([history])

Имя свойстваТип данныхЗначение по умолчаниюДопустимые варианты / ДиапазонОписание
enabledБулевоtruetrue, falseВключение сохранения метаданных об истории снимков в приложении.
retention_daysЦелое число30От 0 до 90Лимит хранения записей в днях (0 — хранить бесконечно).
max_countЦелое число500От 0 до 1000Квота на максимальное число записей истории в базе.
background_styleСтрока"hud""hud", "solid"Стиль отрисовки подложки окна просмотра истории.
open_on_launchБулевоfalsetrue, falseПоказывать окно истории при старте программы Snapzy.
floating.enabledБулевоtruetrue, falseВывод на экран плавающей полосы быстрого доступа к истории.
floating.positionСтрока"topCenter"Направление привязкиНаправление выравнивания плавающей полосы истории на экране.
floating.max_displayed_itemsЦелое число10От 3 до 20Макс. число превью карточек внутри плавающей HUD панели.
floating.scaleВещественное1.0От 0.8 до 1.2Коэффициент размера плавающей панели истории.

Облачное хранилище ([cloud])

Имя свойстваТип данныхЗначение по умолчаниюДопустимые варианты / ДиапазонОписание
providerСтрока"aws_s3""aws_s3", "cloudflare_r2"Тип удаленного хранилища для экспорта.
bucketСтрока""Имя корзины / бакетаИмя бакета хранилища S3 или R2.
regionСтрока"us-east-1"Код региона S3Идентификатор зоны расположения сервера (требуется для S3).
endpointСтрока""Ссылка endpoint URLAPI URL конечной точки доступа к серверу (требуется для R2).
custom_domainСтрока""Ссылка на доменСобственный хостнейм домена для генерации коротких публичных ссылок.
expire_timeСтрока"7d""1d", "3d", "7d", "14d", "30d", "60d", "90d", "permanent"Время жизни генерируемой временной ссылки.
uploads_window_positionСтрока"center""top", "center", "bottom"Размещение оверлея хода загрузки файлов на экране.

Важно по безопасности — Секретные ключи авторизации (AWS Access Keys, Secret Tokens и т. д.) никогда не записываются в текстовый файл config.toml для предотвращения их утечки при публикации настроек в открытых репозиториях (например, на GitHub). Они зашифрованы и хранятся в системной Связке ключей macOS (Keychain).

Редактор аннотаций ([annotate])

Имя свойстваТип данныхЗначение по умолчаниюДопустимые варианты / ДиапазонОписание
clipboard_image_open_behaviorСтрока"ask""ask", "loadAutomatically", "doNothing"Действие при открытии пустого редактора при наличии картинки в буфере обмена.
close_after_dragБулевоtruetrue, falseЗакрывать окно редактирования сразу после экспорта перетаскиванием.
bring_forward_after_dragБулевоfalsetrue, falseПереводить целевое приложение на передний план по окончании перетаскивания.
quick_properties_syncБулевоtruetrue, falseМгновенно синхронизировать цвет и толщину пера между инструментами.

Валидация и проблемы

Snapzy осуществляет строгую валидацию параметров config.toml при загрузке:

  • Выход за границы значений: Если параметр превышает допустимый лимит (например, fps = 150 или overlay_scale = 3.0), Snapzy выведет предупреждение в журнал, проигнорирует неверное значение и использует значение по умолчанию.
  • Неверный тип данных: Указание неверного типа (например, строка вместо булева значения) приведет к ошибке разбора. Snapzy откажется применять блок настроек и восстановит старые параметры приложения.
  • Просмотр списка предупреждений: Список всех ошибок разбора TOML или предупреждений можно просмотреть непосредственно в настройках на вкладке Дополнительно (Advanced) в разделе статуса синхронизации.

Готовы запечатлеть
свою лучшую работу?

Присоединяйтесь к сообществу с открытым исходным кодом, которое создаёт лучший инструмент для захвата экрана на macOS.

macOS 13+ · Intel и Apple Silicon