- Kube got a basic but functional todo view.
- HiDPI support. After a bit of massaging, Kube now scales correctly on HiDPI displays, so we no longer end up with tiny icons everywhere.
- Fixed HTML view resizing. Resizing the WebengineView to fit the contents has been a constant source of problems and continues to break every now and then.
- Improved keyboard navigation that allows for switching between views.
- Improved IMAP sync which fixes a couple of corner cases and improves performance as well as responsiveness while a sync is executed.
- Fixed free-page accumulation in lmdb database, which results in ~10x smaller db files.
- Experimented with zstd compression for things like mime messages, which reduced the database size, but doesn’t seem to affect performance much.
- The account password is now protected using your gpg key as well, so if there is a gpg-key set up, you will only have to unlock your keyring to unlock
kube. This effectively turns the gpg-keyring into your Kube keyring as well (assuming you have a gpg-key for every account).
- Implemented fulltext indexing of encrypted emails as well as basic support for protected headers. Read more
- Shaved off another 2000 SLOC from the messageparser library as I moved it over to sink for encrypted email indexing.
The todo view
The todo view’s goal is to have a small personal list of todos, acknowledging that you can only accomplish so much during a day, and there is no intention of turning this into a project management suite down the road.
The idea is that you have a couple of lists as backlogs, and that you then pick a reasonable amount of items (<10 probably?) from those lists as currently in progress (that’s also how it’s stored in iCal). This then gives you a nice little list of things during the day/week/whatever suits you, that you can tick off.
New items can quickly be entered using keyboard shortcuts (press “?”) and that’s about it for the time being.
I think sub-todos might find their way eventually in there, but the rest should rather be quality of life improvements and eventually taking other sources of “things you need to act on” into account, such as emails that you should probably be answering or events that need to be prepared.
The todo view was the last officially missing piece, so with that we are view-complete (feature complete may be a bit a stretch still).
Having to enter your account password for every account whenever you start Kube doesn’t make for a great user-experience, so this was fairly high on the nuisance list.
Naturally the first thought was that we would just use your platform’s keyring, but regrettably there still isn’t a solution that works on multiple platforms (not even on Linux, libsecret was never implemented for KDE),
so that results in a lot of effort for implementation and maintenance.
Fortunately, there is an alternative.
We already rely on GPG for end-to-end encryption, so why not use your GPG-key to also secure your account related secrets?
We already had an experimental feature that stores the account password encrypted using the key as a POC, so the next was to build this into the core and improve the experience somewhat.
The result is that you will no longer have to enter any account passwords after the initial entry, but will instead be prompted to unlock your GPG-keyring (if not already unlocked), and just like that we’ll gain a keyring and sidestep the keyring mess. With gpg-agent we can at least reuse something that we rely on anyways, and that we have available on all supported platforms.
The one fly in the ointment is that we currently have to start a gpg-agent inside the flatpak, so we can’t reuse an already unlocked keyring on the system.
More information on the Kolab Now blog!
“Kube is a modern communication and collaboration client built with QtQuick on top of a high performance, low resource usage core. It provides online and offline access to all your mail, contacts, calendars, notes, todo’s and more. With a strong focus on usability, the team works with designers and UX experts from the ground up, to build a product that is not only visually appealing but also a joy to use.” For more info, head over to: kube-project.com