7

Pitch: DeckLock: Uma tela de bloqueio opensource para Wayland customizável e com temas em Rust & GTK4

Estive trabalhando no DeckLock, um bloqueador de tela moderno e personalizável para compositores Wayland (testado no Hyprland), escrito em Rust e GTK4.

Eu queria uma tela de bloqueio que parecesse moderna, suportasse vídeos sem áudio em loop / slideshow de fotos e oferecesse tanto um aplicativo de configurações gráfico com pré-visualização em tempo real (live preview) quanto uma interface de linha de comando (CLI headless) para automação via scripts.

Principais Recursos:

• Bloqueio de Sessão Wayland: Utiliza o protocolo ext-session-lock-v1 e autenticação nativa PAM (com limpeza segura de memória para senhas / zeroizing).

• Configurações com Live Preview: Janela de pré-visualização em tempo real que atualiza dinamicamente conforme você altera as opções, sem precisar bloquear a tela.

• Temas Integrados para Desenvolvedores: Catppuccin (Mocha & Latte), Tokyo Night, Dracula, Nord, Gruvbox Dark e Classic — alteram visualmente tanto o painel de configurações quanto os controles da tela de bloqueio.

• Biblioteca de Mídia e Pools: Pools independentes de arquivos para o bloqueio normal e para o modo de repouso (idle). Suporte a vídeos MP4 em loop e slideshow de fotos com transição suave (crossfade).

• CLI Headless (decklock config): Inspeção e edição completa via terminal (decklock config set theme_preset tokyo-night, decklock config show, etc.).

• Teclado Virtual e Suporte a Controles: Teclado em tela (OSK) com suporte a multi-toque e integração opcional via daemon para gamepads / Steam Controller.

• Bilíngue: Tradução nativa completa em Português (pt-BR) e Inglês.

Instalação e Download

Pacotes pré-compilados já estão disponíveis no primeiro release v0.1:
• Arch Linux (pacman -U): Pacote nativo pronto na página de releases (todas as dependências, incluindo gtk4-layer-shell, são resolvidas automaticamente).

• Tarball Portável: Compatível com qualquer distribuição Linux x86_64 recente.

• Código-fonte: Compile com cargo build --release --locked.

• Repositório no GitHub: https://github.com/yan-vidal/DeckLock

• Release v0.1: https://github.com/yan-vidal/DeckLock/releases/tag/v0.1

Feedbacks, sugestões e contribuições são muito bem-vindos! Espero que gostem.

Carregando publicação patrocinada...
1
1

Obrigado pelo comentário.

Venho a bastante tempo sofrendo com bloqueador de tela por não achar uma alternativa que atendia tudo que eu queria a nivel de personalização e funcionalidade. Me baseei no windows que usei a muitos anos atrás que tinha o teclado virtual e as opções de energia. Dai eu fiz esse ai inicialmente em Python a partir do gtklock com umas modificações minhas só locais mesmo, acabei organizando, evoluindo e refatorando em Rust pra disponibilizar pra galera usar.

Estou vendo de adicionar animações procedurais pra usar de fundo e também uma função opcional de usar uma API que fornece as mídias pra tela de bloqueio (vou fornecer a minha com minhas fotos, tem algumas no meu site pessoal e a maioria só local comigo, e ainda preciso fazer uma curadoria nisso). Também quero ver a viabilidade tecnica e de segurança de extensões usando .lua penso que daria pra fazer Widgets interessantes pra exibir.

1

Acabei de subir a 0.2 com funcionalidade novas, ajustes e melhora no CI/CD do projeto e melhoria dos testes.

• Oito fundos procedurais — Campo de estrelas, Partículas, Curvas de Lissajous,
Chuva Matrix, Fogo Doom, Aurora, Campo de fluxo e Cordilheira. São itens da
biblioteca como fotos e vídeos: adicione ao pool, abra no visualizador e ajuste
cores, velocidade, densidade, semente e FPS num editor ao vivo. As miniaturas
acompanham as edições.
• Métricas no preview: FPS gerados e CPU de desenho, mais CPU e memória do
processo de configurações — identificados como do processo inteiro, porque
incluem o GTK.
• Ajuda offline no F1, com os capítulos Geral e Avançada em português e inglês,
seguindo o idioma escolhido nas configurações.
• Botão de fechar padronizado nas janelas comuns, com opção de ocultar as barras
de título (nas configurações ou com decklock config set window_decorations false). A tela realmente bloqueada nunca ganha esse controle.
• Quando o PAM informa que a conta foi bloqueada por falhas, a tela avisa e mostra
uma espera estimada. Ele só repete o que o PAM disse e não impõe política
própria — o campo de senha continua utilizável o tempo todo.
• Testes: além dos testes de protocolo isolados, o CI agora sobe uma máquina
virtual descartável e exercita o pacote instalado contra Sway e Linux-PAM
reais — negativa, desbloqueio, bloqueio de conta e SIGTERM mantendo bloqueado.

O pacote pronto é para Arch x86_64; outras distribuições precisam compilar o código.