Toggle menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

NXThemes Installer Switch

From GameBrew
Revision as of 10:48, 31 March 2023 by HydeWing (talk | contribs)
Switch Theme Injector
Switchthemeinjector.png
General
Authorexelix11
TypePC Utilities
Version4.7_2.7
LicenseGPL-2.0
Last Updated2022/03/22
Links
Download
Website
Source
Support Author

The Switch theme injector is a remarkable homebrew app for the Nintendo Switch that simplifies the process of creating custom themes.

This project consists of three parts:

  1. Switch theme injector (Windows app): This app allows users to create and edit custom themes.
  2. NXThemes installer: This homebrew app runs directly on the Switch and enables users to install and manage themes.
  3. Switch theme injector online (also known as WebInjector): This web app is a port of the Windows injector, but some features like custom applet icons and common.szs layouts support are not available.

The main objective of this project is to develop a complete toolset that enables users to create and install custom themes on their Nintendo Switch. As the console operating system doesn't natively support custom themes, most of the work involves patching system SZS files to achieve the desired appearance.

However, it's worth noting that SZS files from the Switch OS contain copyrighted data and cannot be shared online. Therefore, the nxtheme format was developed, which only contains differential information and can be freely shared. Unless you're creating your own patches and custom layouts, it's best to use nxtheme files.

Please note that although custom themes do not appear to cause bans, it's important to exercise caution when using custom firmware (CFW) and avoid connecting to the internet. If you do decide to connect to the internet while using CFW, it's recommended that you use a DNS, even if you're not using custom themes.

Media

Custom Themes Nintendo Switch TUTORIAL - (Manito)

Screenshots

switchthemeinjector-01.png switchthemeinjector-02.png switchthemeinjector-03.png switchthemeinjector-04.png switchthemeinjector-05.png switchthemeinjector-06.png

Getting started

To use custom themes you need an hacked switch that's at least on firmware 5.0.

How to Install and Uninstall Themes

The most common scenario for installing themes is to use the theme installer homebrew. Here are the steps to follow:

  1. Create a folder called “themes” in the root of your SD card.
  2. Copy your themes in either nxtheme or szs format into this folder.
  3. Launch the theme installer and select your desired theme to install it.
  4. Reboot your console and your new theme should be applied.

Note that each file is a single home menu part (e.g., just the lock screen or just the main menu). A full home menu theme is composed of multiple nxtheme files.

To remove a theme, simply select “uninstall” in the theme installer. You can also install a different theme to overwrite the currently installed one.

If you forget to uninstall any installed themes before upgrading (or downgrading) your firmware, you may encounter compatibility issues. In this case, your console may not boot until you remove the theme as explained below.

In case your console doesn’t boot anymore due to a bad theme (mostly with szs themes), delete the \atmosphere\contents\01000000001000 folder from your SD card (it’s <cfw name>\titles\01000000001000 for old atmosphere and other CFWs). After deleting this folder, your console should be able to boot again. Launch the theme installer and select “uninstall theme” to finish the cleanup process.

Making themes

To make themes, you can use either the Theme injector application or the web version.

Format differences

In the past, themes were distributed as szs files. However, this format is no longer supported because these szs files also contain copyrighted data. Instead, you should only use the nxtheme format.

Making an nxtheme

To make an nxtheme, open the injector and go to the NXThemes builder tab. Then, open any 720p JPG image (1280x720 pixels), select a custom layout, and click on “build nxtheme”.

For making themes, you can only use JPG images or DXT1-encoded DDS images. For best quality, it’s better to manually encode the image to DDS so you can have a preview of how it will look like with the compression applied.

Linux Support

The GUI only works on Windows. However, on Linux, you can use the CLI through mono. You will need the mono-complete package. Then, you should be able to launch the app by running mono SwitchThemes.exe help.

Command line usage (CLI)

Building nxthemes:

SwitchThemes.exe buildNX home "<your image.png/jpg/dds>" "<json layout file, optional>" "name=<theme name>" "author=<author name>" "out=<OutputPath>.nxtheme"

This will build a theme for the home menu. Instead of “home”, you can use: lock for lock screen, apps for all apps screen, set for settings applet, user for user page applet and news for news applet. Only the image and out file args are needed. Other options specific to the theme target such as applet icons are available as well. Run “SwitchThemes.exe help” for more info.

Remote install

To remotely install a theme:

Launch the theme installer and select remote install.

Run the following command: SwitchThemes.exe install 192.168.X.Y “<nxtheme/szs file>”

where 192.168.X.Y is your console IP address.

Custom layouts

Custom layouts are JSON files that allow you to change the appearance of the home menu by moving the UI components. To create a custom layout, you will need the original home menu szs files found in /themes/systemData on your SD card (if you ever used the theme installer) and a tool capable of editing them like the Switch Layout Editor.

You can find more information about layouts and the supported properties here.

For layout editing, read the Layout editor wiki to get started. Parts of the main home menu layout are documented in this repo wiki.

FAQ

Q. Can a custom theme brick my switch?
A. No, custom themes are applied through layered fs, so no change is made to your NAND.

Q. The theme installer crashes on launch or just fails to install themes.
There are two main causes: the archive bit is set for the themes folder and the SD card is corrupted. The former happens mainly if you use a Mac but really depends on how you create the themes folder. The latter is often caused by exFAT on your SD card. Try to delete the themes folder and launch the installer, and it will create it again. Now just copy the themes, and it should work. If it still doesn’t work, it could be corruption. In this case, the best option is to backup the SD contents and format it to FAT32. If you have games installed, don’t worry as the Switch OS automatically splits them into <4GB parts so they work on every SD.

Q. I installed a theme and now my switch crashes on boot or I had a custom theme, then I updated my console and now it crashes on boot.
Delete the /titles/0100000000001000 and/or /titles/0100000000000811 folders from the CFW folder on your SD card. At this point, your console will boot up normally. To clean up any leftovers, launch the theme installer and select “uninstall theme”.

Q. Why are nxtheme files better than SZS?
They’re legal. This means they can be freely shared, and they are firmware-independent so they can be installed on any firmware. It is also a more flexible format that can be extended in the future to support more features such as theme packs.

Q. Why only 720p images? I want to use a 1080p or 4K one!
Two reasons: first, the internal resolution of the home menu is 720p no matter if docked or not. This means your image will automatically be scaled down to 720p. Second, the home menu memory is very limited. A bigger image is more likely to crash on boot and would allow for less customization.

Q. The news applet crashes.
If you're experiencing crashes with the news applet on your Nintendo Switch, it may be due to using an outdated bflyt patch. Check out the spoiler at the beginning of the thread for more information and use this tool to fix your themes.

Q. Are themes compatible with older firmware versions before 5.1.0?
While this tool should work for older firmwares, we haven't tested it. If you'd like to try, you'll need to use a common.szs from the firmware version you want to modify and follow the guide provided. If your theme works, please let us know! Note that if you encounter any issues with older firmwares, we may not be able to provide assistance.

Update: Version 4.0.1 has been tested and works, but there may be some issues as reported by hax4dayz.

Q. Can the Switch theme injector app run on Linux?
Yes and no. The UI won't work, but you can still create themes using the command line interface (more information available on GitHub). Additionally, you'll need to provide images in DDS file format as the included converter requires DirectX, which is only available on Windows.

If you want to stay up-to-date on any future updates or learn more about this project, be sure to join the Discord server and follow the thread for notifications.

Changelog

Version 4.7 & NXThemesInstaller 2.7

  • Support for firmware 14.0 and 14.1 #113
  • The reboot button now uses spsm instead of bpc, this means the console will shut down properly #111
  • Auto update for home menu patches, whenever a new firmware drops if it just needs a new IPS patch it will be downloaded automatically from github as soon as it's available.
    • This means there won't be firmware specific releases anymore unless something major breaks
    • If you don't want to connect your console to the internet you can download the new patches manually from github, there is a guide in the readme.
    • If you want to get notifications for new updates as soon as they're available click watch on the theme-patches repo

External links

Advertising: