{"id":13589910,"url":"https://github.com/exelix11/SwitchThemeInjector","last_synced_at":"2025-04-08T10:32:09.106Z","repository":{"id":38522624,"uuid":"150124830","full_name":"exelix11/SwitchThemeInjector","owner":"exelix11","description":"Create custom themes for the nintendo switch ! ","archived":false,"fork":false,"pushed_at":"2024-07-13T23:20:39.000Z","size":26172,"stargazers_count":1015,"open_issues_count":23,"forks_count":61,"subscribers_count":38,"default_branch":"master","last_synced_at":"2025-04-01T17:18:05.133Z","etag":null,"topics":["customization","homebrew","nintendo-switch","nx","nxtheme","switch"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/exelix11.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":null,"patreon":null,"open_collective":null,"ko_fi":"exelix11","tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":null}},"created_at":"2018-09-24T15:27:42.000Z","updated_at":"2025-03-31T18:38:41.000Z","dependencies_parsed_at":"2024-01-14T04:13:31.200Z","dependency_job_id":"58b1ed41-6b25-4499-bb94-408b0d87e311","html_url":"https://github.com/exelix11/SwitchThemeInjector","commit_stats":null,"previous_names":[],"tags_count":35,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/exelix11%2FSwitchThemeInjector","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/exelix11%2FSwitchThemeInjector/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/exelix11%2FSwitchThemeInjector/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/exelix11%2FSwitchThemeInjector/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/exelix11","download_url":"https://codeload.github.com/exelix11/SwitchThemeInjector/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247824006,"owners_count":21002185,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["customization","homebrew","nintendo-switch","nx","nxtheme","switch"],"created_at":"2024-08-01T16:00:36.116Z","updated_at":"2025-04-08T10:32:08.260Z","avatar_url":"https://github.com/exelix11.png","language":"C","readme":"# Switch theme injector\n[![Discord](https://img.shields.io/discord/643436008452521984.svg?logo=discord\u0026logoColor=white\u0026label=Discord\u0026color=7289DA\n)](https://discord.gg/rqU5Tf8)\n[![Latest release](https://img.shields.io/github/v/release/exelix11/SwitchThemeInjector)](https://github.com/exelix11/SwitchThemeInjector/releases)\n[![Download](https://img.shields.io/github/downloads/exelix11/SwitchThemeInjector/total)](https://github.com/exelix11/SwitchThemeInjector/releases)\n[![ko-fi](https://img.shields.io/badge/supporting-ko--fi-f96854)](https://ko-fi.com/exelix11)\n\n![ThemeScreenshot](ThemeScreenshot.jpg)\n\nThe Switch theme injector project is split into three parts:\n- Switch theme injector (Windows app): An app to create and edit custom themes\n- NXThemes installer: An homebrew app that runs on the switch itself and can be used to install and manage themes.\n- [Switch theme injector online](http://exelix11.github.io/SwitchThemeInjector/v2) (also called WebInjector): A port of the windows injector as a web app, it lacks some features like custom applet icons and common.szs layouts support.\n\nThe main objective is to develop a complete toolset to create and install custom themes on the switch. As the console os doesn't implement custom themes natively most of this is done by patching system SZS files to get the desidered aspect.\\\n\\\nUnfortunately SZS files from the switch os contain copyrighted data and can't be shared online that's why the **nxtheme format** has been developed, it contains only differential info and can be freely shared. Unless you're dealing with making your own patches and custom layouts you should only use nxtheme files.\n\n# Getting started\nTo use custom themes you need an hacked switch that's at least on firmware 5.0\n\n## Installing themes\nThis is the most common scenario, you just need the theme installer homebrew. \\\nMake a folder called `themes` in the root of your sd card and copy your themes in either nxtheme or szs format in it. Then launch the theme installer and you should be able to select and install them. \\\nReboot and your theme should be applied.\n\nNote that each file is a single home menu part (eg just the lockscreen or just the main menu), a full home menu theme is composed by multiple nxtheme files.\n\n**To remove a theme** just select uninstall in the theme installer. You can just install a different theme to overwrite the currently installed one.\n\nWhen a new firmware comes out **before upgrading (or downgrading) remember to uninstall any theme you have installed** to avoid compatibility issues, if you forget your console may not boot untill the theme is removed as explained next. \n\n**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 (it's `\\\u003ccfw name\u003e\\titles\\01000000001000` for old atmosphere and other CFWs), now your console should be booting, launch the theme installer and select uninstall theme to finish the cleanup process.\n\n## Making themes\nTo make themes you need either the Theme injector application or the web version.\n### Format differences\nIn the past themes have been distributed as szs files, this is not supported anymore as these szs files also contain copyrighted data, now you should only use the **nxtheme** format.\n### Making an nxtheme\nOpen the injector and go to the NXThemes builder tab, open any **720p JPG image** (1280x720 pixels), select a custom layout and click on build nxtheme.\n\nFor 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 will it look like with the compression applied. \n\n### Linux Support\nThe GUI only works on windows, on linux you can use the CLI through mono, you will need the `mono-complete` package.\\\nThen you should be able to launch the app by running `mono SwitchThemes.exe help`.\n\n### Command line usage (CLI)\n#### Building nxthemes\n```\nSwitchThemes.exe buildNX home \"\u003cyour image.png/jpg/dds\u003e\" \"\u003cjson layout file, optional\u003e\" \"name=\u003ctheme name\u003e\" \"author=\u003cauthor name\u003e\"  \"out=\u003cOutputPath\u003e.nxtheme\"\n```\nthis will build a theme for the home menu, instead of `home` you can use: `lock` for lockscreen, `apps` for the all apps screen, `set` for the settings applet, `user` for the user page applet and `news` for the news applet. Only the image and out file args are needed. \\\nOther options specific to the theme target such as applet icons are availbale as well, run `SwitchThemes.exe help` for more info\n#### Remote install\nLaunch the theme installer and select remote install, then run the following command:\n```\nSwitchThemes.exe install 192.168.X.Y \"\u003cnxtheme/szs file\u003e\"\n```\nWhere `192.168.X.Y` is your console IP address.\n\n# Custom layouts\nCustom layouts are JSON files that allow changing the appearence of the home menu by moving the UI components. \\\nTo create a custom layout you will need the original home menu szs files found in `/themes/systemData` on your sd (if you ever used the theme installer) and a tool capable of editing them like the [switch layout editor](https://github.com/FuryBaguette/SwitchLayoutEditor).\n\n[Here](https://github.com/exelix11/SwitchThemeInjector/blob/master/CustomLayouts.md) you can find more info about layouts and the supported properties.\n\nFor layout editing read the [Layout editor wiki](https://github.com/FuryBaguette/SwitchLayoutEditor/wiki) to get started, parts of the main home menu layout are documented in this repo [wiki](https://github.com/exelix11/SwitchThemeInjector/wiki/ResidentMenu.szs).\n","funding_links":["https://ko-fi.com/exelix11"],"categories":["C","Homebrew","homebrew"],"sub_categories":["Utilities"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fexelix11%2FSwitchThemeInjector","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fexelix11%2FSwitchThemeInjector","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fexelix11%2FSwitchThemeInjector/lists"}