Skip to content

Repository files navigation

KDE Connect NX

A lightweight KDE Connect implementation for the Nintendo Switch written from scratch. Runs as a background sysmodule with an Ultrahand overlay, and pairs with any KDE Connect client present in the same local network.

Notification pop-up on Switch home screen Overlay on Switch home screen

More screenshots below.

Features

Not all KDE Connect plugins are implemented. Some plugins are only implemented in one direction.

From your phone, tablet, PC to your Switch:

  • Receive notifications (from Android/PC)
    • (Notification sharing is disabled by default on PC. Enable it in the plugin settings)
  • Remote keyboard
    • Inject USB keyboard strokes on the Switch from another device
    • (Limitation: An 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
    • Remote 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 status
  • Ping devices (for testing)

Installation

  • Install the Ultrahand-Overlay, if you haven't already
    • Ultrahand is a fork of Tesla. Tesla does not support notifications and is not compatible with this application!
  • Download the latest release of this project
  • Extract the ZIP on the SD card of your Switch
  • Reboot

Note

The sysmodule that handles all of the networking, TLS encryption, and plugins consumes 2.7MB of memory from the system pool in total.

Connecting to other devices

  • Visit this page to install KDE Connect on your other devices: https://kdeconnect.kde.org/download.html
  • The KDE Connect clients will automatically discover each other.
  • Open the overlay named 'KDE Connect NX' via Ultrahand
  • After starting the pairing process in the overlay, you need to accept the pair request within 30 seconds.
Connection problems? (Click here to expand)
  • Your devices must be connected to the same WiFi network
  • Some networks (especially public or shared ones) have client isolation enabled; KDE Connect will not be able to communicate with other devices on these networks.
  • Restart the sysmodule (in the overlay, navigate to: Settings > Kill sysmodule)
  • KDE Connect uses dynamic ports in the range 1714-1764 for UDP and TCP. So if you are behind a firewall, make sure to open this port range for both TCP and UDP. Otherwise, make sure your network is not blocking UDP broadcast packets.
  • The system time on your Switch must be correct to pair devices, otherwise the SSL certificate exchange will fail. If you have updated the system time, you need to restart the sysmodule to apply the change to it.
  • Check that the KDE Connect apps are updated to the latest version. This implementation does not support older KDE Connect clients.
  • Check the log file at /atmosphere/logs/kdeconnect_sysmodule.log for error messages if it still does not find any device.

Important

Please note that some features are not implemented on all platforms. You will have the best experience with Android & Linux. The Windows client is also very capable.

For macOS there is currently only a nightly version available, and on iOS the implementation is very limited due to Apple's locked down ecosystem (it cannot run in background at all). I have not tested the macOS & iOS client with this sysmodule.

Screenshots

Remote keyboard input
Remote keyboard input
Device list Device actions Media remote
Device list Device actions Media remote
Remote commands Volume control Settings
Remote commands Volume control Settings

Building from sources

Refer to BUILDING.md for detailed build instructions and development environment setup recommendations.

License

Licensed under GPLv3.

Exceptions:

  • sysmodule/src/ipc/ipc_server.*: THE BEER-WARE LICENSE (Thanks to retronx-team!)
  • tools/nxlink/nxlink.c: ISC license (Thanks to switchbrew!)

About

KDE Connect client for Nintendo Switch implemented as a sysmodule and an ultrahand overlay

Topics

Resources

Stars

12 stars

Watchers

0 watching

Forks

Releases

Contributors

Languages