sthetix / JoyOff
git clone https://github.com/sthetix/JoyOff.git
1.0.0 · today
A simple Nintendo Switch homebrew app that puts original Joy-Con controllers into shipment low-power mode and disconnects them.
+32
stars, 24h · #1,207
+32
stars, 7 days · #5,854
+32
stars, 30 days · #17,815
32
★ total · +32% this week
0
forks · 0 open issues
Star history starts 2026-10-23; the chart appears after the second daily snapshot.
LanguageC
LicenseLGPL-3.0
Created2026-10-22 (1d ago)
Last pushtoday
Watchers0
OwnerUser
Links
- GitHub: github.com/sthetix/JoyOff
- Releases · Issues · Hacker News mentions
README excerpt
# JoyOff A simple Nintendo Switch homebrew app that puts original Joy-Con controllers into shipment low-power mode and disconnects them, ready for long-term shelf storage. No PC required. ## Features - Automatic detection of connected wireless Joy-Con L/R controllers. - Individual controller colors, connection states, and operation results. - Multiple controller pages with a miniature Joy-Con legend, L/R navigation, and touch swipes. - Turn off all ready controllers across every page with one confirmation. - Touch controls remain available after the controllers disconnect. - Optional TXT diagnostics saved to `sdmc:/joyoff-debug.txt`; logging is off by default. ## Requirements - A Nintendo Switch running custom firmware and firmware 13.0.0 or newer. - Original Joy-Con L/R controllers connected wirelessly. - Homebrew Menu in full application mode (title override). MissionControl is not required. Pro Controllers, Joy-Con 2, and third-party controllers are outside the scope of this app. ## Usage 1. Extract the release ZIP to the SD card root (it contains only `switch/JoyOff.nro`) and launch JoyOff through the Homebrew Menu. 2. Detach your Joy-Cons and connect them wirelessly. Detection refreshes automatically. 3. Press **Minus (-)** or tap **Turn Off All**, then confirm. 4. Check the per-controller results. Use the touchscreen to exit after the controllers disconnect. **Saved Bluetooth pairing will be cleared.** JoyOff resets pairing, enables shipment low-power mode, and disconnects the controllers. Attach them to a Switch to wake and pair again. If an operation fails partway through, pairing may already have been cleared; check each controller's result. | Control | Action | | --- | --- | | Minus (-) | Open the Turn Off All confirmation / confirm | | B / Plus (+) | Cancel, return, or exit | | X | Refresh detection | | Y | Open diagnostics | | ZL | Open About | | Minus (-), in Diagnostics | Enable / disable TXT logging while idle | | L / R | Previous / next controller page | | Touch | Buttons, miniature page legend, and horizontal page swipes | Controller pages group left and right devices for display; they do not establish controller pairs. Colors come from stored HID color information and may differ from replacement shells. TXT logging is off at each launch. Open Diagnostics, press Minus or tap the logging toggle to enable it, then use X / Refresh to capture discovery. Disabling logging leaves existing log files intact. ## Build Requires devkitPro/devkitA64, libnx, deko3d, GLM headers, and `uam`. The NanoVG/deko3d renderer is included. [code] The output includes `JoyOff.nro`, `JoyOff-1.0.0.zip` containing only `switch/JoyOff.nro`, and `JoyOff-1.0.0-source.zip` with the corresponding sources and license notices. See the technical README for implementation details and diagnostic information. ## Credits and license The Switch application is distributed under LGPLv3, with the accompanying GPLv3 terms. Graphics initialization and UI helpers are adapted