https://github.com/timschneeb/kdeconnect-nx
KDE Connect client for Nintendo Switch implemented as a sysmodule and an ultrahand overlay
https://github.com/timschneeb/kdeconnect-nx
homebrew kde kde-connect nintendo-switch nintendo-switch-homebrew remote-control remote-input switch switch-homebrew sysmodule tesla-overlay ultrahand-overlay
Last synced: 10 days ago
JSON representation
KDE Connect client for Nintendo Switch implemented as a sysmodule and an ultrahand overlay
- Host: GitHub
- URL: https://github.com/timschneeb/kdeconnect-nx
- Owner: timschneeb
- License: gpl-3.0
- Created: 2026-05-11T11:50:47.000Z (2 months ago)
- Default Branch: master
- Last Pushed: 2026-06-07T20:21:16.000Z (about 1 month ago)
- Last Synced: 2026-06-07T20:21:57.303Z (about 1 month ago)
- Topics: homebrew, kde, kde-connect, nintendo-switch, nintendo-switch-homebrew, remote-control, remote-input, switch, switch-homebrew, sysmodule, tesla-overlay, ultrahand-overlay
- Language: C++
- Homepage:
- Size: 8.99 MB
- Stars: 2
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# KDE Connect NX
A lightweight [KDE Connect](https://kdeconnect.kde.org/) 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.
More screenshots [below](#screenshots).
## 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](https://github.com/ppkantorski/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](https://github.com/timschneeb/kdeconnect-nx/releases) 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](https://userbase.kde.org/KDEConnect#I_have_two_devices_running_KDE_Connect_on_the_same_network,_but_they_can't_see_each_other). 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
Device list
Device actions
Media remote
Remote commands
Volume control
Settings
## Building from sources
Refer to [BUILDING.md](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](https://github.com/retronx-team/sys-clk)!)
* `tools/nxlink/nxlink.c`: ISC license (Thanks to [switchbrew](https://github.com/switchbrew/switch-tools)!)