Konversation 2.x in 2018: New user interface, Matrix support, mobile version
It's time to talk about exciting new things in store for the Konversation project!
Konversation is KDE's chat application for communities. No matter whether someone is a newcomer seeking community, a seasoned participant in one, or a community administrator: our mission is to bring groups of people together, allow them to delight in each other's company, and support their pursuit of shared interests and goals.
One of the communities we monitor for changes to your needs is our own: KDE. Few things make a Konversation hacker happier than journeying to an event like Akademy in Almería, Spain and seeing our app run on many screens all around.
The KDE community has recently made progress defining what it wants out of a chat solution in the near future. To us, those initial results align very strongly with Konversation's mission and display a lot of overlap with the things it does well. However, they also highlight trends where the current generation of Konversation falls short, e.g. support for persistence across network jumps, mobile device support and better media/file handling.
This evolution in KDE's needs matches what we're seeing in other communities we cater to. Recently we've started a new development effort to try and answer those needs.
Enter Konversation 2.x
Obligatory tantilizing sneak preview (click to enlarge)
Konversation 2.x will be deserving of the version bump, revamping the user interface and bringing the application to new platforms. Here's a rundown of our goals:
Let's briefly expand on a few of those:
KDE's Kirigami user interface technology helps developers make applications that run well on both desktop and mobile form factors. While still a young project, too, it's already being put to good use in projects such as Peruse, Calligra Gemini, Gwenview, and others. When we tried it out Kirigami quickly proved useful to us as well. We've been enjoying a great working relationship with the Kirigami team, with code flowing both ways. Check it out!
To craft the new user interface, we're collaborating with KDE's Visual Design Group. Within the KDE community, the VDG itself is a driver of new requirements for chat applications (as their collaboration workflows differ substantially from coding contributors). We've been combining our experience listening to many years of user feedback with their design chops, and this has lead to an array of design mockups we've been working from so far. This is just the beginning, with many, many details left to hammer out together - we're really grateful for the help! :)
Currently we're focused on bringing more of the new UI online, proving it on top of our robust IRC backend. However, Matrix support will come next. While we have no plans to drop support for IRC, we feel the Matrix protocol has emerged as a credible alternative that retains many of IRC's best qualities while better supporting modern needs (and bridging to IRC). We're excited about what it will let us do and want to become your Matrix client of choice next year!
Work done so far
The screenshot shown above is sort of a functional R&D mockup of where we're headed with the new interface. It runs, it chats - more on how to try it out in a moment - but it's quite incomplete, wonky, and in a state of flux. Here's a few more demonstrations and explorations of what it can do:
Responsive window layout: Front-and-center vs. small-and-in-a-corner (click for smoother HD/YouTube)
Friction-free switching to and from settings mode (click for smoother HD/YouTube
Overlay context sidebar: Tab settings and media gallery will go here (click to enlarge)
See a gallery with an additional screenshot of the settings mode.
Trying it out
The work is being carried out on the
Be sure to check out this wiki page with build and testing instructions. You'll learn how to retrieve either the sources or the Flatpak, as well as a number of command line arguments that are key when test-driving.
Sneak preview of great neat-ness: It's possible to toggle between the old and new Konversation UIs at any time using the F10 key. This makes dogfooding at this early stage much more palatable!
Joining the fun
We're just starting out to use this workboard on KDE's Phabricator instance to track and coordinate tasks. Subscribe and participate! Phabricator is also the platform of choice to submit code contributions.
As noted above, Konversation relies on Kirigami and the VDG. Both projects welcome new contributors. Helping them out helps Konversation!
To chat with us, you can stop by the #konversation and #kde-vdg channels on freenode (using IRC or the Matrix bridge). Hop on and introduce yourself!
Side note: The Kirigami team plans to show up in force at the KDE Randa meeting this fall to hack on things the Konversation team is very much interested in, including expanding support for keyboard navigation in Kirigami UI. Check out the Randa fundraising campaign which e.g. enables KDE to bring more devs along, it's really appreciated!
thank you a lot for the work on Konversation. The new GUI looks great. However, I am a bit concerned about the space utilization in the actual chat area. Will it be possible to have a condensed chat representation (like in Konversation 1.x, i.e., a one line per message representation)? I really like to have a good overview in the chats, especially since IRC chats tend to be crowded and old message may be soon moved out of the visible area with the fancy multi line representation (user + date above text) shown above.
Thus, it would be great to have an option for a more condensed / classical representation.
Text layout options
Yep, a compact/classic layout option will be available for sure.
That said - I want to suggest letting the new layout (which is likely to he tweaked further still) grow on you. In my own experience so far, the combination of grouping consecutive messages by the same author with less repeated information and hanging indent makes backlog much faster to skim, especially on channels that have bots talking. I understand the impulse to maximize vertical space use, but better visual organization of information can be a worthwhile trade-off. :)
Edit: Oh! Make sure you noticed the grouping - the nick isn't repeated for every message in there! :)
Great to hear that and "Ahh ... that's why there are times behind the messages as well :-P"
Awesome work. Looks impressively modern :-)
Network Jumps (Quassel?)
You mention persistence across network jumps (I assume that means disconnections from the network, e.g. when traveling by train) as something to improve, but then don't touch on it again. Is a konvi UI which can talk to a Quassel core something that could work? Or is Matrix then the place where you'd like persistence to happen?
It's something that "could work", but it's not very appealing for a number of reasons. The comm protocol between Quassel's server and client is proprietary and implementation-defined - it's been around for a number of years, but hasn't spread for that reason and hasn't moved the needle on revitalizing the IRC ecosystem as a whole.
The equivalent IRCv3 spec work (e.g. server-time, message batches and the history batch) are more relevant there but largely still pending server implementations - well, server-time is implemented in znc (which KDE runs an instance of) and we support it. Ideally we'd like network servers to implement that stuff directly (e.g. freenode), but it's more likely znc will. We'll expand our support for it as well.
Matrix, where persistence already works and which bridges to IRC quite well, is possibly more viable by sheer momentum. From our POV implementing support for Matrix or Quassel is similar work, but the former explicitly encourages implementation and offers a much bigger return for the investment.
Persistence is indeed pretty important, it is why I moved from Konversation to Quassel. I can't always be online and need to have the same logs on my desktop and laptop.... If Matrix or a similar tech could fulfill that need I'd be happy, too, of course. As long as it is easy to run/host, Quassel has been pretty neath in that regard.
In either case, thanks for the work, this looks very good!
Is there any news about QtWidgets-like style for QtQuick? I ask that because all these new projects (Koversations 2, Kube, Discover) are really exciting, but they all look very alien for the KDE desktop (IMHO). I use Konversations, and I really wish it evolves, but I'll miss its interface, unless the new interface can have a QtWidgets-like style.
We use Kirigami.Theme.* to get system colors, and UI elements such as buttons will be desktop-styled using the Qt Quick Controls 2 desktop theme that will ship with KDE Frameworks in the future (we'll depend on it and set it as default).
New app instead
I think a big change like this should be treated in a completely new app, like Koko does with Gwenview and Kube/KMail.
Well this is exciting.
Having a native Matrix client will be quite nice. I'll have to start building konvi from source again ;)