A ideia
Ter na área de trabalho, presas ao papel de parede, as informações que eu olhava o dia inteiro: clima, uso do sistema, a música que está tocando, atividade no GitHub, um Pomodoro e o uso do Claude. Cada widget usa o próprio papel de parede desfocado como fundo.
O Clawd
O widget Uso do Claude mostra quanto da sessão de 5 horas e da semana eu já usei no Claude Code. Ao lado dos medidores fica o Clawd, o caranguejo do Claude Code, em pixel art. Ele faz o que o Claude Code está fazendo naquele momento.
Editando código, ele digita num notebook. Lendo e procurando no código, vira Sherlock, de chapéu, cachimbo e lupa. Pesquisando na web, olha longe com um binóculo; planejando, escreve numa prancheta. Num comando demorado segura uma ampulheta, cada subagente aparece como um Clawd pequeno trabalhando junto e, parado, ele põe o fone ou cochila. Em dezembro ganha gorro de Papai Noel e neve.
Um clique e ele pula para cima da barra de tarefas, ao lado do relógio, com um balão dizendo o que o Claude Code faz agora. Outro clique e ele volta para o widget.
Por quê: os números vêm do próprio Claude Code. Ao conectar, o widget vira a linha de status dele e recebe um aviso quando o Claude Code precisa de mim, então o Clawd mostra o estado real, sem adivinhar.
Decisões
Rust e Direct2D, sem framework de interface
A interface é desenhada direto com Direct2D sobre janelas Win32.
Por quê: widgets ficam abertos o tempo todo. Um app que roda sempre precisa ser leve, e o resultado é um único executável de 3,5 MB, sem runtime de navegador por trás.
O fundo vem do próprio papel de parede
Em vez de depender de transparência da janela, cada widget usa uma versão desfocada do papel de parede como fundo.
Por quê: o efeito de vidro fosco fica consistente e não depende de recursos de composição que variam entre versões do Windows.
Todos os widgets testados em todos os estados
Cada widget tem testes para cada estado em que pode estar.
Por quê: widget de área de trabalho quebra nos cantos: sem rede, sem música tocando, API fora do ar. Esses estados precisam funcionar tanto quanto o caminho feliz.
Instalador e releases automáticos
O GitHub Actions gera o instalador e publica o release.
Por quê: se instalar é difícil, ninguém usa. Publicar uma versão nova não depende de passos manuais na minha máquina.