TL;DR: Run it on Android x86 in VirtualBox with limited resources allocated to it, and hook that up with the web app or desktop client to have a desktop interface.
Whatsapp's official desktop client for Windows doesn't help us, even if we were to run it under Wine. That's because it works exacty like their web app. It needs constant connection to a smartphone client in order to work.
Therefore, the best way to do this is to somehow run the actual Android app on your desktop. It doesn't need the SIM card to be in the same device. You just register with an SMS once, and you are good.
The first way I thought of doing this was through Google Chrome, which can run many Android apps through some tweaks. Unfortunately, the result of that seems to be the opposite problem from the one you're having with Pidgin!
App can receive msgs, but not reply.
Therefore, the last resort I can think of is to install Android x86 or Remix OS in VirtualBox and install Whatsapp from an APK there. You'll be able to activate it through receiving an SMS to your cellphone.
It's also possible to do this through an emulator like Genymotion, but I think that's gonna emulate ARM architecture, so I'm pretty sure it will be much more resource hungry and/or slow compared to the x86 hypervisors.
I've heard that Whatsapp will require Google Play Services, but I think that's included in at least Android x86, and if not, it's pretty easy to install in both Android x86 and Remix OS.
Don't like the touch interface of the Android app? Well, since you now have a working Android client, you can now use Whatsapp Web or even the native Windows application through Wine. The tricky part is that in order to activate it, the Android x86/Remix OS hypervisor has to scan a QR code which will be displayed in your browser/Whatsapp desktop client. This can be done, though. There are many ways.
- If you have a USB or Bluetooth camera, you can try to activate it in VirtualBox as a webcam. You then simply scan the QR-code from Ubuntu.
- If you only have an internal Webcam in your computer, you have to print the QR code and scan it, or take a screenshot of it and display it on another screen, or have fun with two physical mirrors.
- It would also be possible to root your Android VM and just feed the QR-code image to a camera emulator, but I'm not exactly sure how to do that. I asked a question about it on Android SE.
- Or, if you have access to an Android device with a camera once, you can use Titanium Backup to transfer your Whatsapp sign-in to that Android device just for the sake of scanning the QR-code. (Make sure the "keep me signed in" box is ticked"). And make sure the original Whatsapp still works afterwards. Otherwise, use Titanium to transfer your sign-in back.
If you succeed in this, you can use Whatsapp Web in your browser on Ubuntu or the desktop app under Wine as long as the VM is running. One of the benefits of this is that you can severely limit the resources allocated to the VM. It's only gonna run one single, lightweight app, and you don't care if the Android GUI gets a bit sluggish. Of course, don't limit it so much that the app or VM crashes or starts processing content too slowly.
Off-topic comment: This approach should also work on Windows, OS X, Solaris, other Linuxes, etc. Basically any system that can run VirtualBox, something similar or any Android emulator.