Formato di esportazione
L’esportazione, parte di Deskami Plus, scrive la stessa registrazione minuto per minuto che Deskami tiene sul tuo Mac. Niente viene aggiunto, stimato o completato. Questa pagina descrive cosa c’è nel file.
Convenzioni
- Una cella vuota nel CSV, o
nullnel JSON, significa non misurato. Uno0significa misurato, ed era zero. - I nomi delle colonne sono in inglese in ogni lingua e fissi; cambiano solo insieme a una nuova
export_version. - I file sono in UTF-8. Il CSV è separato da virgole e ha una riga di intestazione.
- Gli orari sono in UTC nel formato ISO 8601, come
2026-09-28T07:41:00Z. Le date sonoYYYY-MM-DD: il giorno di calendario sotto cui il minuto è stato registrato. - I numeri decimali usano il punto, mai un separatore delle migliaia. I valori booleani sono
trueefalse. - C’è una riga per ogni minuto in cui Deskami ha registrato qualcosa, e nessuna per i minuti in cui non ha registrato niente.
Colonne dei minuti
Il CSV ha queste colonne, in quest’ordine; nel JSON gli stessi campi compongono ogni minuto. Il nome tra parentesi è la colonna nel file grezzo del database.
minute_utc— ora. L’inizio del minuto, in UTC. (minute_utc, in secondi Unix)local_day— data. Il giorno di calendario a cui appartiene questo minuto, nel fuso orario in cui si trovava il Mac in quel momento. Viene fissato alla scrittura; un cambio di fuso orario successivo non lo sposta. (day_key)setup_id— intero. La postazione in uso: una fotocamera più una disposizione degli schermi. Nel JSON le postazioni sono elencate insetups. (profile_id)seconds_at_desk— da 0 a 60. I secondi in cui la fotocamera ti ha visto in questo minuto. Concamera_offa false, 0 significa che la fotocamera era accesa e non ti ha visto. (present_s)posture_deviation— numero, 0 o più. Quanto la testa e le spalle stavano sotto il tuo riferimento, in media sul minuto, come multiplo della soglia di avviso in vigore in quel momento: 0 al riferimento, 1 alla soglia. Vuoto quando la postura non è stata misurata. (posture_dev)posture_peak— numero, 0 o più. Il valore più alto della stessa misura nel minuto. (posture_peak)distance_deviation— numero, 0 o più. Quanto il tuo viso era più vicino allo schermo rispetto al riferimento, sulla stessa scala, ricavato dalla distanza tra i tuoi occhi nell’immagine. (distance_dev)blinks— intero. I battiti di palpebre contati mentre gli occhi si potevano misurare. Vuoto quando non si potevano misurare. (blinks)incomplete_blinks— intero. I battiti di palpebre il cui momento più stretto non si è avvicinato abbastanza alla chiusura completa. Vuoto quando non è stato possibile giudicare. (incomplete_blinks)head_pitch_degrees— numero. L’inclinazione media della testa in gradi, come la riporta la fotocamera: rispetto alla fotocamera, non al tuo riferimento. (head_pitch)confidence— da 0 a 1. L’affidabilità media del rilevamento del volto. (confidence)light— da 0 a 1. La luminosità media della zona del viso, da 0 buio a 1 chiaro. Non quella della stanza. (light)eyes_measured— booleano. Gli occhi si sono potuti misurare almeno una volta in questo minuto. Quando è false,blinks,incomplete_blinkseeye_observed_secondssono vuoti. (eye_valid)eye_observed_seconds— da 0 a 60. I secondi in cui gli occhi sono stati davvero osservati. I battiti di palpebre al minuto sonoblinks× 60 ÷eye_observed_seconds. (eye_observed_s)look_aways— intero. Gli sguardi lontano portati a termine, l’abitudine 20-20-20. Vuoto quando lo sguardo lontano non veniva misurato. (gaze_breaks)camera_off— booleano. La fotocamera era spenta in questo minuto: l’hai spenta tu, un’altra app la stava usando o il permesso è stato tolto. Le colonne della fotocamera sono allora vuote; quelle delle app e dell’attività possono comunque essere compilate. (camera_off)declared_break— booleano. Hai detto a Deskami che eri in pausa. Il minuto conta come lontano dalla scrivania, qualunque cosa abbia visto la fotocamera. (declared_break)front_app— testo. L’identificatore del bundle dell’app in primo piano per la maggior parte del minuto, comecom.apple.Safari. Vuoto quando quella lettura era spenta, lo schermo era bloccato o non c’era niente in primo piano. Mai un titolo di finestra. (app_id)app_switches— intero. Quante volte è cambiata l’app in primo piano in questo minuto. (app_switches)active_seconds— da 0 a 60. I secondi in cui tastiera o mouse erano stati toccati negli ultimi 15 secondi. Viene letto solo il tempo trascorso dall’ultimo evento, mai i tasti. Vuoto quando quella lettura era spenta. (active_s)call_seconds— da 0 a 60. I secondi in cui un’app per chiamate era in primo piano, o una stessa app aveva microfono e altoparlante aperti insieme. Vuoto quando non misurato, compreso ogni minuto registrato prima che Deskami iniziasse a misurarlo. (meeting_s)
JSON
Il file JSON è un unico oggetto. Comincia con un’intestazione: export_version, app_version, exported_at, time_zone (al momento dell’esportazione), database_schema_version, range (kind, from, to) e setups (id, camera_name, created_at).
Poi viene days, un oggetto per ogni giorno registrato nel periodo. Ogni giorno contiene il suo riepilogo, i suoi minuti e i suoi avvisi:
local_dayeminutes_at_desk, la somma diseconds_at_deskdivisa per 60.breaks: i periodi di 5 minuti o più e di meno di 2 ore trascorsi lontano dalla scrivania, tra due periodi alla scrivania. Il tempo con la fotocamera spenta non conta né da una parte né dall’altra.posture_fine_minutes(posture_deviationsotto 1) eposture_attention_minutes(1 o più).blink_rate: battiti di palpebre al minuto sul tempo in cui gli occhi sono stati osservati;nullsotto un minuto di osservazione.incomplete_blink_ratio:nullquando si sono potuti giudicare troppo pochi battiti.reminders_by_signal: gli avvisi mostrati, contati per segnale.minutes: le colonne dei minuti qui sopra, un oggetto per minuto.reminders: un oggetto per avviso, contime_utc,local_day,setup_id,signal(posture,distance,blink,incompleteBlinkogaze),build_up_seconds(il tempo sopra la soglia prima dell’avviso),recover_seconds(il tempo per tornare sotto;nullquando la misura si è fermata prima),asked(se è stata mostrata la domanda sul tuo riferimento) eanswer(nullse la domanda non è stata fatta, altrimentitrueofalse).
Il PDF non è una tabella: è il riepilogo stesso — il riepilogo del giorno, la settimana o il mese — stampato su una pagina esattamente come appare sullo schermo. Ogni numero che contiene è il numero sullo schermo.
Il file grezzo
Impostazioni › Generale › Dati › Mostra nel Finder ti porta a history.sqlite, accanto a history.sqlite-wal e history.sqlite-shm. Mentre Deskami è in esecuzione, i minuti più recenti possono trovarsi ancora nel file -wal; copia tutti e tre i file, oppure esci prima da Deskami. Se li elimini mentre Deskami è in esecuzione, entro pochi secondi avvia una registrazione nuova e vuota. L’esportazione scrive sempre un’istantanea completa. Cosa contiene il database è elencato nella pagina sulla privacy.