Homebrew Homebrew app Project KDE Connect client for Switch - Sync notifications from Android/PC, remote keyboard input & more

timschneeb

Member
Newcomer
Joined
Jan 19, 2023
Messages
10
Reaction score
23
Trophies
0
Age
22
Website
github.com
XP
186
Country
Germany
This is a lightweight client for the KDE Connect protocol written from scratch for the Switch and implemented as a Sysmodule and an Ultrahand overlay. I originally started this project just to mirror notifications from my Android phone, but it supports a large subset of the protocol's features at this point (the ones that make sense for a game console at least).

KDE Connect allows devices in the same local network to talk to each other and provides features such as sharing files, syncing phone notifications, remotely executing commands, controlling music, etc. It originated from KDE (a Linux desktop environment) with the goal of integrating Android phones into KDE desktops, but now also has official clients for Windows, macOS and iOS (though the iOS version is heavily restricted by Apple and the macOS version doesn't have a stable release yet): https://kdeconnect.kde.org/download.html

The protocol is peer-to-peer and completely contained within your local network, so no data gets proxied through shady third-party servers.
Also, it uses TLS encryption (after the initial pairing step), so sensitive things like notification contents are not exposed in the local network traffic either.

Important: Only Ultrahand (Tesla's successor) is supported! Tesla does not support displaying notifications.

Downloads, instructions and source code are available on GitHub: https://github.com/timschneeb/kdeconnect-nx

example_notification_half.jpg
overlay_main_half.jpg

overlay_device_crop.jpg
overlay_media_remote_crop.jpg
overlay_sinks_crop.jpg


It also supports remote keyboard input by simulating a virtual USB keyboard, though the remote mouse/touchscreen support is missing. This might be useful for games like Tomodachi Life that ask for a lot of keyboard input, so you could just pick up your phone and type much faster.


Here's a list of all supported KDE Connect plugins:

From your phone, tablet, PC to your Switch:
  • Receive notifications (from Android/PC)
  • Remote keyboard
    • Inject USB keyboard strokes on the Switch from another device
    • (Limitation: A US English USB keyboard is simulated, so only characters present on a US keyboard can be injected.)
  • Remote commands
    • Control the Switch with some hardcoded commands (power control, send screenshot to PC/phone, etc.)
  • Volume control
    • Remotely control the master volume level of your Switch
  • File transfer
    • Send files to your Switch's SD card (just implemented for completeness' sake, for most use-cases sys-ftpd is better)
From your Switch to your other devices:
  • Media playback remote controls
  • Remote commands (PC only)
    • Trigger predefined commands on a connected PC (custom shell commands; requires setup on the PC)
  • Audio output control (PC only)
    • Remotely choose between audio devices and set the volume level for each one
  • Send screenshot
    • Take a screenshot and send it to a device
  • Ring device
In both directions: Battery level & status

The sysmodule that handles all of the networking, TLS encryption, and plugins consumes 2.7MB of memory in total. Since the available memory space in the system pool keeps getting smaller with each system update, I've tried to keep it as small as possible while still leaving 0.5-1MB of breathing room in the heap.
 
Last edited by timschneeb,
OMG! I never even tought of implementing this! KDE Connect on my other devides is basically a must have (share clipboard, files, being able to control volume or playback from anywhere in the house) and now I can hae important notifications on my switch as well?

genius!
 

Site & Scene News

Popular threads in this forum