Thanks to a generous qTox user stepping forward with funding, I’ve been able to quit my software engineering day job and commit to one year of working on qTox full time. Additionally, they funded the part-time creation of toxfs, and a few months of sphaerophoria’s part-time work on qTox. Think of this as a year-long “summer of code”, if you’re familiar with that program. The objective is to improve qTox and tox in general. Changes will be targeted at benefiting all users, and nothing is changing in terms of copyright or licensing.
Some of the things planned for qTox are:
- Fix lots of the weird behaviour and crashes with the chat log and history search.
- Add file transfer auto-resume, to continue the transfer after it’s interrupted.
- Add pending offline file transfers that behave like messages which can be queued to be sent once connected with a friend.
- Make the file transfer tab more useful by having the files link back to the part of chat where they were received for context. Have files visible per chat.
- Expand our automated testing to make regressions rarer and development more efficient.
- Group history. Initially messages sent while you’re offline won’t be added to history.
- Possibly improved to fill in history gaps from trusted friends.
- Making groups more usable with little things like an option to disable join/leave notifications.
- Improving general group features and performance by adding support for tox “DHT group chats” or “new group chats” in toxcore.
- This will include features like groups joinable by link, group admins, lower latency, and more.
- Push-to-talk support for calls and groups, allowing configurable key bindings to mute/unmute.
- Further use of ToxExt, made by sphaerophoria, to add features to qTox depending on protocol changes in a backwards compatible and client compatible way, such as:
- Sender timestamps on messages.
- Message replies and chat threading.
- Group file transfers.
- “Real” message formatting. Currently qTox’s formatting characters (e.g. for bold and italic) are not cross-client compatible and are part of the message, rather than metadata about the message.
- Custom named chat stickers that can be added and re-used easily between friends.
- Timed messages, giving the ability for users to send self-deleting messages. This will require the receiving party to cooperate given the nature of free software.
- Larger, less certain goals include:
- A dedicated easy to set-up daemon that allows messages to always be delivered.
- Multi-device support, for one ID to have shared friends and shared history.
There are endless more ideas if I run out of things to work on. Realistically there’s endless work that can be done to make qTox and tox in general as featureful and polished as mainstream chats, with the added challenge of being distributed. We don’t have a project manager, and have fewer developers than initially planned, so some things that end up being more work than expected will be deprioritized. This is still an accurate idea of what I’ll aim for in the year.
qTox development was in a bit of a lull before this, but now is a great time to get involved and contribute. PRs won’t be kicking around for months, issues will get prompt replies, and I’ll be around to bounce ideas off of. I can be contacted on tox at tox:AC18841E56CCDEE16E93E10E6AB2765BE54277D67F1372921B5B418A6B330D3D3FAFA60B0931 or on IRC at https://web.libera.chat/#qtox.
My end date won’t be earlier than late September 2022, but may be later. As time passes, more accurate updates will be posted here.
Thanks to the donor, and the entire tox community for sticking with the project all these years. I look forward to seeing where we can take it as it continues to improve.