ZapZap – WhatsApp Desktop for Linux
ZapZap brings the WhatsApp experience on Linux closer to that of a native application.
Since Meta does not provide a public API for third-party applications, ZapZap is developed as a Progressive Web Application (PWA), built with PyQt6 + PyQt6-WebEngine.
📌 About notifications and icons on Flatpak: See docs/notifications.md
ZapZap extends WhatsApp Web with additional features:
- Adaptive light and dark mode
- Fullscreen mode
- Custom window decorations
- Interface scaling adjustment (ideal for 2K/4K screens)
- Keyboard shortcuts for main options
- Adaptive system tray icon (notifies new messages)
- Background process support
- Drag-and-drop functionality
- Ability to select a custom folder for downloads
- Temporary folder for opening files
- Spellchecker with language selection via context menu
- Customizable system tray icons
- Option to choose a folder for custom dictionaries
- Setting to disable the native file selection dialog (Hyprland)
- Custom CSS/JS with global + per-account override
- Reorganized Settings Panel
- Added Performance section
- New Customizations page in Settings
- Supports Global customization and Current account customization
- Account mode supports inherit global settings + optional override
- Users can:
- import
.cssand.jsfiles - create and edit CSS/JavaScript files in dialogs
- enable/disable each imported CSS/JS file independently
- import CSS/JavaScript from any
https://URL - open customization folders directly
- import
- Supports many userstyle files (
.user.css) by extracting WhatsApp-targeted@-moz-documentblocks - Page actions:
Save,Save and reload,Reload
Customization files are stored in the app local data path under:
customizations/global/csscustomizations/global/jscustomizations/accounts/<id>/csscustomizations/accounts/<id>/js
Reserved for future extension support:
customizations/extensions
- Python 3.9 or higher
If pip install -r requirements.txt fails due to dbus-python:
sudo dnf install -y dbus-devel pkg-config gcc python3-develThen:
pip install -r requirements.txtpython run.py [dev|preview|build] [options]Without translations:
python run.py devWith translations:
python run.py dev --build-translationsFlatpak:
python run.py preview --flatpakAppImage:
python run.py preview --appimageWith translations:
python run.py preview --build-translations --flatpak python run.py build --appimage <version>Example:
python run.py build --appimage 6.0python run.py build --flatpak-onefileOutput:
dist/com.rtosta.zapzap.flatpak
pip install .pip uninstall zapzapuv tool install . --with-requirements requirements.txtZapZap supports translations. If your language file is missing from the po folder, submit a pull request or open an issue.
Contributions are welcome! Please submit a pull request with any improvements or changes you wish to propose.
This project is licensed under the GPL. See the LICENSE file for more information.
PayPal: Donate via PayPal
Pix: Donate via Pix
Ko-fi: Donate via Ko-fi
Maintainer: Rafael Tosta
Email: rafa.ecomp@gmail.com
