Happy new year! To get a good start in this new new year, I’m happy to announce that Tokodon 23.01.0 is out! This is a new major release for Tokodon and while it’s been only 2 weeks since the last major release, this release is packed with new features and improvements.
Tokodon is a Mastodon/Pleroma/Nextcloud Social client built with Kirigami that I started back in spring 2021. Tokodon has a great integration with KDE Plasma and Plasma Mobile, but it also work on other desktop environments and even Windows and macOS.
You can download Tokodon 23.01.0 from Flathub and from the F-Droid using the KDE repo. Currently we don’t offer binaries for Windows and macOS but if you want to help with that, please get in touch. build
New timeline design
The first thing you will notice, when trying out this new version, is the new layout of the timelines.
I updated it to follow more closely the design of Mastodon web-UI and I also spent some time adjusting the spacing and typographie to be more consistent.
It is now possible to search for posts, accounts and tags directly from within Tokodon.
Tokodon now handles hashtags better. Previously, when clicking on a hashtag, Tokodon would redirect you to the website where you could see the posts that included the selected hashtag. Now you don’t need to leave Tokodon anymore, and the posts are displayed inside the app like any other timeline.
Tokodon now includes a basic conversation view. This shows the list of your last direct conversations. This makes it possible to see your conversation in a much nicer way than with the latest mentions view.
I plan to improve this feature further in the future, as I will be adding support for conversation markers and maybe offer a real chat-like view for conversations (which I will shamelessly steal from NeoChat).
It’s now possible to view and interact with polls. This supports both multiple choice and single choice polls, but creating new polls is still not possible.
I also added an account editor. The merge request was actually 10 months old and I started it during a stream at the last FOSDEM. As you might imagine, it was not that fun to rebase. But it is finally possible to edit your account metadata and preferences directly from Tokodon.
I also submitted a pull request in Mastodon itself to expose more settings in the API.
Real-Time Timeline Update
Tokodon was already handling some real-time events coming from the server, but until now this only included notifications. Now Tokodon will also handle new incoming messages and add them to the timeline. It will also delete messages as soon as the server asks for them to be deleted.
Aside from the many new features, there was several large re-factorings of the code base to cleanup some code that younger-me wrote. The C++ code base now has a coverage of 35%, and I am pretty happy with this increase from 12% of the previous release.
Coming next, I want to focus more on the post editor. The back-end also needs to be cleaned up and several important features are still missing (choosing the language, posting polls and adding alternative textual descriptions to images). I already created a branch for that and you can follow the work on this merge request.
And for those who prefer a full changelog, here it is:
- Update year
- Update to 23.01
- Cleanup notification model
- Cleanup loading handling
- Fix timezone handling
- Remove dead code
- Remove refreshing button now that refreshing happens automatically
- implemented update notifications
- Tweak appstream summary
- timelinemodel fix crash if json array is empty
- Fix unit tests
- Fix loading timelines
- Correctly handle streaming event about new and deleted posts
- Remove debug output
- Release new version 22.12.0
- Cleanup and fix account model
- Fix search on mobile
- Reduce number of warning in logs
- TootComposer.qml fix qmlscene issue "missing ":""
- Run clang format
- Fix rendering of poll when no vote has been submitted
- Handle pressing back button with image preview open
- Remove dead code
- AuthorizationPage.qml authorize token URL should wrap
- Add more tests
- Cleanup backend code for profile edition
- Port to mobileform
- Account editor (second try)
- fix: No Preview for Hashtag links
- Dont't show account switcher when no account is loaded
- Fix clazy issues
- Fix some compile warning
- More testing
- Add tests for threading
- Improve thread UI
- Fix opening thread
- Clang format
- Add more tests and fix canFetchMore behavior
- Fix marking post as pinned
- More refactoring
- Remove fetching and fully replace by loading
- Tag handling
- Ship our own icon
- Update icon name
- Fix checkable state
- Add unit test
- Use breeze icons
- Add conversation view
- Remove dead code
- Handle case where no spelled is installed
- Fix crash in notification view when interacting with post
- Propagate visibility in replies
- Don't reset timeline when switching account
- Fix accountModel returned by follow activity
- Display blurhash when loading image
- Don't show link preview on mobile
- Fix replies count
- Improve default debug output
- Optimize tooltip in PostDelegate
- Fix fetching the global timeline
- Fix replying to someone add yourself as mention
- Improve spacing of text field
- Improve overall spacing
- Add more unit tests
- Implement searching for accounts and posts
- Add a NetworkProxy page to settings
- Port AuthorizationPage to MobileForm
- Improve layout of already voted polls
- Add more tests
- Implement polls in the frontend
- Add poll implementation in backend
- Fix test
- Reduce spacing between action and author
- Update post layout
- Remove duplicate headers between cpp/h files
- Workaround kirigami regression
- Don't show drawer handle when showing full screen image
- Fix crash when loading own account
- Fix appdata version
If you are interested in helping, don’t hesitate to reach out in the Tokodon matrix channel (#tokodon:kde.org) and I would be happy to guide you.
I’m also regularly posting about my progress on Tokodon (and other KDE apps) on my Mastodon account, so don’t hesitate to follow me ;)
And in case, you missed it, as a member of the fundraising working group, I need to remind you that KDE is currently running an end of the year campaign. Don’t hesitate to donate!