Todos os projetos

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.

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.
Pivot — tela 2
Pivot — tela 3
Pivot — tela 4
Pivot — tela 5
Pivot — tela 6

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.

Veja como funciona