개요
파워 유저, 개발자 및 시스템 관리자를 위해 Snapzy는 표준 TOML 파일(config.toml)을 사용한 고급 프로그래밍 방식 구성을 지원합니다. 이를 통해 모든 애플리케이션 설정을 일반 텍스트로 관리하고, dotfiles 저장소를 사용하여 동기화하며, macOS 환경 전반에 걸쳐 자동화된 배포를 설정할 수 있습니다.
초기 설정 요구사항 — macOS 샌드박스 보안으로 인해 Snapzy가 홈 디렉터리 아래의 파일을 읽고 쓰려면 단 한 번의 폴더 권한 부여가 필요합니다. 설정의 고급(Advanced) 탭에서 이를 완료해 주세요.
시작하기
1. 설정 폴더 권한 허용
- Snapzy 설정(
Cmd + ,)을 열고 고급 (Advanced) 탭으로 이동합니다.
- **config.toml 설정 (Set Up config.toml)**을 클릭합니다.
- 시스템 대화 상자가 나타나 설정 디렉터리를 선택하거나 액세스 권한을 부여하도록 요청합니다. 설정 디렉터리(일반적으로
~/.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 # macOS 시작 시 Snapzy 자동 실행
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 마이크 장치 UID
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" # 하이라이트 원 색상 HEX 코드 (#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 # 패널에서 직접 파일 드래그 앤 드롭 내보내기 허용
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 # 앱이 실행될 때 역사 브라우저 창 자동 열기
[history.floating]
enabled = true # 화면에 떠 있는 역사 HUD 바 표시
position = "topCenter" # 역사 HUD 바의 고정 위치: "topCenter", "bottomCenter", "center"
default_filter = "all" # 초기 필터 유형: "all", "screenshot", "recording", "ocr", "cutout"
max_displayed_items = 10 # 역사 HUD의 최대 미리보기 카드 수 (3~20)
scale = 1.0 # 역사 HUD의 줌 비율 (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 = "" # API 접속 엔드포인트 URL (R2 설정 시 필수)
custom_domain = "" # 공유 링크 생성을 위한 사용자 정의 도메인명
expire_time = "7d" # 공유 링크 유효기간/라이프사이클: "1d", "3d", "7d", "14d", "30d", "60d", "90d", "permanent"
uploads_window_position = "center" # 업로드 현황 모니터링 HUD의 위치: "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" | Snapzy UI 인터페이스 언어 설정. |
appearance | 문자열 | "system" | "system", "light", "dark" | UI 화면 테마 설정 모드. |
play_sounds | 불리언 | true | true, false | 캡처 또는 녹화 시 효과음의 사용 여부 설정. |
start_at_login | 불리언 | false | true, false | macOS 사용자 로그인 시 앱을 자동으로 시작. |
export_location | 문자열 | "~/Pictures" | 올바른 디렉터리 경로 | 캡처 이미지 및 비디오 파일 저장 디렉터리. |
업데이트 및 진단 로그
| 프로퍼티 명칭 | 데이터 유형 | 기본값 | 사용 가능한 옵션 / 허용 범위 | 상세 설명 |
|---|
updates.check_automatically | 불리언 | true | true, false | Sparkle 업데이트 서비스를 이용해 자동으로 새 버전 체크. |
updates.download_automatically | 불리언 | false | true, false | 확인 팝업 없이 백그라운드에서 새 버전을 자동으로 다운로드. |
diagnostics.enabled | 불리언 | true | true, false | 문제 보고를 위한 내부 프로세스 진단 로그 기록 활성화. |
diagnostics.retention_days | 정수 | 7 | 1 ~ 30 | 진단용 로그를 기기에 저장할 보존 일수 설정. |
스크린샷 및 이름 규칙 ([capture])
| 프로퍼티 명칭 | 데이터 유형 | 기본값 | 사용 가능한 옵션 / 허용 범위 | 상세 설명 |
|---|
hide_desktop_icons | 불리언 | false | true, false | 화면 캡처 진행 시 임시로 바탕화면 아이콘을 보이지 않게 처리. |
hide_desktop_widgets | 불리언 | false | true, false | 화면 캡처 진행 시 임시로 바탕화면 위젯을 보이지 않게 처리. |
naming.screenshot_template | 문자열 | "Snapzy_{year}... | 템플릿 형식 문자열 | 캡처 이미지 저장 시 적용할 자동 파일명 규칙. |
naming.recording_template | 문자열 | "Snapzy_{year}... | 템플릿 형식 문자열 | 녹화 비디오 저장 시 적용할 자동 파일명 규칙. |
screenshot.format | 문자열 | "png" | "png", "jpeg", "webp" | 캡처할 이미지 확장자 및 포맷 형식 설정. |
screenshot.include_snapzy | 불리언 | false | true, false | 스크린샷 이미지에 Snapzy 자신의 제어용 창이 겹쳐서 찍히게 허용. |
screenshot.show_cursor | 불리언 | false | true, false | 스크린샷 이미지에 시스템 마우스 포인터 표시. |
scrolling.show_hints | 불리언 | true | true, false | 스크롤 캡처 작업 시 작동 안내 가이드 가시화 설정. |
ocr.success_notification | 불리언 | false | true, false | 문자 추출(OCR)이 정상적으로 끝났을 시 시스템 알림 전송. |
object_cutout.auto_crop | 불리언 | true | true, false | 객체 잘라내기 완료 시 여백 테두리 부분을 자동으로 크롭. |
캡처 후 후속 이벤트 (After Capture)
| 프로퍼티 명칭 | 데이터 유형 | 기본값 | 사용 가능한 옵션 / 허용 범위 | 상세 설명 |
|---|
capture.after.screenshot.save | 불리언 | true | true, false | 내보내기 폴더에 파일이 자동 기록되도록 설정. |
capture.after.screenshot.quick_access | 불리언 | true | true, false | 캡처 후 썸네일과 조작을 위한 퀵 액세스 패널 출력. |
capture.after.screenshot.copy_file | 불리언 | true | true, false | 생성된 캡처 파일의 경로명을 기기 클립보드에 즉각 복사. |
capture.after.screenshot.open_annotate | 불리언 | false | true, false | 이미지 주석(Annotate) 그리기 에디터로 자동 전송. |
capture.after.screenshot.upload_to_cloud | 불리언 | false | true, false | 설정한 클라우드 웹 스토리지로 캡처 즉시 업로드 요청. |
capture.after.recording.save | 불리언 | true | true, false | 내보내기 폴더에 비디오 파일이 자동 기록되도록 설정. |
capture.after.recording.quick_access | 불리언 | true | true, false | 녹화 후 조작을 위한 퀵 액세스 패널 출력. |
capture.after.recording.copy_file | 불리언 | true | true, false | 생성된 비디오 파일의 경로명을 기기 클립보드에 복사. |
capture.after.recording.open_annotate | 불리언 | false | true, false | 영상 컷 편집을 지원하는 비디오 에디터 창으로 자동 이동. |
capture.after.recording.upload_to_cloud | 불리언 | false | true, false | 녹화 종료 즉시 스토리지 업로드 작업을 트리거. |
스크린 녹화 ([recording])
| 프로퍼티 명칭 | 데이터 유형 | 기본값 | 사용 가능한 옵션 / 허용 범위 | 상세 설명 |
|---|
format | 문자열 | "mov" | "mov", "mp4" | 영상 압축 파일 포맷 형식. |
quality | 문자열 | "high" | "high", "medium", "low" | 비디오 압축 퀄리티 타겟 프리셋 지정. |
fps | 정수 | 30 | 1 ~ 120 | 초당 저장할 프레임 밀도 수치 설정. |
output_mode | 문자열 | "video" | "video", "gif" | 최종 미디어의 형식 지정. |
capture_system_audio | 불리언 | true | true, false | 컴퓨터 내부에서 출력되는 전반 소리를 녹음. |
capture_microphone | 불리언 | false | true, false | 외부 마이크로 들어오는 사용자 소리를 녹음. |
microphone_device_id | 문자열 | "" | 올바른 오디오 장치 식별 번호 | 특정 외부 마이크 하드웨어를 수동 선택할 때 사용. |
remember_last_area | 불리언 | true | true, false | 가장 마지막에 잡았던 영상 녹화 사각 영역 위치 기억. |
show_cursor | 불리언 | true | true, false | 녹화할 영상에 마우스 커서도 표시하여 저장. |
highlight_clicks | 불리언 | false | true, false | 마우스 좌우 클릭 시 화면에 효과링 표시 여부. |
show_keystrokes | 불리언 | false | true, false | 단축키 입력 내용을 투명 UI로 화면에 동시 전송. |
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 | 1회 클릭 시 표출할 물결 레이어의 수 설정. |
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 | 불리언 | true | true, false | 퀵 액세스 조작 오버레이의 노출 여부 전환. |
position | 문자열 | "bottomRight" | 화면 모서리 위치 | 패널이 달라붙을 화면 각 모퉁이 지정. |
auto_dismiss | 불리언 | true | true, false | 시간 흐름에 따른 자동 닫힘 타이머를 구동. |
auto_dismiss_delay | 실수 | 10.0 | 3.0 ~ 30.0 | 퀵 액세스가 닫히기 전 화면에 열려 있을 최대 대기 시간. |
pause_countdown_on_hover | 불리언 | true | true, false | 패널에 마우스 오버 시 자동 소멸 카운트를 정지. |
overlay_scale | 실수 | 1.0 | 0.75 ~ 1.5 | 미리보기 패널의 전체 시각 스케일 보정. |
drag_drop | 불리언 | true | true, false | 드래그 앤 드롭을 통한 파일 공유 허용. |
actions_order | 문자열 배열 | 기본값 | 액션 고유 UIDs 목록 | 버튼 정렬 레이아웃 규칙 순서 설정. |
enabled_actions | 문자열 배열 | 기본값 | 액션 고유 UIDs 목록 | 화면에 실제로 배치할 퀵 버튼 기능들 선택. |
기록 보관소 ([history])
| 프로퍼티 명칭 | 데이터 유형 | 기본값 | 사용 가능한 옵션 / 허용 범위 | 상세 설명 |
|---|
enabled | 불리언 | true | true, false | 캡처 이력 데이터를 내부에 로깅하도록 활성화. |
retention_days | 정수 | 30 | 0 ~ 90 | 이력을 저장할 수 있는 유효 일수 (0은 삭제 없음). |
max_count | 정수 | 500 | 0 ~ 1000 | 로깅할 수 있는 최대 역사 이력 행 개수 제한. |
background_style | 문자열 | "hud" | "hud", "solid" | 기록 창의 비주얼 뒷배경 불투명 모드 테마. |
open_on_launch | 불리언 | false | true, false | Snapzy 앱 론칭 시 기록 브라우저 창을 자동 소환. |
floating.enabled | 불리언 | true | true, false | 투명 화면에 둥둥 뜨는 역사 HUD 바 출력 여부. |
floating.position | 문자열 | "topCenter" | HUD 정렬 유형 | 역사 HUD 바를 화면의 어느 방향에 띄울지 조율. |
floating.max_displayed_items | 정수 | 10 | 3 ~ 20 | 역사 HUD에 노출할 썸네일 카드 최대 개수 지정. |
floating.scale | 실수 | 1.0 | 0.8 ~ 1.2 | 띄워진 역사 HUD 툴바 크기 확대/축소. |
클라우드 설정 ([cloud])
| 프로퍼티 명칭 | 데이터 유형 | 기본값 | 사용 가능한 옵션 / 허용 범위 | 상세 설명 |
|---|
provider | 문자열 | "aws_s3" | "aws_s3", "cloudflare_r2" | 사용할 가상 원격 클라우드 서비스 제공처 지정. |
bucket | 문자열 | "" | 버킷 주소 명칭 | S3 또는 R2 원격 저장소 버킷 이름 지정. |
region | 문자열 | "us-east-1" | AWS S3 리전 코드 | 데이터가 입출력될 지역 코드 (S3 지정 시 필수). |
endpoint | 문자열 | "" | 접속 주소 URL | API 엔드포인트 URL 주소 (R2 지정 시 필수). |
custom_domain | 문자열 | "" | 도메인 URL | 공유 링크 생성을 위한 커스텀 호스트 도메인 지정. |
expire_time | 문자열 | "7d" | "1d", "3d", "7d", "14d", "30d", "60d", "90d", "permanent" | 임시 발급된 접속 링크의 만료 기간 설정. |
uploads_window_position | 문자열 | "center" | "top", "center", "bottom" | 업로드 진척 상황 팝업 창의 중심 위치 설정. |
보안 공지 — AWS Access Key, Secret Token 등 민감한 개인 인증용 계정 키 정보는 저장소 유출 위험(GitHub 등 퍼블릭 레포)을 원천 방지하기 위해 텍스트 방식의 config.toml에 절대 노출 및 기록되지 않습니다. 대신 기기 내의 macOS Keychain 서비스에서 보안 암호화 보관 처리됩니다.
주석 판넬 에디터 ([annotate])
| 프로퍼티 명칭 | 데이터 유형 | 기본값 | 사용 가능한 옵션 / 허용 범위 | 상세 설명 |
|---|
clipboard_image_open_behavior | 문자열 | "ask" | "ask", "loadAutomatically", "doNothing" | 에디터 시작 시 클립보드 안에 복사된 이미지 자동 처리 방식. |
close_after_drag | 불리언 | true | true, false | 드래그하여 외부 복사 내보내기 끝난 즉시 주석 창 소멸. |
bring_forward_after_drag | 불리언 | false | true, false | 드래그가 수신된 대상 타겟 앱을 OS 화면 최상단 전면 이동. |
quick_properties_sync | 불리언 | true | true, false | 색칠 도구 간 선택한 펜 굵기와 색상 속성을 즉각 공유. |
유효성 검사 및 에러 해결
Snapzy는 config.toml 로드 시 엄격한 값 규격 체크를 수행합니다:
- 범위 초과 경고: 특정 프로퍼티 값이 권장되는 유효 바운더리를 넘어가게 기재하면(예:
fps = 150 또는 overlay_scale = 3.0), Snapzy는 로깅 영역에 Warning 문구를 뱉고 해당 속성을 스킵한 채 공장 기본값(Default)을 꺼내서 대입합니다.
- 데이터 타입 불일치: 잘못된 자료형(예: Boolean 속성에 일반 텍스트 문자열 지정)을 써넣게 되면 구문 분석 도중 치명적인 에러(Error)를 반환합니다. 이 경우에는 해당 섹션의 설정을 통째로 읽어 들이지 않으며, 기존 앱 내부 설정을 그대로 복원해 사용합니다.
- 오류 내역 파악:
config.toml 검사 시 적발된 각종 문법 오류나 경고 메시지 목록은 앱 설정창의 고급(Advanced) 탭 설정 뷰 동기화 란에서 즉각 육안으로 파악하실 수 있습니다.