Yet Another WhatsApp Fork — an unofficial WhatsApp desktop client for Linux, written in C++ with gtkmm and WebKitGTK. A maintained fork of xeco23/WasIstLos.
YAWF wraps WhatsApp Web in a native WebKitGTK window and adds desktop integration (tray, notifications, autostart) plus a set of power-user features you don't get in the browser. It focuses on reliability (it recovers on its own when WhatsApp Web crashes) and productivity (clipboard image paste, Telegram-style formatting shortcuts, screenshot-to-chat).
- Everything WhatsApp Web offers, in a dedicated window
- System tray icon, notification sounds, autostart with the system
- Fullscreen mode and show/hide header bar (Alt+H)
- Zoom in/out, configurable minimum font size and theme tweaks
- Multiple accounts via
--profile <name>(isolated session per profile) - Localization and spell checking in your system language (install the matching
dictionary, e.g.
hunspell-en_us) - Open a chat directly by phone number
- Auto-recovery: if WhatsApp Web hits its "We encountered a problem" crash screen, the app reloads itself automatically (with a backoff so it never loops endlessly)
- Memory-managed sessions: WebKit memory pressure thresholds are derived from your actual RAM (40% of physical memory, polled every 5 s) so the web process never silently grows to an OOM crash. JavaScriptCore's concurrent and generational GC are enabled to keep the heap lean during high-volume group chats
- Idle heap reset: after 4 hours with no keyboard or scroll input, YAWF silently reloads WhatsApp Web to clear accumulated JS heap. Messages reload from local storage in seconds — no re-linking, no server re-fetch. Any interaction resets the timer so active sessions are never interrupted
- Tray → Refresh: on-demand reload from the system-tray menu when you notice slowdown without waiting for the idle timer
- Software-decode video workaround for glitchy hardware video paths
- Web-browser cache model so reloads come back quickly from disk
| Shortcut | Action |
|---|---|
Ctrl+V / Ctrl+Shift+V |
Paste an image from the clipboard into the composer |
Ctrl+Shift+S |
Capture a screen region and drop it straight into the chat |
Ctrl+B |
Wrap selection in *bold* |
Ctrl+I |
Wrap selection in _italic_ |
Ctrl+Shift+X |
Wrap selection in ~strikethrough~ |
Ctrl+Shift+M |
Wrap selection in ```monospace``` |
Ctrl+Shift+N |
Clear formatting from the selection |
- Clipboard image paste works even where WhatsApp Web's own paste does not — copy a screenshot and paste it directly.
- Screenshot to chat auto-detects your desktop's region-capture tool (Spectacle on KDE, gnome-screenshot on GNOME, grim + slurp on wlroots, or maim/flameshot/ImageMagick on X11).
- Send with Ctrl+Enter (optional, off by default): enable it in Preferences to make Enter insert a newline and Ctrl+Enter send the message.
The full list is always available in-app via Ctrl+?.
Grab a .deb, .AppImage, or .snap from the
Releases page, or use a package
channel:
- Arch (AUR):
yay -S yawf— packaging inpackaging/aur - Flatpak / Flathub: manifest in
packaging/flatpak(submission in progress) - Snap:
snap install yawf(publishing in progress)
Migrating from WasIstLos? On first launch YAWF copies your existing
wasistlosconfig, session and settings over, so you stay logged in.
- cmake >= 3.12
- intltool
- gtkmm-3.0
- webkit2gtk-4.1
- ayatana-appindicator3-0.1
- libcanberra
- libhunspell (optional, for spell checking)
- A region-screenshot tool for Ctrl+Shift+S (optional): one of
spectacle,gnome-screenshot,grim+slurp,maim,flameshot, or ImageMagick
# Create a debug build directory and go into it
mkdir -p build/debug && cd build/debug
# Build the project
cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=/usr ../..
make -j4
# Run
./yawfNote
The GTK .ui resources are compiled at CMake configure time. If you change
a file under resource/ui/, re-run cmake before building so the change is
embedded.
# Run inside the build directory once the application is built (needs root)
make installTip
To keep a distro package from overwriting your build, install to /usr/local
(configure with -DCMAKE_INSTALL_PREFIX=/usr/local). It wins on PATH and
XDG_DATA_DIRS, and your package manager never touches /usr/local.
| Path | Contents |
|---|---|
src/ |
Application sources (ui/, util/) |
resource/ |
GTK .ui, icons, desktop entry & AppStream metainfo, logo SVG sources |
po/ |
Translations |
packaging/ |
appimage/, aur/, flatpak/ recipes |
debian/, snap/ |
Kept at the repo root because dpkg-buildpackage and snapcraft require them there |
YAWF ships as its own package (yawf, app-id io.github.wahid7852.YAWF) — it does
not replace or conflict with the upstream wasistlos package. See
RELEASING.md for how a release is cut and shipped to each channel.
- Publish to Flathub and the Snap Store; submit/maintain the AUR package
- Debian/Ubuntu PPA for easy
aptinstalls - Translate the new UI strings (formatting shortcuts, preferences) into all locales
- Optional global hotkey to show/hide the window from the tray
- Per-chat notification controls and quiet hours
- Theme polish and a few more built-in themes
- CI: validate the
.desktopand AppStream metainfo on every PR - Automated snap/flatpak build checks in CI
Please read contributing.
- Wahid7852 — maintainer of this fork
- xeco23 (Enes Hecan) and the original WasIstLos contributors
YAWF is a fork of the original WasIstLos by xeco23 (Enes Hecan) and contributors. All credit for the original application goes to them. Licensed under GPL-3.0.
