[Alpha] Greenline - A qml Whatsapp client for Ubuntu Touch
-
There's a new release for this app. I recommend disconnecting an connecting Whatsapp after installing this update using the settings since there was some rework on how messages are represented, which can lead to old glitched messages. Since its an alpha, I'm not guaranteeing consistency on each update:
https://github.com/brennoflavio/greenline/releases
- Better offline mode: now if the app has no connection, messages are queued to be sent once connection is back
- Optimizations for rooms that had a lot of replied messages, should load faster now
- Now the pending / sent / delivered / read icons matches closely with whatsapp
- Better handling when whatsapp servers are unavailable, avoiding app crashes
- Better media previews: now you can zoom in / out images, its easier to pause / reproduce videos, and better look and feel
- Fixed a bug where if the person used whatsapp on two devices (like web and app), its chat appeared duplicated and in groups the profile picture did not appear when the message was sent from the second device
- Prevent app crash when trying to download media while offline
-
@brenno.almeida
The installation went smoothly and without any issues.One thing that would be really useful:
When there are lots of new messages for a contact or in a group, I can see the correct number (e.g. 20). Perfect!
When I go into the chat and want to read the messages, I can’t tell which 20 are the new ones.
When the contact or group chat is opened, you should be able to see which messages haven’t been read yet.
When you leave the chat, all messages should be marked as read.
Now I have to spend time reading the messages to figure out if I’ve already read them.Many thanks for your work on this exciting implementation of a third-party WhatsApp solution in QML for Ubuntu Touch!
-
@brenno.almeida great work!only use your app now since it is fast smooth and reliable.
only hickup, anyone else keeps missclicking the send button? its really hard to press for some reason (xiaomi redmi note 9 pro)
-
-
@brenno.almeida great work!only use your app now since it is fast smooth and reliable.
only hickup, anyone else keeps missclicking the send button? its really hard to press for some reason (xiaomi redmi note 9 pro)
I have this issue on the Quintus. Maybe the mouse area is too small?
-
Thank you again for this app!
If I can draw attention to one detail (I don't want you to be overwhelmed with requests):
-
The app somehow refreshes itself at a few seconds interval.
-
That makes that, while I scroll down the list of messages in order to look for an older conversation, suddenly the app takes me back to the top.
-
I think the same thing happens inside a conversation when there is a long message and I click on "read more" - after a few seconds the message collapses again.
I opened an issue for it: https://github.com/brennoflavio/greenline/issues/4
Again, a big thank you!
-
-
@brenno.almeida the version after fixes the counter that kept growing till reboot. amazing


-
Thanks you all, keep feedback coming, it helps a lot. No problem to report usability / polish issues aswell.
@nbdynl yeah broke that a while ago, still not 100% correct as muted chats still counts but at least consistent now.
-
@brenno.almeida
Thanks a lot for this great app!
I get the impression—purely subjective, mind you—that the app uses quite a bit of power.
Do you think it would be possible to add an option in the settings to set the refresh rate for new messages (or even to stop it unless I check manually)?
Or am I mistaken?
What do you think? -
@Vlad-Nirky I use the latest version from yesterday and test it over last night.
I haven't noticed any increased battery drain. The Pixel 3a switches to deep sleep mode without any issues. < 2% battery drain per hour. Tested last night with notifications enabled. -
@Vlad-Nirky Its not an impression, the app is inefficient in its current state, optimizations are needed. The perception will vary depending on the amount of whatsapp data you receive. Its a combination of having the backend written in python (which means that on receiving new events, a python process is created to process it on the fly) and the qml frontend re-rendering on each event that emits a qml update. So for example receiving a new chat means re-rendering the whole chat list.
Not too worried about it yet, but something for me to look in the future. I'm not 100% decided on how this app will manage its data so not gonna waste time optimizing something that might change. Probably will get back to this once the app support all possible Whatsapp events / message types, which will give clarity on how to model everything.
-
@brenno.almeida so a premenantly temporary solution.
yeah just make sure to refactor at some point. great client as is but i recommend you structure the client around the data not the other way, that way lies pain suffering and keyboard bashing. -
@ChromiumOS-Guy please keep the discussion on feedback and suggestions, avoiding giving orders or similar statements.
The way you put it is a bit rude for my taste. It does not sound intentional, but with a bit of out of context to me. Its not that the app is being developed without a data model in mind, more like new requirements (replies, edits, new message types, etc.) requires rethink on how things are done, which is pretty common on any medium o higher complexity project.
-
@brenno.almeida i am sorry i did not mean to hurt you or be rude. as for permanently temporary solutions again my advice is to avoid this or refactor after the fact.
high complexity means compromises what im advising here is that for what your describing i don't think you should compromise right now because you won't be able to back out without a lot of effort. -
I wouldn't use a META product if there were alternatives. But there are a lot of people who are very resistant to change. There are groups for their kids' school activities: soccer, tennis, music, and so on.
If you use Ubuntu Touch every day, a lightweight QML app like Greenline is perfect. You can check WhatsApp messages when needed. In an emergency, you can send a message like, “I'll be 10 minutes late.”
Personally, I prefer a WhatsApp alternative that is fast and stable, uses few resources, and adapts well to changes in WhatsApp’s data structure—such as the Go library, whatsmeow, protobuf structures, and WebSocket conditions on the servers.
I don’t need features like video or forms.
If someone wants all of WhatsApp’s features (including META AI) on Ubuntu Touch, then they have the wrong device.Keep Greenline lean, efficient, and adaptable to changes at Meta for a long life on Ubuntu Touch. Many people and groups still need some time before they’re ready to switch to alternatives.
-
There's a new release for this app. This release contains a big standardization / internal refactor. I highly recommend that you:
- Logout from the app in your main Whatsapp device
- In Greenline settings, reset the app
- Install the update
- Then login again
If you don't disconnect, there's a high chance that the app will crash in some places. As we approach to a beta release, I added more safeguards to catch bugs and make the app more robust, fixing some bugs on the way. Hopefully this will be the last time this will be needed, as from now on I'll adopt a data migration system for changes.
https://github.com/brennoflavio/greenline/releases
Changes:
- Allow sending documents
- Add option to catch and report crashes
- Add option to pause daemon when closing the app
- Render Whatsapp text messages with buttons
- Fix images rotating in chat page
- Restore old behavior for unread count bubble in app drawer
- Handle Group Information and other whatsmeow events
- Remove daemon configuration database, centralize all configuration in python
- Harden media download, prevent crashes when downloading unavailable media
- Reorganize code into modules, better separation of concerns
- Add tests for daemon <> python communication and python <> qml communication
- Document and test all python interfaces, with real, sanitized Whatsmeow data
- App now validates at build and at runtime all data structures, logs errors, and ensures consistency between app parts
-
@brenno.almeida Amazing work, thank you so much!
One thing I noticed - and I don't think it has only started in this latest version - is that if I open a conversation from the app and not from the notification then the notification doesn't dissapear - I think I remember it used to.
-
@mihael noted!
Btw there's a new release: https://github.com/brennoflavio/greenline/releases
If you didn't disconnected your Whatsapp account in the last update, please take time to do it. Takes a few minutes and will improve your experience with the app.
Changes:
- Now links inside text are clickable and will open the browser
- Mentions are also treated as links, clicking on them open the messages
- Text between stars are rendered as bold message, like in Whatsapp
- Now sending a message while offline does not crash the app anymore
- Daemon should be way faster to reconnect when going back from offline to online or switching networks
- Fix bug when clearing data app not deleting all files
-
noticed something, there is no date to the messages.
my only note is that you probably want to either have an option in the settings or decide based on account region if to use dd/mm/yyyy scheme or US mm/dd/yyyy scheme. -
Hello Brenno,
Could you explain where the deamon is installed? Becaused I notice that when I disable the account inside the app and then uninstall the app, I still have some greenline deamon running, and creating some logs:
Jun 07 10:06:30 ubuntu-phablet systemd[2675]: greenline.service: Failed with result 'exit-code'. Jun 07 10:06:30 ubuntu-phablet systemd[2675]: greenline.service: Main process exited, code=exited, status=203/EXEC Jun 07 10:06:30 ubuntu-phablet systemd[2675]: Started greenline.service - Greenline Sync Service. Jun 07 10:06:30 ubuntu-phablet systemd[2675]: greenline.service: Scheduled restart job, restart counter is at 5123. Jun 07 10:06:20 ubuntu-phablet systemd[2675]: greenline.service: Failed with result 'exit-code'. Jun 07 10:06:20 ubuntu-phablet systemd[2675]: greenline.service: Main process exited, code=exited, status=203/EXEC Jun 07 10:06:20 ubuntu-phablet systemd[2675]: Started greenline.service - Greenline Sync Service. Jun 07 10:06:20 ubuntu-phablet systemd[2675]: greenline.service: Scheduled restart job, restart counter is at 5122. Jun 07 10:06:10 ubuntu-phablet systemd[2675]: greenline.service: Failed with result 'exit-code'. Jun 07 10:06:10 ubuntu-phablet systemd[2675]: greenline.service: Main process exited, code=exited, status=203/EXEC Jun 07 10:06:10 ubuntu-phablet systemd[2675]: Started greenline.service - Greenline Sync Service. Jun 07 10:06:10 ubuntu-phablet systemd[2675]: greenline.service: Sch eduled restart job, restart counter is at 5121. Jun 07 10:05:59 ubuntu-phablet systemd[2675]: greenline.service: Failed with result 'exit-code'. Jun 07 10:05:59 ubuntu-phablet systemd[2675]: greenline.service: Main process exited, code=exited, status=203/EXEC Jun 07 10:05:59 ubuntu-phablet systemd[2675]: Started greenline.service - Greenline Sync Service.Thank you very much!

Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login