atoz 문서

사이드바

Daynight 사이드바

이 페이지

역할

잠든 시각과 일어난 시각을 버튼 하나로 기록하고, 오른쪽 사이드바에서 수면 구간을 띠 차트로 보여 줍니다. 하루에 여러 번 자거나 밤낮이 바뀐 경우에도 쓸 수 있도록 날짜별이 아니라 시각이 찍힌 기록 단위로 저장합니다.

기록 파일

  • 설정한 Daynight 폴더에 월별 파일 sleep-YYYY-MM.md로 저장합니다. 예: sleep-2026-10.md
  • 폴더 설정이 비어 있으면 sleep 폴더에 저장합니다.
  • 폴더가 없으면 첫 기록을 남길 때 만듭니다.
  • 기록은 기록 시각이 속한 달의 파일에 적습니다. 그 달의 파일이 없으면 머리행과 함께 새로 만듭니다.
  • 파일 내용은 세 열 마크다운 표이며, 머리행과 값은 사용 언어와 관계없이 영어로 고정합니다.
| Date | Time | Type |
| --- | --- | --- |
| 2026-10-05 | 06:15 | sleep |
| 2026-10-05 | 13:00 | wake |
  • Date는 YYYY-MM-DD, Time은 24시간제 HH:mm, Type은 sleep 또는 wake입니다.
  • 플러그인 전용 파일로 보고 새 행은 항상 파일 끝에 붙입니다.

읽기와 구간 계산

  • 사이드바를 열 때 폴더의 sleep-*.md 파일을 모두 읽어 하나의 기록 목록으로 합치고 시간순으로 정렬합니다. 월 경계는 따로 처리하지 않습니다.
  • 표 형식에 맞는 행만 읽고 머리행과 다른 줄은 무시합니다.
  • 보관소 전체가 아니라 기록 폴더 안의 파일만 확인합니다.
  • 읽은 기록은 파일별로 메모리에 들고 있다가, 파일이 생성·수정·삭제·이름 변경되면 그 파일만 다시 읽어 바꿔 끼웁니다. 폴더 설정이 바뀌면 새 폴더를 처음부터 읽습니다.
  • 각 기록에서 다음 기록까지를 그 기록 종류의 구간으로 만듭니다. sleep에서 시작하면 수면 구간, wake에서 시작하면 깨어 있는 구간이므로 두 구간이 번갈아 이어집니다.
  • 마지막 기록에서 현재 시각까지를 진행 중인 구간으로 봅니다.
  • 낮잠과 주 수면을 구분하지 않고 같은 색으로 표시합니다.

사이드바 구성

위에서부터 다음 순서로 표시합니다.

  1. 상태
  2. 이동 막대: 표시 중인 시각 범위, ‹, ↺(지금), ›
  3. 24시간 띠 차트
  4. 최근 기록(기본 4개)
  5. 바로가기 버튼
  6. 기록 버튼

기록 버튼을 뺀 나머지는 하나의 스크롤 영역입니다. 사이드바가 낮아도 기록 버튼은 항상 하단에 보입니다.

상태

  • 현재 구간을 보고 있을 때
    • 상태 점과 깨어 있음 또는 자는 중을 작게 표시합니다. 점은 깨어 있으면 아침색, 자는 중이면 테마 강조색입니다.
    • 마지막 기록 이후 경과 시간을 8시간 0분처럼 크게 표시합니다.
    • 그 아래에 13:00에 일어남 · 지난 24시간 수면 6시간 45분처럼 마지막 기록 시각과 지난 24시간 수면 합계를 표시합니다. 마지막 기록이 오늘이 아니면 날짜도 함께 표시합니다.
  • 지난 구간을 선택했을 때도 이동하며 레이아웃이 흔들리지 않도록 같은 세 줄 구조로 표시합니다.
    • 연한 회색 점과 10/4 수면 또는 10/5 깨어 있음처럼 구간이 시작된 날짜를 작게 표시합니다.
    • 구간 길이를 크게 표시합니다.
    • 그 아래에 수면 구간이면 23:10에 잠듦 · 07:05에 일어남을, 깨어 있는 구간이면 07:05에 일어남 · 23:40에 잠듦을 표시합니다. 시작한 날과 끝난 날이 다르면 날짜도 함께 표시합니다.
  • 시간 길이는 한국어에서 7시간 55분, 영어에서 7h 55m 형식입니다.
  • 기록이 하나도 없으면 아직 기록이 없어요와 아래 버튼으로 첫 기록을 남겨 보세요를 표시하고, 이동 막대·차트·최근 기록은 숨깁니다.

띠 차트와 이동

  • 24시간 구간을 가로 띠 하나로 그리고, 수면 구간은 테마 강조색, 깨어 있는 구간은 상태 점과 같은 아침색 막대로 번갈아 칠합니다. 첫 기록보다 앞은 빈 띠로 둡니다.
  • 3시간 간격 눈금과 시각을 표시하고, 자정 위치에 날짜를 표시합니다.
  • 밤 시간대(18시~6시)는 띠 배경을 연하게 어둡게 칠합니다. 막대 색은 낮밤과 관계없이 같습니다.
  • 처음에는 현재 시각에서 끝나는 24시간을 보여 주고, 현재 시각 위치에 세로선을 그립니다.
  • ‹와 ›는 시간 단위가 아니라 구간 단위로 이동하며, 수면 구간과 깨어 있는 구간을 번갈아 거슬러 갑니다. 현재에서 ‹를 누르면 가장 최근에 끝난 구간을, 다시 누르면 그 이전 구간을 선택합니다. 진행 중인 구간은 현재 화면과 같으므로 건너뜁니다. 가장 최근에 끝난 구간에서 ›를 누르면 현재로 돌아갑니다.
  • 선택한 구간을 차트 가운데에 둡니다. 다만 현재 시각 너머로는 넘어가지 않으므로, 이때는 현재 시각에서 끝나는 24시간을 보여 주고 세로선도 그립니다.
  • 막대는 하나만 진하게 두고 나머지는 흐리게 표시합니다. 현재에서는 진행 중인 구간을, 구간을 선택하면 그 구간을 진하게 둡니다.
  • 가장 오래된 구간에서는 ‹를, 현재에서는 ›를 흐리게 비활성화합니다.
  • ↺는 현재로 돌아갑니다. 이미 현재면 비활성화합니다.
  • 선택한 구간이 기록 삭제로 없어지면 현재로 돌아갑니다.

최근 기록

  • 가장 최근 기록을 설정한 개수만큼(기본 4개) 시간순으로(가장 최근 기록이 맨 아래) 10/5 13:00 기상 형식으로 표시합니다.
  • 맨 아래의 마지막 기록만 클릭할 수 있습니다. 클릭하면 옆에 버튼 테두리 없는 연필(pencil)과 ×(x) 아이콘이 나타납니다. 아이콘은 Lucide 아이콘을 씁니다.
  • ×를 누르면 그 행을 파일에서 삭제합니다.
  • 연필을 누르면 그 행이 날짜 [시각 입력칸] 종류 ✓ ×로 바뀌어 시각만 고칠 수 있습니다. 날짜와 종류는 바꾸지 않습니다.
    • 고친 시각은 바로 앞 기록보다 늦고 현재 시각보다 이르거나 같아야 합니다. 어긋나면 ✓를 비활성화하고 행 아래에 이유를 표시합니다.
    • ✓를 누르면 파일의 그 행을 새 시각으로 바꾸고, ×를 누르면 수정을 취소합니다.
    • 고치는 동안에는 1분마다 다시 그리지 않아 입력이 끊기지 않습니다.
  • 마지막 기록이 이전 달 파일에 있으면 그 파일에서 삭제합니다.
  • 마지막 기록만 고치거나 지울 수 있으므로 기록은 항상 sleep과 wake가 번갈아 나옵니다.

바로가기 버튼

  • 최근 기록 아래 오른쪽에 아이콘 버튼 두 개를 둡니다. 기록이 없으면 숨깁니다.
  • 파일(file-text) 버튼은 마지막 기록이 든 sleep-YYYY-MM.md 파일을 엽니다. 월초에 아직 이번 달 기록이 없어도 빈 파일을 만들지 않고 지난달 파일을 엽니다. 지난 기록은 사이드바에서 고칠 수 없으므로 이 파일을 직접 고칩니다.
  • 대시보드(moon) 버튼은 Daynight 대시보드를 엽니다.

기록 버튼

  • 토글 버튼 하나를 둡니다. 마지막 기록이 wake이거나 기록이 없으면 지금 자기, sleep이면 지금 일어나기를 표시합니다.
  • 상태에 따라 색과 아이콘이 바뀝니다. 지금 자기는 남색 바탕에 달 아이콘, 지금 일어나기는 주황 바탕에 해 아이콘입니다.
  • 누르면 현재 시각으로 반대 종류의 행을 추가합니다.
  • 모바일에서 누르기 쉽도록 사이드바 하단에 넓게 배치합니다.
  • 버튼을 누르면 살짝 눌리는 효과만 주고, 그 밖의 애니메이션은 넣지 않습니다.

대시보드

사이드바가 기록과 최근 24시간을 맡고, 대시보드는 장기 통계를 맡습니다. 메인 영역에 새 탭으로 열고, 이미 열려 있으면 그 탭으로 갑니다. 탭 아이콘은 moon이고, 화면 안에는 제목 없이 집계 기간 버튼만 오른쪽 위에 둡니다.

공통 규칙

  • 위쪽 버튼으로 집계 기간을 7일, 30일, 90일, 전체 중에서 고릅니다. 기본은 30일이고 마지막 선택은 설정에 저장합니다.
  • 기간은 날짜가 아니라 현재 시각에서 거슬러 간 시간 범위입니다. 전체는 첫 기록부터입니다. 첫 기록 이전은 상태를 모르므로 어떤 기간이든 집계에서 뺍니다.
  • 수면을 날짜에 귀속하지 않고, 모든 계산을 시각 또는 구간 단위로 합니다. 낮잠과 주 수면도 구분하지 않습니다.
  • 기간 시작에 걸친 구간은 시각 기반 계산(주된 시간대, 규칙성)에서는 기간 안의 부분만 자르고, 구간 기반 계산(각성 시간)에서는 끝이 기간 안에 있으면 통째로 넣습니다.
  • 기록이 바뀌면 사이드바와 함께 다시 그립니다.
  • 기록 누락을 따로 감지하지 않습니다. 버튼을 깜빡해 생긴 긴 구간도 그대로 집계되므로 기록 파일에서 직접 고칩니다.

카드 배치

  1. 주된 시간대: 전체 폭
  2. 규칙성, 각성 시간: 나란히. 대시보드 폭이 560px 이하면 위아래로 쌓습니다.
  3. 액토그램: 전체 폭

내용은 최대 900px 폭으로 가운데에 둡니다.

주된 시간대

  • 하루를 시계 기준 15분 칸 96개로 나누고, 칸마다 기록이 있던 시간 중 잠든 시간의 비율을 구합니다.
  • 비율이 임계값 이상인 칸이 이어진 덩어리를 수면 시간대, 나머지를 활동 시간대로 보고 수면 01:30–08:45, 활동 08:45–01:30처럼 표시합니다. 자정을 넘는 덩어리도 하나로 셉니다.
  • 덩어리가 여러 개면 가장 긴 것을 크게, 나머지를 옆에 작게 표시합니다. 없으면 없음, 하루 전체면 하루 종일을 표시합니다.
  • 그 아래에 칸별 비율 막대그래프를 그립니다. 임계값 이상인 막대는 진하게, 미만은 흐리게 칠하고 임계값 위치에 점선을 긋습니다.
  • 임계값은 카드 아래 슬라이더로 10~90%, 10% 단위로 바꿉니다. 기본은 50%이고 설정에 저장합니다. 슬라이더를 움직이는 동안에는 이 카드만 다시 그립니다.

규칙성

  • 수면 규칙성 지수(SRI)를 표시합니다. 기간 안에서 5분 간격으로 지금과 24시간 뒤가 같은 상태(잠/깸)인 비율을 구해 -100~100으로 옮깁니다. 100은 매일 같고 0은 무작위 수준입니다.
  • 24시간 간격으로 견줄 기록이 없으면 —와 기록이 부족해요를 표시합니다.

각성 시간

  • 끝난 깨어 있는 구간만 셉니다. 진행 중인 구간은 뺍니다.
  • 최장 각성 시간을 크게, 평균을 작게 표시합니다.
  • 그 아래에 구간 길이 분포를 가로 막대로 그립니다. 4시간 단위로 0–4시간부터 20–24시간까지 나누고 마지막 칸 24시간+에 그 이상을 모두 넣습니다. 막대는 아침색입니다.

액토그램

  • 하루에 한 줄씩, 그날 0시부터 다음 날 24시까지 48시간을 그리는 double plot입니다. 각 날이 위 줄 오른쪽과 아래 줄 왼쪽에 두 번 나와서 자정을 넘는 수면도 끊기지 않고 보입니다.
  • 오래된 날이 위, 최근 날이 아래입니다. 첫 줄은 기간 시작 전날, 마지막 줄은 어제이므로 마지막 줄 오른쪽 절반이 오늘입니다.
  • 줄 왼쪽에 10/17처럼 날짜를, 위에 6시간 간격 시각을 표시하고 자정 선을 진하게 긋습니다.
  • 기록이 있는 시간에만 바탕을 깔고 수면 구간을 테마 강조색으로 칠합니다. 첫 기록 이전과 현재 이후는 비워 둡니다.

설정과 명령

  • 설정 탭에 Daynight 폴더 경로 입력란을 둡니다. Later 노트 대상 폴더 설정과 같은 방식입니다.
  • 설정 탭에서 최근 기록 표시 개수를 정합니다. 최소 1개, 기본 4개입니다.
  • 오른쪽 사이드바에 Daynight 뷰를 여는 명령과 리본 아이콘을 둡니다.
  • 대시보드를 여는 Daynight: 대시보드 열기 명령을 둡니다. 리본 아이콘은 추가하지 않습니다.
  • 대시보드의 집계 기간과 임계값은 설정 탭이 아니라 대시보드에서 바꾸고, 플러그인 데이터에 저장합니다.
  • 사이드바 UI 문구는 플러그인 locales의 en/ko를 따릅니다. 파일에 적는 내용만 영어로 고정합니다.