Konheko

Rating: 
5
Your rating: None Average: 5 (7 votes)

About

This is a small matrix client for SailfishOS using the same library as the Nheko desktop client.

It is intended to replace my use of Riot via the Android Emulation on my phone. Currently it is still very much WIP and you probably shouldn't use it yet.

Missing features and known major issues

  • No persistence of the message cache -> It uses a lot of RAM and the initial opening needs to do a full sync -> slow.
  • No E2EE support
  • No lazy loading of members
  • No settings at all
  • Invites look like rooms and can't be accepted
  • No way to create rooms
  • No markdown/html message support
  • No stability testing yet. There are a few known causes of crashes still.
  • And a lot more

Basically it currently only allows very limited viewing of (unencrypted) messages and basic plain text messaging.

Matrix room for discussions: https://matrix.to/#/#konheko:neko.dev

Screenshots: 
Application versions: 
AttachmentSizeDate
File harbour-konheko-0.0.1-1.armv7hl.rpm818.51 KB16/10/2020 - 15:22
File harbour-konheko-0.0.2-1.armv7hl.rpm819.11 KB19/10/2020 - 15:38
File harbour-konheko-0.0.3-1.armv7hl.rpm829.02 KB19/11/2020 - 04:51
File harbour-konheko-0.0.4-1.armv7hl.rpm827.03 KB05/02/2021 - 21:11
File harbour-konheko-0.0.5-0.armv7hl.rpm834.07 KB19/04/2021 - 22:40
File harbour-konheko-0.0.6-0.armv7hl.rpm1012.43 KB23/05/2021 - 19:31
File harbour-konheko-0.0.6-0.aarch64.rpm1.03 MB23/05/2021 - 19:31
Changelog: 

* Sun May 23 2021 Nicolas Werner <nicolas.werner@hotmail.de> - 0.0.6
- [konheko] Build for armv7hl and aarch64
- [konheko] Workaround for crashes on login on aarch64
- [konheko] Fix compilation for aarch64
- [konheko] Fix media menu making scrolling weird in rooms without send permissions
- [konheko] Adjustment the icons for a better look on the Roomsview

* Mon Apr 19 2021 Nicolas Werner <nicolas.werner@hotmail.de> - 0.0.5
- [konheko] Fix application launch via desktop file when already running in background
- [konheko] Show current version in about page

* Thu Feb 04 2021 Nicolas Werner <nicolas.werner@hotmail.de> - 0.0.4
- [konheko] Show room avatar in notifications
- [konheko] Fix compatibility with 4.0.1

* Wed Nov 18 2020 Nicolas Werner <nicolas.werner@hotmail.de> - 0.0.3
- [konheko] Implement redactions
- [konheko] Hide message area, if powerlevel is not enough
- [konheko] Allow copying text messages and similar bodies
- [konheko] Add scheme to links, if it is missing
- [konheko] urlify plain text links
- [konheko] Use Label everywhere

* Mon Oct 19 2020 Nicolas Werner <nicolas.werner@hotmail.de> - 0.0.2
- [konheko] Send read receipt more easily
- [konheko] Fix some login page flow issues

* Fri Oct 16 2020 Nicolas Werner <nicolas.werner@hotmail.de> - 0.0.1
- [konheko] Show file messages and allow some basic downloads
- [konheko] Open room, when clicking notification
- [konheko] Add basic audio player and improve video player
- [konheko] Add sending files, video and audio
- [konheko] Align send button with bottom and fix events without username
- [konheko] Reverse timeline internally to make messages stick to the bottom properly
- [konheko] fix compatibility with new sdk and clean up validator issues

Comments

usernamenotavailable's picture

Notification plays even inside the chat room

dfstorm's picture

You and I have about the same rooms interest (chat list screenshot) ;) thanks for this app :)

joonapetrell's picture

Does not start after 3.4.0 due to statefs deprecation, getting following error on launch:

Jan 13 22:15:40 Xperia10 lipstick[9275]: Failed to invoke: Booster: Loading invoked application failed: 'libcontextkit-statefs-qt5.so: cannot open shared object file: No such file or directory'

deepbluev7's picture

Oh, sorry, did not see that. For me launching still worked. Anyway, I fixed that now in any case for 4.0.1.

delocoyo's picture

Hello. How is it going the developing of this app? Thanks for it

deepbluev7's picture

Well, I didn't have as much time, as I would have liked this month, so I've been mostly working on nheko, university and my job, but I do intend to fix some issues and implement some missing stuff after new year.

kaulian's picture

Main view size is ok and is same as system

main view

conversation view

It s the conversation view that is too big

deepbluev7's picture

So text messages for example are too big? I'll see if I can revive my J1 and investigate that at some point.

Edit: I just pushed a build that should unify the font size everywhere. If you want, you can try it out by downloading the build here: https://nheko.im/nheko-reborn/konheko/-/commit/eaf5f702a921ea86aee0893db...

If you do, please report back. I'm not sure yet, if I like the sizes the Theme guide recommends and if I should choose ExtraSmall for the text instead of Small in the conversation view, since Small is pretty big...

kaulian's picture

Thanks for this client =)
A mature matrix client really missing

A little bug :
Chat font size seems dont respect the phone global size..

In my jolla1 the font is very huge

deepbluev7's picture

Do you mean everywhere or just in specific locations?I'm pretty sure I use the Theme size everywhere, but probably I'm just doing it wrong...

naytsyrhc's picture

Great to see another aproach for a native matrix client. You know about bluepill and determinant? Maybe the efforts can be combined/merged?

deepbluev7's picture

I only knew about bluepill and when I started working on this, it seemed like development stopped on it. While it seems like they picked up development again, I don't want to use python for a matrix client, since it makes optimizations hard and some APIs are only available from C++ at the moment (like the Secrets API or the background process API, if you don't want to implement your logic in Qml).

I haven't looked at determinant in depth yet, but from what I remember, that used a custom version of the Quaternion lib ported to the Qt version available in Sailfish. This client is built on the mtxclient lib, which has a very different approach to dealing with the matrix API. Since I'm also a developer for Nheko, which also uses mtxclient, I'm more familiar with it and I prefer the way mtxclient does things. I also started working on this before Determinant was a thing, I just never had the time to publish it.

I do agree that the duplicated work is kind of a waste, but on the other hand I started this project to solve my own needs and it should at least benefit from me also working on Nheko. If I start contributing to a different client, I would lose that benefit. If I figure out, that I can't spend as much time on this, as I would like, I'll probably drop it and contribute to a different client instead, but currently I do have hope, that that won't be the case. I need a client, that does encryption and can send media, and currently no Sailfish client does that yet, but this one does at least send media and I have a plan on how to do encryption already (although I need to fix some cross-signing bits in Nheko still).

I did ponder a while about this question though, but in the end I just chose to go with the current duplication of clients, because I prefer spending time coding instead of thinking about such things... Sorry ._.

naytsyrhc's picture

Thx for clarification. Does make perfectly sense to me. Great work by the way.

sashikknox's picture

Cool, lets try it ) thx to developer )
but, cant connect

deepbluev7's picture

Did you enter your full matrix id? Does it give you a specific error message?

sashikknox's picture

Yes, i did
No error messages, just nothing happens, it show next page, in next page only BusyIndicator show...
Update: oh, it shiw really small red label (hard to read :-) ) "ssl3 ext invalid servernane"
But i use my id from matrix.org
@my_id:matrix.org

sigurg's picture

I cannot login either. I used my full matrix ID, but on login all I get is the busy indicator and the server log does not show any requests.

When I swipe back there is a tiny red message on top of the login page "ssl3 ext invalid servername".

Note that my server of course does not support the broken SSL3 protocol, only TLS 1.2 & 1.3. Also the hostname does match the SSL certitificates "common name" and is contained in the list of alternate names.

I hope that helps to track the issue & thank you in advance :)

deepbluev7's picture

How many rooms are you joined to? This client does not do lazy loading of room members yet, so login can take quite a while. The ssl error is irrelevant, that's just from the library and never used. How long did you wait for the spinner to go away? My rather large account takes 5 minutes to log in (I plan to improve that in the future, but I want to get a storage backend done first). (Also the slowness is sadly server side, and only lazy loading room members can fix that...)

sigurg's picture

I'm pretty sure, that waiting longer for the spinner to finish won't help, because as mentioned previously, there is no activity from your client in the server logs (neither webserver requests nor anything in matrix-synapse's log).

If the client would be actually busy syncing, I would expect some log messages on the server side.

To me that looks like the TLS handshake failed...

deepbluev7's picture

What TLS versions does your server allow (or what server are you using)? Can you run konheko from the commandline and share the logs (redact anything that looks sensitive, which should only be the servername and maybe mxid)?

sigurg's picture

Here's the log: https://pastebin.com/EvVWgwFJ

Webserver is apache (2.4.38), matrix server is synapse (1.20.1), all requests are reverse-proxied by apache through standard HTTPS port 443.

TLS 1.2 & 1.3 are enabled in apache config, here are all relevant settings from apache config: https://pastebin.com/ndazuYwd

deepbluev7's picture

I uploaded a new build, that should log a bit more, if you want to try it. It also fixes the spinner spinning infinitely, if login actually fails. (If it failed too fast, the animation prevented the page from transitioning back)

sigurg's picture

Whatever you changed seems to have fixed my issue, login & sync works fine now: https://pastebin.com/spaYn0Qr (pastebins smart filter is not very smart apparently :D)

Thanks :)

Oh, and @user:example.com is indeed a placeholder, not my actual matrix ID, sorry I should have made that clear... Same goes for the paste above, btw ;)

deepbluev7's picture

Awesome! I didn't really change anything functional, I think. I just made the button sequence on the login screen clearer. Thanks for helping me out! :3

deepbluev7's picture

It does actually fail the login, but it seems like I did not add proper logging to be able to debug this. I'll upload a new build, that logs something useful in the next few days... :D

Also, just to make sure, you did replace your username with @user:example.com in the log files and it did not just try to log you in with that username?