Hey fellow GNOMies!
GNOME has everything that I need (virtually ;), but it is held back in seamless connectivity with other devices in the shell as well as the apps. Thanks to GSConnect, a great deal of pain is alleviated, but how about pure tranquillity.
GSConnect, with the help of companion Android app KDE Connect (Konnect sigh), provides a long list of features:
- File sharing and filesystem mounting
- URL sharing
- Plain text sharing
- Find devices by ringing
- Messaging support
- Media controls
- Volume control
- Battery alerts
- Custom commands
They sure are plenty and instrumental indeed but feel unbaked into the system (the DE and the apps). I would like to provide an API to app and extension developers alike with all the access to the amazing connectivity that GSConnect and KDE Connect have to offer.
In addition to above listed features, some more useful and handy-dandy features would also be included, among which would be:
- Basic controls of settings for the other device (similar to volume control), including toggles of Wi-Fi (and hotspot), Bluetooth, DND, etc.
- Camera app launch and capture (maybe?)
- Picking up calls and routing of audio to the device where Bluetooth is connected (if local connection)
- GNOME contact sync (using the Contacts app) and making calls using the phonebook
- GNOME Photos integration to share photos directly from the app
- Lockscreen unlocking from a local device (or remote device?) only from trusted devices
Oops, did I mention
local devices out of the blue?
For the people who have used GSConnect and/or KDE Connect, you might be aware that KDE Connect only works in the local network and keeps all the data encrypted over a TLS connection. It should not come as a surprise if someday someone felt the need to have a secured pipe over the internet even if the devices are an inch apart (sometimes you just need to get things done, amirite?).
This gets tricky here, do you need to make yet another account and sign in everytime you add a new one into the loop? Well, one way to avoid that nightmare is that we can associate Device IDs together just like how Syncthing works (check it out if you haven’t heard of it yet). One device can add another device using Device ID and upon approval, we are good. Maybe we can just enjoy copypasta (evil laughter in the background).
We still would need to add each device one by one but this gets rid of the account management altogether.
Although some feature are not present in KDE Connect Android app especially the remote feature, I recon working on them should not hurt.
This is definitely a long project and might not (will not) be completed by the end of GSoC, but I sure would hang around even after that. I decided to take up on this in GSoC because all this time it has been rather hard to figure things out in the vastness of GNOME Shell’s codebase and also doing the things the right way. The code sure is well structured, variables are most sensibly named and the people are very polite and helpful, maybe I just crave a mentor (hehe).