Google Summer of Code 2020 ideas page

Table of contents


NB: Unfortunately, Google could not find room for Tridactyl in GSoC 2020. We would still be happy for anyone to take up any of the projects below, with the caveat that we wouldn’t be able to pay them. An invitation (and subsidised travel) to the next Tridactyl retreat would probably be the best we could do.

Tridactyl is a big project with lots of interesting areas where students could make a contribution. This page lists some of the ideas the maintainers have had. Most of them are projects we ourselves would like to undertake but have not had the time to dedicate to them.

General prerequisites for all applicants:

Non-mandatory recommendations:

The following few projects would be quite challenging (and proportionately rewarding).

Google Chrome has many more users than Firefox. We could get Tridactyl into the hands of many more people if we ported it to Chrome. Many browsers use the same (or similar) WebExtension API as Firefox and can be supported using webextension-polyfill.

The challenges would be:

Rewards:

Prerequisites:

We briefly explored this in the past - this pull request could be a good place for interested students to start.

Potential mentors: glacambre, saulrh, bovine3dom

Tridactyl is a keyboard-driven interface for Firefox. The most common complaint amongst our users is that Tridactyl cannot accept commands while web pages are loading, while the Firefox UI is focused, or while a “privileged” page such as “about:preferences” is being used.

A simple extension to the WebExtension API would allow Tridactyl to listen for key-events in these scenarios. Work was started on such an API a few years ago. Mozilla, in principle, accepted that such an API could be merged into Firefox. Enough time has passed, however, that consensus will have to be rebuilt with Mozilla about both the detail and the broad structure of the API. In the event that agreement cannot be reached with Mozilla regarding the new API, it could still be used with Tridactyl in Developer, Nightly and custom builds of Firefox.

Such an API would be useful for all extensions like Tridactyl.

Challenges ahead:

Rewards:

Prerequisites:

Potential mentors: saulrh, glacambre, cmcaine, bovine3dom

Tridactyl has its own rudimentary vim-style scripting language. The current design was not designed; it emerged as new features were added. It is therefore bad.

ELLIOTTCABLE has been working on a real parser on and off for about 18 months. It is now nearly ready to be integrated into Tridactyl. Your task would be to integrate it with his help and fix any issues that emerged.

Challenges:

Rewards:

Prerequisites:

Another highly requested feature is to interoperate with TreeStyleTab. This would be a shorter task than the others. There is already a PR that goes some of the way to providing this. The main remaining work is to determine which sorts of features users would like and improve error handling.

Rewards:

Prerequisites:

Potential mentors: saulrh, bovine3dom

The way we inject our iframe which contains our command line and most of our interface currently breaks quite a few websites. We should instead insert it only when it is required. We attempted this about a year ago but ran into an issue where the command had to be executed twice to work.

Challenges:

Rewards:

Prerequisites:

Potential mentors: bovine3dom, glacambre, saulrh

We have an open pull request that adds limited gamepad support to Tridactyl. After getting detection, hinting and text input to work well (for example, see Steam’s Xbox 360 flower keyboard) with a decent theme it could turn Tridactyl into a good way of browsing the net on a big screen.

Challenges:

Rewards:

Prerequisites:

Potential mentors: bovine3dom, glacambre

The following project has a slim chance of success.

GeckoView is Mozilla’s answer to Chrome’s WebView - it is a lightweight web browser that is intended to be embedded in Android applications. Given enough willpower, it could be ported to desktop computers with bindings written in a popular language (e.g. Python, or, as the maintainers would like, Julia). It could then serve as an alternative to Electron and Tridactyl could be ported to it. GeckoView itself already supports a subset of the WebExtension API so it could be somewhat straightforward.

GeckoView itself is under active development and so is something of a moving target.

The mentors are somewhat reluctant to mentor this project; a student would need to be very persuasive to be accepted.

Challenges:

Rewards:

Prerequisites:

Potential mentors: saulrh, bovine3dom, cmcaine

We’d be delighted to hear from students who have an idea completely of their own. Be sure to contact us first to get a feel for how achievable we think your idea is. You might also wish to look at the GitHub issue where we came up with the ideas that made this page or any of our GitHub issues.