Skip to content
strngrthnallPublic

About

Cliente desktop não-oficial do WhatsApp Web em Tauri 2 + Rust. Projeto de estudo de Tauri/Rust com auxílio de agentes de IA.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ZappNux

Cliente desktop não-oficial do WhatsApp Web para Linux, empacotado com Tauri 2 + Rust. Roda o web.whatsapp.com em uma janela nativa com bandeja do sistema, notificações nativas e colagem de imagens da área de transferência.

Aviso: projeto pessoal, sem qualquer vínculo com a Meta ou WhatsApp. O nome e marcas pertencem aos seus respectivos donos.

Motivação

Este projeto foi criado com dois objetivos principais:

  1. Estudo de Tauri 2 e Rust — explorar na prática a stack Tauri (WebView nativa, IPC, plugins, bandeja, notificações) e fortalecer fundamentos de Rust em um projeto real e útil no dia a dia.
  2. Uso de Agentes de IA no fluxo de desenvolvimento — boa parte do código foi escrita em colaboração com agentes de IA (Claude Code), servindo também como experimento sobre como esse tipo de ferramenta acelera, atrapalha ou molda decisões em um projeto pequeno e focado.

Ou seja, o ZappNux é tanto um app utilizável quanto um laboratório de aprendizado.

Funcionalidades

  • Janela dedicada para o WhatsApp Web, sem abas nem distrações do navegador.
  • Ícone na bandeja do sistema com menu (Mostrar / Esconder / Sair) e clique esquerdo para alternar a janela.
  • Fechar minimiza para a bandeja em vez de encerrar o app.
  • Notificações nativas do SO: o inject.js substitui a window.Notification do WhatsApp Web por uma ponte que dispara notificações via plugin nativo do Tauri.
  • Colar imagem com Ctrl+V: lê a imagem da área de transferência via Rust (arboard), converte para PNG e injeta como evento de paste no WhatsApp Web.
  • User-Agent forjado como Chrome desktop para evitar bloqueios básicos do WhatsApp Web.
  • Tweaks de WebKitGTK no Linux (DMABUF desativado, GStreamer playbin3) para reduzir problemas de renderização e mídia.

Stack

  • Tauri 2 (tray-icon, image-png)
  • Rust (edição 2021)
  • Plugins: tauri-plugin-notification, tauri-plugin-clipboard-manager, tauri-plugin-opener
  • arboard para clipboard, image para encoding PNG
  • Frontend: HTML/JS estático mínimo — a janela principal carrega https://web.whatsapp.com diretamente como WebviewUrl::External

Estrutura

ZappNux/
├── src/                  # frontend estático mínimo (não é a UI principal)
├── src-tauri/
│   ├── src/
│   │   ├── main.rs       # entry point + tweaks WebKitGTK no Linux
│   │   └── lib.rs        # janela, bandeja, comandos IPC, plugins
│   ├── inject.js         # script injetado no WhatsApp Web (clipboard + notificações)
│   ├── tauri.conf.json
│   └── Cargo.toml
└── README.md

Pré-requisitos (Linux)

  • Rust estável (via rustup)
  • Dependências do sistema para Tauri 2: webkit2gtk-4.1, libssl, libayatana-appindicator3, librsvg2, libsoup-3.0, gstreamer e plugins.

No Arch:

sudo pacman -S webkit2gtk-4.1 base-devel curl wget file openssl \
    libayatana-appindicator librsvg gst-plugins-base gst-plugins-good

Rodando

cd src-tauri
cargo tauri dev      # dev
cargo tauri build    # release / bundle

Se ainda não tiver o CLI:

cargo install tauri-cli --version "^2"

Limitações conhecidas

  • Chamadas de voz/vídeo não funcionam. O WhatsApp Web exige APIs WebRTC específicas que o WebKitGTK não implementa por completo. Mesmo forjando o User-Agent, a detecção de features falha e o WhatsApp mostra "navegador incompatível com chamadas". Resolver de verdade exigiria trocar a engine para Chromium (ex.: Electron), o que está fora do escopo atual do projeto.
  • Mensagens, mídia, status, figurinhas e colagem de imagem funcionam normalmente.

Roadmap / ideias

  • Badge de mensagens não lidas no ícone da bandeja
  • Atalhos globais (mostrar/esconder janela)
  • Persistência de zoom e tamanho de janela
  • Ícone na bandeja indicando status conectado/desconectado

Licença

Uso pessoal e estudo. Sem licença formal definida ainda.

About

Cliente desktop não-oficial do WhatsApp Web em Tauri 2 + Rust. Projeto de estudo de Tauri/Rust com auxílio de agentes de IA.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages