Pivot
Um timer de desktop para alternar entre em pé, sentado e pausas enquanto você trabalha — o cubo de virar da minha mesa, refeito como app. Linux, Windows e macOS.
Por que um app de desktop
O Pivot substitui um timer de cubo físico: você vira um lado e ele conta o tempo de ficar em pé, sentado ou em pausa. A graça de um timer assim é que ele toca não importa o que você esteja fazendo, e isso descartou o caminho fácil.
Um app web não garante o alarme com a aba fechada, não põe contagem na barra superior e não abre um alerta por cima de tudo. Então é um app de desktop, feito com Tauri 2: um código só para os três sistemas, com uma interface web comum que usa o mesmo design system deste site.
Como é construído
As regras moram num núcleo em Rust sem nada de interface: timers, encadeamento, lembretes, histórico e os comandos de terminal, sobre SQLite e cobertos por testes. A camada do Tauri só liga esse núcleo à bandeja, às janelas e aos comandos, e o front é TypeScript sem framework.
Ele roda como um processo só, que mora na bandeja e inicia com o sistema. Um relógio bate uma vez por segundo, dispara o que venceu e abre a janela de alerta com som. Rodar pivot no terminal fala com esse mesmo processo, em vez de abrir um segundo.
O que ele faz
- Timers que passam a vez um para o outro, que é o que faz dele um cubo de virar: Em pé termina e sugere Sentado, e Sentado sugere Em pé de novo. Um clique no alerta começa o próximo.
- Lembretes recorrentes, como beber água de hora em hora nos dias úteis. Um lembrete perdido por mais de 15 minutos, porque o notebook estava dormindo, é descartado em vez de tocar atrasado.
- Histórico do dia e da semana com tempo por tipo, as trocas entre tipos e os lembretes feitos, inclusive os tipos que a pessoa cria, cada um com a sua cor.
- Comandos de terminal para iniciar um timer salvo, rodar um avulso, ver o status ou ler o resumo do dia sem abrir a janela.
- Inglês e português do Brasil, nas janelas, no menu da bandeja, nas notificações e no terminal.
Como ele chega em quem usa
Uma tag de versão faz o GitHub Actions gerar todos os instaladores, para Linux, Windows e os dois tipos de Mac, e publicar a release. O app confere essa release ao abrir e se atualiza sozinho onde o sistema permite.
Os instaladores não têm assinatura de código de propósito. Certificado pago e conta de desenvolvedor não fazem sentido para um app pequeno que guarda tudo no próprio computador, então o README explica o aviso que o Windows e o macOS mostram. As atualizações continuam assinadas com a chave do próprio app, então ele só instala builds que vieram deste repositório.