- About Whatsit
- Improvements in v 3.0.x
- Paths and Storage Locations
- Configuration
- Install from AUR
- Build
- Notes
- Future updates
- LICENSE
- A lightweight, native desktop client for WhatsApp Web built with
Qt 6andQt WebEngine. - Whatsit is NOT Electron-based. It uses system Qt and WebEngine, resulting in significantly lower memory usage, faster startup, and proper KDE/Qt integration.
- Name Inspired by the series Stranger Things S5.
- I have tried many Whatsapp web clients, but none of them are fast and light. None of them felt right…
- My setup is Arch-KDE Plasma-Wayland. If your setup is similar, the app should work well.
- In
v3.0.x, additional features such as memory kill switch and custom app and tray icons, etc. You may call these features bloat, but I like to have those. If you don’t want those, use lower versions of the app. I don’t need a system tray… I don’t need notifications…Turns out, I do need a system tray icon, and notifications. So they are implemented inv2.0.0.- If you want the minimal and bare version, use
v1.0.1.
- Native Qt 6 application
- Qt WebEngine-based (Chromium)
- Persistent login and chat storage
- Uses standard XDG directories
- KDE / Wayland friendly
- Dark mode support via configuration
- Very low overhead compared to Electron apps
- KDE Native Notification support
- Reduce memory usage & kill switch
- Mute sounds (including notifications and media)
- Use Less Memory - When hidden to tray, app consumes less memory by unloading the webpage.
- Memory Kill switch - Checks its memory every 30 seconds and quits if memory usage is above the threshold.
- Customize App Icon, Tray Icon and App URL.
- Tray icon toggles show/hide window on click.
Ctrl+Shift+Qkeybinding quits the app completely.
- debug file at
~/.cache/whatsit/whatsit.log - icon at
/usr/share/icons/hicolor/256x256/apps/whatsit.png - desktop file at
/usr/share/applications/whatsit.desktop - notifyrc at
/usr/share/knotifications6/whatsit.notifyrc - binary at
/usr/bin/whatsit - main config file at
~/.config/whatsit/whatsit.ini - customization config file at
~/.config/whatsit/custom.ini
- cache at
~/.cache/whatsit/whatsit - profile and cookies at
~/.local/share/whatsit/whatsit
- Main config file located at
~/.config/whatsit/whatsit.ini. - It is generated automatically on first run.
- Example config:
[Advanced]
MemoryLimit=2
UseLessMemory=true
[Debug]
EnableFileLogging=false
[%General]
PreferDarkMode=true
RememberDownloadPaths=true
[System]
AutostartOnLogin=true
MuteAudio=true
StartMinimizedInTray=true
SystemNotifications=true
[Window]
MaximizedByDefault=true
MinimizeToTray=true
RememberWindowSize=true
Size=@Size(1920 1046)
ZoomLevel=1.3- If you customize tray icon or app icon, or app url, you will find them at
~/.config/whatsit/custom.ini. - If any of the keys are left empty, the app will use fallback values.
[Custom]
AppIcon=WhatsApp
TrayIcon=whatsit_mono
Url=- Now available from AUR -
whatsit-git. AUR Package. - Builds from latest commit from git on default branch (master).
yay -S whatsit-git- Linux
- Qt >= 6.2
- qt6-base
- qt6-webengine
- CMake
- C++17 compatible compiler
# git clone and cd first.
# Make sure you are in the repository root.
mkdir build
cd build
cmake ..
make -j$(nproc)
# Install the App.
sudo make install- Installing the release package on Arch Linux (available in releases):
sudo pacman -U <RELEASE_PACKAGE> - If you installed the package using pacman, remove with:
sudo pacman -R whatsit
- To build using the PKGBUILD file given below, download it, and run:
makepkg -si - This PKGBUILD builds from latest commit on github (on master branch).
# Created by devlinman
pkgname=whatsit
pkgver=
pkgrel=1
pkgdesc="whatsit"
arch=('x86_64')
license=('MIT')
depends=()
makedepends=('cmake' 'vulkan-headers')
source=("git+https://github.com/devlinman/whatsit")
sha256sums=(SKIP)
build() {
cmake -S "/media/DATA/SOFTWARE/Programming/Projects/whatsit" -B build -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr
cmake --build build
}
package() {
DESTDIR="$pkgdir" cmake --install build
}
- Some JavaScript is injected to make dark mode and notifications work.
- For
Prefer Dark Modetoggle to work, you need to enable dark theme in Whatsapp first.- Go to
Whatsapp Settings->Chats->Themeand chooseDark. - If enabling the menu option is still breaking the view of the webpage, restart the app completely.
- Go to
- Notifications will only show when the app is minimized, hidden, or out of view (in a different virtual desktop).
- If no Size parameter is set, the app defaults to
1200x800. - If
MaximizeByDefaultkey is set to ”true”, it overridesRememberPreviousWindowSizekey. - No support for multiple accounts/profiles.
- If you opt for
use Less Memory, the webpage is temporarily closed. but the app remains in tray. CPU consumption will increase each time the app is opened and the webpage is loaded. - When
Memory Kill Switchis activated and the threshold is chosen, the app checks for its own memory usage every30seconds.
- [ ] Delete debug file on app/profile change.
- [ ] Option to toggle injection of JavaScript.
- [ ] Icons for menu buttons and actions.
- [ ] Notifcations via freedesktop.
- [ ] Help, About sections.
- [ ] Command-line info -
version,help, etc.