Skip to content
Enes Hecan edited this page Nov 3, 2022 · 27 revisions

Welcome to the WhatsApp for Linux wiki!

WhatsApp for Linux is an unofficial WhatsApp desktop application written in C++ with the help of gtkmm and WebKitGtk libraries. It has the abilities that WhatsApp Web client can do except for audio and image capture, and some regular desktop application features such as system tray icon.

Summary

Configuration

Default config file can be located at $HOME/.config/whatsapp-for-linux/settings.conf. It is used to remember application preferences and advised not to modify manually unless you are certain. A key is not saved into the file unless you explicitly change it via the app and a default value in code is used for it instead.

Here are the available options in the configuration file:

[web]
allow-permissions=true
hw-accel=1
 
[general]
close-to-tray=false
start-in-tray=false
start-minimized=false
header-bar=true
zoom-level=1

FAQ

Why does the linked device show up as Safari (Mac OS) on my phone?

Because WebKit is developed by Apple and it's used as a backend for Safari. We are yet unable to trick WhatsApp server by setting a different user agent.

Why does the application fails to start by giving some unsupported locale error?

This is most probably due to a configuration error on your system which can be resolved by regenerating your locales. See the related issue.

Why does the tray icon not show up or just show three dots?

There are some inconsistencies across DEs about this since it is a pretty old standard and the communities are trying to get rid of it slowly. See the related issue.

Why does the application freeze, stutter, or not respond?

This is probably an upstream issue on WebKit or WhatsApp web since the latter doesn't support the former very well. We are not planning to switch to a different web engine anytime soon. It's advised to set the Hardware Acceleration policy to Never if you experience those issues. See the related issue.

Contributing

We are really happy you're reading this, because we need volunteers to help this project.

Code

You can contribute by opening issues, and resolving any issue, especially good first issues, improving documentation, adding translations in your language etc.

Translations

Help us translate the project into your language.

Adding your translation

  • Add <langcode> to po/LINGUAS.
  • Copy po/whatsapp-for-linux.pot file to po/<langcode>.po and modify the related fields.
  • Add related translations to resource/desktop/com.github.eneshecan.WhatsAppForLinux.desktop.in file as well.

Updating your translation

Whenever the default translation file (whatsapp-for-linux.pot) is updated, run the following in po directory and translate newly added msgids.

intltool-update --dist --gettext-package=whatsapp-for-linux --output-file=<langcode>.po <langcode>

Testing your translation

Install the application to copy translation files into system folders and run;

LANG=<langcode.encoding> ./whatsapp-for-linux

If your system language is set to the desired one, you don't need to set the environment variable.

Submitting changes

Please send a GitHub Pull Request to WhatsApp for Linux with a clear list of what you've done. Read more about Pull Requests.

Donations

Donations are accepted through opencollective, github sponsors, ko_fi and paypal. Money collected via Open Collective is distributed to code contributors.

Clone this wiki locally