Giter Club home page Giter Club logo

whatsapp-for-linux's Introduction

WhatsApp for Linux

An unofficial WhatsApp desktop application for Linux.

Download on Flathub Get it from the Snap Store

Action Status Action Status Action Status Action Status POEditor

App Window

About

WhatsApp for Linux is an unofficial WhatsApp desktop application written in C++ with the help of gtkmm and WebKitGtk libraries. Check out wiki for further details.

Features

  • Features come with WhatsApp Web
    • WhatsApp specific keyboard shortcuts work with Alt key instead of Cmd
  • Zoom in/out
  • System tray icon
  • Notification sounds
  • Autostart with system
  • Fullscreen mode
  • Show/Hide headerbar by pressing Alt+H
  • Localization support in system language
  • Spell checking in system language. You need to install the corresponding dictionary to get this working i.e. hunspell-en_us package for US English
  • Open chat by phone number

Using WhatsApp for Linux

The application is available from a number of Linux distributions:

Packaging Status

Dependencies

  • cmake >= 3.12
  • intltool
  • gtkmm-3.0
  • webkit2gtk-4.1
  • ayatana-appindicator3-0.1
  • libcanberra
  • libhunspell (Optional for spell checking)

Build & Run

Development

# 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

# Optionally, to update the default translation file
make update-translation

# Run
./whatsapp-for-linux

Local installation

# Run inside the build directory once the application is built
# You'll probably need administrator privileges for this
make install

Uninstall

# Run inside the build directory if you want to uninstall all files
# install_manifest.txt file is created when you run make install
xargs rm < install_manifest.txt

Packaging

Debian

# Don't forget to update the version number (0) in debian/changelog before this
# Build the package.
dpkg-buildpackage -uc -us -ui

Snap

# Build the package. Pass --use-lxd option in a virtual environment
snapcraft

AppImage

# Make sure that the application is installed into the `<Project Root>/AppDir` directory
make install DESTDIR=../../AppDir

# Build the package
appimage-builder --skip-test --recipe ./appimage/AppImageBuilder.yml

Contributing

Please read contributing.

Code Contributors

Code Contributors

whatsapp-for-linux's People

Contributors

andrecasteliano avatar angrypenguinpl avatar bcbnz avatar bordam avatar bugurtit avatar eneshecan avatar filhocf avatar fvcr avatar glowingscrewdriver avatar haggen88 avatar iscle avatar juxuanu avatar kekepower avatar lgbaldoni avatar ludvigng avatar myyc avatar n1snt avatar norwayfun avatar ocpalo avatar olesyagerasimenko avatar pompilos avatar pythonplumber avatar rodrigost23 avatar solracws avatar vistaus avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

whatsapp-for-linux's Issues

Travis CI only runs cmake, doesn't build

Shouldnt

script:
  - cd build/debug
  - cmake -j2 -DCMAKE_BUILD_TYPE=Debug ../..
  - cd ../release
  - cmake -j2 -DCMAKE_BUILD_TYPE=Release ../..

include --build so Travis actually builds the project?

Integrate automatic deploying

  • A new release branch will be created
  • With every new commit, it'll build, create packages and upload them to the releases page
  • This could be done via a deploy github action
  • A later improvement could be integrating with snap store

cant copy/paste images on chat

hi! found another odd behaviour:
if i copy or take a screenshot to my clipboard and try to paste it into a chat, it wont let me, also the attach image button wont work (i guess these are related)

keep up the good work! i will report everything i find!

Dark mode support

This might be achieved via changing the body class name to web dark with run_javascript function of web view. However, it needs to be tested to make sure.

Would it be possible to add a short "how to use this on the desktop"?

Hey there,

My question is: could the main README be extended to a short "how to use this on the desktop"?

This may sound like a stupid question :) - however had, I have no smartphone/mobile, yet lots of
people nearby use whatsapp on their smartphone. So to me, it would really be useful to know how to use this, in order to then communicate with them if that is even possible (for example, right now I really don't know if it is possible or not; I read in the past that it is not possible so perhaps my knowledge is obsolete. Hope I could explain this strange issue request.)

Anyway please feel free to ignore this if it seems too much effort for too little gain. Thanks for reading!

Tray icon

Can you implement tray icon for this app. Excellent work!!!...

Make AUR package static

  • Since we want to keep the pkgname whatsapp-for-linux, it's better to serve it statically.
  • Currently, I don't know how to do that properly...

Crash on file download.

The app crashes with segmentation fault when trying to download a file. Either from personal chat or group chat.
I'm using Gnome 3.36.4 in ArchLinux_x86-64 with kernel 5.4.51-1-lts. The whatsapp-for-linux version is 1.0.7-1.

Any more logs that you need, just ask.

No Voice and Camera Capture

ive seen the notification on this issue the first time i run the app... i love it BTW.

Im using arch kde plasma
will this issue be fixed?
i could find this one, cant paste image, and it reports as macos
thanks!

Font size options

In an attempt to support accessibility, may we propose font size options. The feature would be to allow end-users to increase of decrease text size, without heavily disrupting the design.

Alternatively, the limitation of zooming in and out with Ctrl and + could be lifted instead. Acting like a normal web browser when you want to zoom in/out.

Can't play/download video files with snap

I tried opening some videos sent by a friend (mp4 format). By default, the app tries to play them, but it fails ("impossible to play the video", though I think I also got a message "file type not supported" at some point), and it doesn't give any download option.

Unfortunately I got this as the first impression when opening the app, but it does look great!

Title header, reload icon missing

The reload button in the header is missing the reload icon, and shortcuts in the right-hand side menu are not working.
header bug

Version info:
whatsapp-for-linux - 1.0.9
Ubuntu 16.04 Unity Desktop
Installed using snap

Thanks for the nice application :)

Create an AUR package

I found about this project on the AUR but it is out of date, It would be easier for the project owner to maintain the package up to date there.

Voice messages

It says that this browser doesn't support voice messages. Is it a bug?

error output at beginning

on Arch linux it is giving following error while starting , though application is working without problem.

following is the error output :

** (whatsapp-for-linux:63599): WARNING **: 15:25:49.272: Error loading plugin: /usr/lib/enchant-2/enchant_nuspell.so: undefined symbol: _ZN7nuspell2v36Finder25search_all_dirs_for_dictsEv

Settings: Key file does not have key “allow_permissions” in group “Network”

title bar behavior to alt+tab

I'm not sure whether this is intended but whenever I alt+tab the title bar would hide/show. it throw me off because at times the title bar would be there, then when I alt+tab again it would gone. I see in #52 this feature is intended to hide/show title bar but not sure if it's intended to hide/show it when alt+tabbing.

Option to use native window frame

I prefer my windows to have no title bar, and the default GTK one doesn't match the rest of my windows. If possible, I'd like a setting to toggle the window decorations to the desktop default. For accessing the options, perhaps pressing alt would work?

Hide menubar

I find it kind of annoying after a wile, could you implement an option to hide it under the view menu???

Keyboard shortcut to navigate around faster.

Your version of Whatsapp is just awesome. It would be nice if you could add a keyboard shortcut which would open a menu which will help you to search through all the chats available. Yeah I know that there is a search option available but a keyboard shortcut to open that would be nice so that I don't have to use my mouse to click on the search bar.

I would like something like what discord has. Where you press Ctrl + K (or even Ctrl + F) and the menu opens, then you just type the name and then press enter to open the chat. This would make the it more keyboard-centric and hence more faster to use.

Snapcraft doesn't work

  • Running the application after building with snapcraft gives a Gtk::BuilderError with the latest version (1.0.10).
  • Might be related to gtk version in ubuntu 18. We can try core20 when the gnome-extension is ready. But for now, this needs a solution.

Reports itself as MacOS to Whatsapp

Once I logged into the client, Whatsapp on my phone notified me that I logged in through MacOS. But I am on Ubuntu 20.04. Is this a known issue, or related to something else that user can fix themselves?

Embed UI files or have configurable path for them

Most if not all distributions will require the UI files to be in /usr/share/whatsapp-for-linux/ui or similar, not in /usr/bin. To support this there should be some way of specifying this path at compile time.

Alternatively, look at embedding the UI files as resources in the executable itself. This will be more convenient for distribution but requires a recompile when the UI files change. https://developer.gnome.org/gtk3/stable/ch01s04.html has some examples of how to compile them, https://stackoverflow.com/questions/60517842/generate-then-use-source-file-using-cmake-in-clion has an example of a CMake command for compiling the resources.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.