dino
dino copied to clipboard
Mobile UI
Now that the Librem 5 got funded (https://puri.sm/shop/librem-5/), there might be a demand in the near future for a xmpp client that works on a small screen.
Not only Librem 5. There are people using Gajim on PocketCHIP (https://getchip.com/pages/pocketchip) with 480x272 pixels and the Pyra (https://pyra-handheld.com/) will also be ready soon™. There is a lot of demand for "small screen".
Messages app for Gnome has some great mockups for messaging application on phones. See here: https://gitlab.gnome.org/Community/Design/app-mockups/blob/master/messages/messages.png
In order to implement a responsive UI, Dino would just have to use appropriate widgets from the libhandy library: https://source.puri.sm/Librem5/libhandy
There are test image for the Librem 5 available: https://developer.puri.sm/Librem5/Development_Environment/Boards/qemu.html
So one could try to get things running already ;) First test made dino start but I couldn't even start one chat. Don't know what exactly happened as the whole VM became unresponsive.
Running is not an issue. The UI is ;)

Yes... And I don't understand why Purism insisted to develop their own XMPP client... It will takes months or maybe years to implement all the features. Dino is now in a pretty good working state, I think.
I would love to see a mobile Dino version for the PinePhone, which is now shipping and slowly creates a real demand for a good XMPP client on Linux phones. ;)
I started initial work on using libhandy in Dino for a better mobile UI. Feel free to try it out from the feature/handy branch.
For anyone interested, the main window has been made adaptive, and here's a recording of the app being resized and used at mobile size.
Thanks a lot for tackling that issue, it's going to be a bliss on mobile!
Any ETA of this on master? Looks awesome!
I am now using dino as my main IM client on pinephone (under sxmo / postmarketOS). It works pretty great as-is, though it has a papercut that I cannot close a conversation without trying to very quickly tap to make the hidden "X" show up, then tap again to close. Would be nice if the "X" just always showed.
Related to running on mobile, idle CPU usage seems high. Idle GPU for Gajim on my pinephone is close to 0, but for dino is always at least 2%, often as much as 5 or 7%. This obviously doesn't help the already bad battery situation for my poor device...
For what it's worth, libhandy 0.90.0 has just been released with stable API :)
...and now there's libhandy 1.0 as well
Some juicy screenshots from the branch feature/handy:
Thanks everyone involved for the good work!
This branch does work well on the Librem 5 QEMU, but there seems to be a race at a very specific window width, that makes it not very usable on desktop. See https://github.com/dino/dino/issues/731#issuecomment-621127548.
Hello, I rebased the handy branch and ported to handy 1.0. https://github.com/mimi89999/dino/tree/handy @mar-v-in You can pull changes to your branch and even squash out my commit.
Related to this topic, there is a project from Purism in which you can vote to support Dino: https://puri.sm/fund-your-app/
@esu23 FYI, Purism's "Fund Your App" campaign is a fundraiser for Purism. If you donate and vote for Dino there, I wouldn't expect any of the donation to be actually used directly for Dino. However, Purism is contributing to GTK, libhandy and other libraries and such contributions may become beneficial to Dino. No Purism representative contacted us prior to including the Dino logo on that page.
@mar-v-in I have been testing @mimi89999's branch on my pinephone (running postmarketOS), and it's quite functional. There are only a couple of windows I've found that don't fit: the initial window that comes up to log in, and the settings window
It's really nice having OMEMO and working file transfer, and see value in merging their changes (or something close to it) soon so that this app is somewhat usable on smaller displays. I'd be more than happy to test anything else and/or include screenshots, etc. Let me know if I can help.
Screenshot:

@mimi89999 I merged your commit into the feature/handy branch and updated the branch to the current master.
If someone has additions for the feature/handy branch in the future: It is possible to open PRs for branches other than the master. In github's "Open a Pull Request" dialog, just set the "base" to feature/handy.
@fiaxh thanks! Is there a list of what's left TODO with that branch before it is ready to merge into master (beyond the two things I found in my testing, mentioned above)? Some folks (myself included) might want to help out, and having such a list would be useful.
@craftyguy Could you please show screenshots of the windows that don't fit? For the settings window, I guess that it depends on line length of the translations. Do the account setting window and group chat details window fit?
For the settings window, I propose to use such an UI. The entire row/cell is clickable and toggles the checkbox:

@mimi89999
Settings window:

And account details window:

@craftyguy The first screenshot is not the settings window, but the contact details window. Anyway, it should be fixed in https://github.com/dino/dino/pull/948. Please test.
Thanks @mimi89999 for your work! #948 and #949 look great! Now the screen fits perfect.
I attach some screenshots:
Contact details

Select contact dialog

They also look good to me in landscape mode.
@mimi89999 I can also confirm that #948 looks good, thanks!
I found a couple more windows that don't fit:
join channel

start conversation

@craftyguy Those are already fixed in #949.
With those two PRs of @mimi89999 I'd say Dino is pretty usable in Phosh.
Nevertheless, I have made a list of some dialogs that still have some minor issues:
- Account chooser.
- Results in search mode (both 1vs1 and group chats) are a bit shifted to the left.
- My omemo fingerprints dialog? I cannot test because the account chooser size.
- ~~Contact's omemo fingerprints dialog.~~ Fixed in https://github.com/dino/dino/pull/985
- Emoji chooser (The first column of emojis is not visible).
- Group details dialog. Can this maybe be fixed similar to https://github.com/dino/dino/pull/948?
- Keyboard shortcuts.
The workaround for all of them is changing into landscape mode.
I am editing the comment to keep track of the latest state.
Hello, The PRs fixing join channel, start conversation and contact details were merged. The updated is now available in PostmarketOS. For users on other distributions, please check if they are using Librem's fork of GTK. It's needed for better user experience. Please test the changes and report any issues with them and tag me.