Formato de exportação
A exportação, parte do Deskami Plus, escreve o mesmo registo minuto a minuto que o Deskami guarda no teu Mac. Nada é acrescentado, estimado ou preenchido. Esta página descreve o que está no ficheiro.
Convenções
- Uma célula vazia no CSV, ou
nullno JSON, significa não medido. Um0significa medido, e deu zero. - Os nomes das colunas estão em inglês em todas as línguas e são fixos; só mudam juntamente com uma nova
export_version. - Os ficheiros são UTF-8. O CSV é separado por vírgulas, com uma linha de cabeçalho.
- As horas estão em UTC, em ISO 8601, por exemplo
2026-09-28T07:41:00Z. As datas estão no formatoYYYY-MM-DDe são o dia do calendário em que o minuto foi registado. - Os decimais usam ponto, nunca separador de milhares. Os booleanos são
trueefalse. - Há uma linha por cada minuto em que o Deskami registou alguma coisa, e nenhuma para os minutos em que não registou nada.
Colunas dos minutos
O CSV tem estas colunas, por esta ordem; no JSON, os mesmos campos formam cada minuto. O nome entre parênteses é a coluna no ficheiro da base de dados em bruto.
minute_utc— hora. O início do minuto, em UTC. (minute_utc, em segundos Unix)local_day— data. O dia do calendário a que este minuto pertence, no fuso horário em que o Mac estava nesse momento. Fica fixo quando é escrito; uma mudança de fuso horário posterior não o altera. (day_key)setup_id— número inteiro. A configuração em uso: uma câmara mais uma disposição de ecrãs. No JSON, as configurações estão listadas emsetups. (profile_id)seconds_at_desk— de 0 a 60. Os segundos em que a câmara te viu neste minuto. Comcamera_offa false, 0 significa que a câmara estava ligada e não te viu. (present_s)posture_deviation— número, 0 ou mais. Quanto a tua cabeça e os teus ombros ficaram abaixo da tua própria referência, em média ao longo do minuto, como múltiplo do limiar do lembrete em vigor nesse momento: 0 na referência, 1 no limiar. Vazio quando a postura não foi medida. (posture_dev)posture_peak— número, 0 ou mais. O valor mais alto da mesma medida dentro do minuto. (posture_peak)distance_deviation— número, 0 ou mais. Quanto mais perto do ecrã esteve o teu rosto do que na tua referência, na mesma escala, lido a partir do afastamento entre os teus olhos na imagem. (distance_dev)blinks— número inteiro. Pestanejos contados enquanto os olhos podiam ser medidos. Vazio quando não podiam. (blinks)incomplete_blinks— número inteiro. Pestanejos em que o olho, no momento mais fechado, não chegou suficientemente perto de fechar. Vazio quando não foi possível avaliar. (incomplete_blinks)head_pitch_degrees— número. Inclinação média da cabeça, em graus, tal como a câmara a comunica: em relação à câmara, não à tua referência. (head_pitch)confidence— de 0 a 1. Confiança média da deteção do rosto. (confidence)light— de 0 a 1. Luminosidade média da zona do rosto, de 0 escuro a 1 claro. Não é a luz da sala. (light)eyes_measured— booleano. Os olhos puderam ser medidos pelo menos uma vez neste minuto. Quando é false,blinks,incomplete_blinkseeye_observed_secondsficam vazios. (eye_valid)eye_observed_seconds— de 0 a 60. Segundos em que os olhos foram realmente observados. Os pestanejos por minuto sãoblinks× 60 ÷eye_observed_seconds. (eye_observed_s)look_aways— número inteiro. Olhares ao longe completos, o hábito 20-20-20. Vazio quando o olhar ao longe não estava a ser medido. (gaze_breaks)camera_off— booleano. A câmara esteve desligada neste minuto: desligaste-a, outra aplicação estava a usá-la, ou a permissão foi retirada. As colunas da câmara ficam então vazias; as colunas da aplicação e da atividade podem continuar preenchidas. (camera_off)declared_break— booleano. Disseste ao Deskami que estavas numa pausa. O minuto conta como tempo fora da secretária, seja o que for que a câmara tenha visto. (declared_break)front_app— texto. O identificador de pacote (bundle identifier) da aplicação que esteve à frente durante a maior parte do minuto, por exemplocom.apple.Safari. Vazio quando essa leitura estava desligada, o ecrã estava bloqueado ou não havia nada à frente. Nunca é um título de janela. (app_id)app_switches— número inteiro. Quantas vezes mudou a aplicação à frente neste minuto. (app_switches)active_seconds— de 0 a 60. Segundos em que o teclado ou o rato tinham sido usados nos 15 segundos anteriores. Só é lido o tempo desde o último evento, nunca as teclas. Vazio quando essa leitura estava desligada. (active_s)call_seconds— de 0 a 60. Segundos em que uma aplicação de chamadas estava à frente, ou em que uma aplicação tinha o microfone e o altifalante abertos ao mesmo tempo. Vazio quando não foi medido, incluindo todos os minutos registados antes de o Deskami medir isto. (meeting_s)
JSON
O ficheiro JSON é um único objeto. Começa com um cabeçalho: export_version, app_version, exported_at, time_zone (no momento da exportação), database_schema_version, range (kind, from, to) e setups (id, camera_name, created_at).
Depois vem days, um objeto por cada dia registado no período. Cada dia traz o seu próprio resumo, os seus minutos e os seus lembretes:
local_dayeminutes_at_desk, a soma deseconds_at_deska dividir por 60.breaks: períodos de 5 minutos ou mais fora da secretária, e de menos de 2 horas, entre dois períodos à secretária. O tempo com a câmara desligada não conta para nenhum dos lados.posture_fine_minutes(posture_deviationabaixo de 1) eposture_attention_minutes(1 ou mais).blink_rate: pestanejos por minuto ao longo do tempo em que os olhos foram observados;nullcom menos de um minuto de observação.incomplete_blink_ratio:nullquando foram poucos os pestanejos que puderam ser avaliados.reminders_by_signal: lembretes mostrados, contados por sinal.minutes: as colunas dos minutos descritas acima, um objeto por minuto.reminders: um objeto por lembrete, comtime_utc,local_day,setup_id,signal(posture,distance,blink,incompleteBlinkougaze),build_up_seconds(tempo acima do limiar antes do lembrete),recover_seconds(tempo até voltar a ficar abaixo dele;nullquando a medição parou antes),asked(se a pergunta sobre a tua referência foi mostrada) eanswer(nullquando não foi feita a pergunta; caso contrário,trueoufalse).
O PDF não é uma tabela: é o próprio resumo — o resumo do dia, a semana ou o mês — impresso numa página, exatamente como aparece no ecrã. Cada número que lá está é o número que está no ecrã.
O ficheiro em bruto
Definições › Geral › Dados › Mostrar no Finder revela o history.sqlite, ao lado de history.sqlite-wal e history.sqlite-shm. Enquanto o Deskami está a correr, os minutos mais recentes podem ainda estar no ficheiro -wal; copia os três ficheiros, ou sai primeiro do Deskami. Se os apagares enquanto o Deskami está a correr, ele começa um registo novo e vazio em poucos segundos. A exportação grava sempre um instantâneo completo. O que a base de dados contém está listado na página de privacidade.