Skip to content

Automatically adds a curated list of additional themes to dnSpy

License

Notifications You must be signed in to change notification settings

HorridModz/dnSpy-Theme-Installer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

71 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

dnSpy-Theme-Installer

Automatically adds a curated list of additional themes to dnSpy

dnSpy-Plugin-Installer

dnSpyThemeInstaller has a sister project called dnSpyPluginInstaller which is almost identical, except it's for plugins instead of themes. dnSpyPluginInstaller is yet to be created. When it is created, this will be updated.

Using Themes

dnSpy is a tool for reverse engineering .NET assemblies. dnSpy supports themes to make it look cooler. To select a theme, use the View > Theme menu:

dnSpy Theme Image from https://forum.wearedevs.net/t/28875

dnSpy comes with a few built-in themes. However, 3 themes isn't enough! Luckily, dnSpy allows you to make custom themes. The goal of this project is to make custom themes more accessible.

Requirements

Features

  • Works automatically and out of the box, with no user input or configuration needed
  • Comes with lots of themes built in
  • Allows you to supply your own themes
  • Easy and simple command line interface
  • Can easily and automatically install HoLLy's ThemeHotReload plugin, which allows for hot-reloading themes during theme development. This plugin is ONLY FOR .NET 5.0 version of dnSpy 6.1.8.
  • Cross-platform (I think, hasn't been tested)

Built-in Themes

Developer Note: I was too lazy to link all the theme names to their corresponding files manually, so I wrote a regex to do it for me.
Search: - \[(.*)]\n
Replace: - [$1](Themes/$1.dntheme)\n

Before using this regex search and replace, write the theme names out in this format ({REMOVETHIS} is so the regex does not match this, leave it out):
- {REMOVETHIS}[THEMENAME]
- {REMOVETHIS}[THEME2]

Usage

❗ After running any commands, restart dnSpy for the changes to show.

Warning: If your dnSpy installation folder requires admin rights to modify (this will happen if it is in the ProgramFiles or ProgramFiles (x86) folder), make sure to run dnSpyThemeInstaller as admin so it can access the folder.

Only command-line usage is supported.

Note: If an argument or flag value has multiple words, enclose it in double quotes (""). If you need to use double quotes in the value or the value has a space in it, use single quotes instead (or swap them).

Warning: If there is one argument enclosed in quotes, like this: "C:\Users\mr space\uhoh", the quotes will be removed automatically by the command line, and it will end up as C:\Users\mr space\uhoh - no quotes! To guard against this, nest single quotes inside of double quotes (or vice versa): "'C:\Users\mr space\itsok'"

To display help, supply the -h flag.

dnSpyThemeInstaller -h

To list all of the built-in themes, use the l flag.

dnSpyThemeInstaller -h

To install all of the built-in themes, run dnSpyThemeInstaller with the b flag. The b flag is overridden by the i and e flags.

dnSpyThemeInstaller <path_to_dnSpy_folder> -b

To only install some of the built-in themes, use the -i flag. It does not matter whether you specify the .dntheme file extension or not. Separate the themes you want to install with a space ( ). If a theme has a space in its name, enclose it in quotes.

Note: The i and e flags are mutually exclusive

dnSpyThemeInstaller <path_to_dnSpy_folder> -i <themes_to_install>

To install all of the built-in themes except for a few, use the -e flag. It does not matter whether you specify the .dntheme file extension or not. Separate the themes you want to exclude with a space ( ). If a theme has a space in its name, enclose it in quotes.

Note: The i and e flags are mutually exclusive

dnSpyThemeInstaller <path_to_dnSpy_folder> -e <themes_to_exclude>

To install your own theme(s), provide the location(s) of the file(s) as the -f flag. Separate the paths with a space ( ). If a path has a space in its name, enclose it in quotes.

dnSpyThemeInstaller <path_to_dnSpy_folder> -f <file_or_directory>

This argument supports theme files or directories containing theme files. You can also mix and match, like this:

dnSpyThemeInstaller <path_to_dnSpy_folder> -f "'dir_1' 'file_1' 'dir_2' 'file_2'"

To install the ThemeHotReload plugin, which allows for hot-reloading themes during theme development, run dnSpyThemeInstaller with the -p flag:

dnSpyThemeInstallern <path_to_dnSpy_folder> -p

Warning: This plugin is ONLY FOR .NET 5.0 version of dnSpy 6.1.8. It will not work if these requirements are not matched.

How to do it manually

If you'd prefer to do it yourself rather than using this tool, then I don't know why you're here. But here's how:

Copy the theme into the dnSpy\bin\Themes folder, then restart dnSpy.

Credits

The built-in themes are from https://forum.wearedevs.net/t/28875.

The theme hot reload plugin is from https://github.com/HoLLy-HaCKeR/dnSpy.Extension.ThemeHotReload.

About

Automatically adds a curated list of additional themes to dnSpy

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages