匯出格式
匯出屬於 Deskami Plus,寫出的就是 Deskami 在你的 Mac 上保留的那份逐分鐘記錄。不添加、不估算、不補填任何東西。這個頁面說明檔案裡有什麼。
慣例
- CSV 裡的空白儲存格,或 JSON 裡的
null,代表未測量。0代表測量了,結果是零。 - 欄名在所有語言中都是英文,而且固定不變;只有在
export_version更新時才會一起改變。 - 檔案是 UTF-8 編碼。CSV 以逗號分隔,第一列是標題列。
- 時間是 ISO 8601 格式的 UTC,例如
2026-09-28T07:41:00Z。日期是YYYY-MM-DD,也就是這一分鐘被記在哪一天。 - 小數使用英文句點,從不使用千分位符號。布林值是
true和false。 - Deskami 有記錄的每一分鐘各佔一列;什麼都沒記錄的分鐘就沒有列。
分鐘欄位
CSV 依下列順序包含這些欄位;在 JSON 裡,同樣的欄位組成每一分鐘。括號裡的名稱是原始資料庫檔案中的欄名。
minute_utc— 時間。這一分鐘的開始,UTC。(minute_utc,Unix 秒)local_day— 日期。這一分鐘所屬的那一天,依當時 Mac 所在的時區計算。寫入時就固定下來,之後更改時區也不會移動。(day_key)setup_id— 整數。當時使用的環境:一台相機加上一種螢幕排列。在 JSON 裡,環境列在setups底下。(profile_id)seconds_at_desk— 0 到 60。這一分鐘裡相機看到你的秒數。camera_off為 false 時,0 代表相機開著但沒看到你。(present_s)posture_deviation— 數值,0 或以上。你的頭和肩膀比你自己的基準低了多少,取這一分鐘的平均,並以當時生效的提醒門檻為單位:在基準處為 0,在門檻處為 1。沒有測量坐姿時為空白。(posture_dev)posture_peak— 數值,0 或以上。同一個量在這一分鐘內的最大值。(posture_peak)distance_deviation— 數值,0 或以上。你的臉比基準時離螢幕近了多少,用同樣的尺度,從畫面中兩眼的間距讀出。(distance_dev)blinks— 整數。眼睛可以測量時數到的眨眼次數。無法測量時為空白。(blinks)incomplete_blinks— 整數。閉得最緊的那一刻也離完全閉上差得太遠的眨眼。無法判斷時為空白。(incomplete_blinks)head_pitch_degrees— 數值。相機回報的頭部俯仰角平均值,單位是度:相對於相機,而不是相對於你的基準。(head_pitch)confidence— 0 到 1。臉部偵測可信度的平均值。(confidence)light— 0 到 1。臉部區域的平均亮度,0 為暗,1 為亮。不是房間的亮度。(light)eyes_measured— 布林值。這一分鐘內眼睛至少有一次可以測量。為 false 時,blinks、incomplete_blinks和eye_observed_seconds為空白。(eye_valid)eye_observed_seconds— 0 到 60。眼睛實際被觀察到的秒數。每分鐘眨眼次數是blinks× 60 ÷eye_observed_seconds。(eye_observed_s)look_aways— 整數。完整看了一次遠方的次數,也就是 20-20-20 習慣。沒有在測量看遠方時為空白。(gaze_breaks)camera_off— 布林值。這一分鐘相機是關閉的:你把它關了、別的 App 佔用著它,或權限被移除了。這時相機相關的欄位為空白;App 和活動相關的欄位可能仍有資料。(camera_off)declared_break— 布林值。你告訴過 Deskami 你沒在工作。不管相機看到什麼,這一分鐘都算作不在桌前。(declared_break)front_app— 文字。這一分鐘裡大部分時間在前景的 App 的套件識別碼,例如com.apple.Safari。這項讀數被關掉、螢幕鎖定或前景沒有任何東西時為空白。絕不包含視窗標題。(app_id)app_switches— 整數。這一分鐘內前景 App 換了幾次。(app_switches)active_seconds— 0 到 60。在之前 15 秒內碰過鍵盤或滑鼠的秒數。只讀取距離上一次操作過了多久,從不讀取按了哪個鍵。這項讀數被關掉時為空白。(active_s)call_seconds— 0 到 60。通話 App 在前景,或同一個 App 同時開著麥克風和喇叭的秒數。沒有測量時為空白,包括 Deskami 開始測量這一項之前記錄的每一分鐘。(meeting_s)
JSON
JSON 檔案是一個物件。它以標頭開始:export_version、app_version、exported_at、time_zone(匯出時的時區)、database_schema_version、range(kind、from、to)和 setups(id、camera_name、created_at)。
接著是 days,範圍內每個有記錄的日子一個物件。每一天都帶著自己的摘要、分鐘和提醒:
local_day和minutes_at_desk,後者是seconds_at_desk的總和除以 60。breaks:夾在兩段在桌前的時間之間、離開桌前 5 分鐘以上且不到 2 小時的時段。相機關閉的時間兩邊都不算。posture_fine_minutes(posture_deviation小於 1)和posture_attention_minutes(1 或以上)。blink_rate:在眼睛被觀察到的時間裡,每分鐘的眨眼次數;觀察不到一分鐘時為null。incomplete_blink_ratio:可以判斷的眨眼太少時為null。reminders_by_signal:顯示過的提醒,依項目計數。minutes:上面的分鐘欄位,每分鐘一個物件。reminders:每個提醒一個物件,包含time_utc、local_day、setup_id、signal(posture、distance、blink、incompleteBlink或gaze)、build_up_seconds(提醒之前超過門檻的時間)、recover_seconds(回到門檻以下所花的時間;若測量先停止則為null)、asked(是否顯示了關於你基準的問題)和answer(沒有問時為null,否則為true或false)。
PDF 不是表格:它就是那份摘要本身——當日摘要、一週或一個月——照螢幕上的樣子原封不動印在一頁上。裡面的每個數字都是螢幕上的那個數字。
原始檔案
設定 › 一般 › 資料 › 在 Finder 中顯示會找到 history.sqlite,旁邊是 history.sqlite-wal 和 history.sqlite-shm。Deskami 執行時,最新的幾分鐘可能還在 -wal 檔案裡;請把三個檔案都拷貝起來,或先結束 Deskami。如果在 Deskami 執行時刪除這些檔案,它會在幾秒內開始一份新的空白記錄。匯出寫出的永遠是一份完整的快照。資料庫裡保存了什麼,列在隱私權頁面。