Software & automação · estudo de caso
Easy Shutdown
Um utilitário leve para Windows 11 que controla o ciclo de energia do PC: sete ações imediatas, tarefas agendadas que sobrevivem a reinícios, aviso final na tela e atalhos globais seguros.
Visão geral
O projeto em poucas palavras
O Easy Shutdown é um aplicativo de desktop para Windows 11 que reúne, num só lugar, tudo o que se faz com a energia do computador: desligar, reiniciar, suspender, hibernar, bloquear, encerrar a sessão e apagar a tela. Dá para agir na hora, agendar para depois, deixar por conta da inatividade ou usar um atalho de teclado, sem caixas de diálogo improvisadas nem comandos no terminal.
Ele é leve, tem interface no estilo do Windows 11, com tema claro e escuro, e roda na bandeja do sistema. Os instaladores (.msi e .exe) estão na página de releases; a versão publicada é a 0.2.0.

Desafio
O ponto de partida
Quem deixa o computador baixando um arquivo, renderizando um vídeo ou rodando um backup costuma querer a mesma coisa: que ele desligue sozinho quando terminar. O Windows até permite, mas por caminhos espalhados: o menu Iniciar, o comando shutdown no terminal, o Agendador de Tarefas. Nenhum mostra, num só lugar, o que está programado e quanto falta.
Os riscos também são reais. Um desligamento agendado pode ser engolido pela suspensão automática do PC, pode pegar a pessoa de surpresa ao voltar de uma pausa ou ser travado por um programa pedindo "salvar?". E atalhos globais mal escolhidos podem disparar a ação por engano.
O desafio era criar algo simples de usar e previsível: que faça o que foi pedido, no horário certo, e que nunca desligue o PC por acidente.
Solução
O que o aplicativo faz
Sete ações, com confirmação clara
Cada ação tem um cartão com uma descrição curta e um botão de ajuda que explica as diferenças entre opções parecidas, como suspender e hibernar. Com a confirmação ligada, um diálogo explica o que vai acontecer e oferece o modo forçado, que fecha programas sem perguntar, deixando o risco de perder trabalho não salvo bem visível.

Tarefas agendadas
É possível ter várias tarefas ao mesmo tempo, cada uma com a sua ação:
Daqui a algumas horas ou minutos;
Data e hora específicas;
Repetir todos os dias, nos dias úteis ou em dias escolhidos;
Inatividade: após N minutos sem teclado ou mouse.
O formulário mostra uma prévia em linguagem natural ("Vai executar hoje às 14h") antes de salvar. As tarefas ficam gravadas em disco e continuam valendo depois de fechar o app ou reiniciar o PC; as recorrentes podem ser pausadas ou ter só a próxima ocorrência pulada.

Aviso final na tela
Nos últimos segundos antes de uma tarefa executar, aparece uma contagem regressiva com Cancelar, Adiar 10 min e Executar agora. Diferente de uma notificação, o aviso não fica escondido pelo modo "Não incomodar" do Windows. Há ainda um lembrete antes do horário e, para tarefas por inatividade, basta mexer o mouse para cancelar.

Atalhos globais seguros
Os atalhos funcionam mesmo com o app na bandeja e mostram, para cada um, se o Windows aceitou o registro ou se a combinação já é usada por outro programa. Nenhum atalho vem ligado de fábrica, e há um opcional para cancelar a próxima tarefa.

Bandeja e ajustes
A bandeja do sistema oferece as ações rápidas, "Agendar desligamento" (de 15 minutos a 3 horas), adiar ou cancelar a próxima tarefa e manter o PC acordado. Nos ajustes ficam o início com o Windows, o tema, o tempo do aviso final e o lembrete padrão.

Processo
Decisões de engenharia
Um frontend web, um backend nativo
O aplicativo usa Tauri 2: a interface é React 18 com TypeScript, Tailwind CSS e Zustand, rodando na WebView2 do Windows; o backend é em Rust e conversa com a interface por comandos e eventos. Um motor de tarefas avalia todas as agendas a cada segundo, emite a contagem para a tela, dispara lembretes e executa a ação.
Ações pela API do Windows, sem console
As ações chamam diretamente a Win32 API (como ExitWindowsEx, SetSuspendState e LockWorkStation), sem abrir o shutdown.exe nem um console escondido. Isso evita janelas piscando e problemas de idioma do sistema.
Prevenir o desligamento por engano
Salvar antes de executar: o estado da tarefa é gravado antes da ação, para um desligamento não se repetir quando o PC liga de novo.
Ocorrências perdidas: se o PC estava suspenso no horário, um atraso pequeno recebe um período de graça com aviso; um atraso grande marca a ocorrência como perdida, em vez de desligar a máquina de surpresa.
Manter acordado: enquanto houver tarefa única pendente, o app impede a suspensão automática que engoliria o desligamento.
AltGr: combinações Ctrl+Alt+letra são recusadas, porque o Windows trata o AltGr como Ctrl+Alt e digitar "/" ou "ä" poderia disparar a ação.
Gravação atômica: configurações, tarefas e histórico são salvos num arquivo temporário e renomeados, com cópia de segurança se o arquivo corromper.
Permissões mínimas e dados locais
A WebView só pode minimizar, fechar e arrastar a janela; todo o resto passa por comandos do backend. Tudo fica no computador, sem nuvem nem telemetria.
Meu papel
O que fiz
Concebi o produto e desenvolvi todas as partes: a interface em React, o backend em Rust com o motor de tarefas e as chamadas ao Windows, os atalhos globais, a bandeja do sistema, a migração de configurações da versão anterior (que tinha outro nome) e a documentação. Também configurei a integração contínua, que roda num servidor Windows os testes, a checagem de qualidade do Rust (Clippy) e a geração dos instaladores.
Resultados
Onde está hoje
A versão 0.2.0, de 26/10/2026, está publicada com instaladores .msi e .exe, e a integração contínua do commit mais recente passou. O repositório tem testes do frontend, que rodei e passaram (15 testes), e testes em Rust para a lógica pura de cálculo de horários, validação de atalhos e configurações.
Quanto aos limites: o app é só para Windows (no Windows 10 funciona, sem o efeito Mica), a licença é proprietária e o desligamento sem forçar ainda pode ser barrado por um programa pedindo para salvar, o que a interface avisa na hora de agendar.
Aprendizados
O que guiou as decisões
Num utilitário que desliga o computador, a confiança vem da previsibilidade. Por isso as decisões foram menos sobre recursos e mais sobre cenários de falha: o que acontece se o PC estiver suspenso, se o app fechar, se o atalho conflitar ou se alguém voltar de uma pausa no meio da contagem.
Dar visibilidade ao que está programado, com a próxima tarefa sempre no topo e um aviso na tela que não depende de notificação, tornou o app mais seguro de usar do que os comandos de terminal que ele substitui.


