diff --git a/src/libresrc/default_config.json b/src/libresrc/default_config.json index 318f8d3ee..52331dedf 100644 --- a/src/libresrc/default_config.json +++ b/src/libresrc/default_config.json @@ -16,7 +16,8 @@ "Save Charset" : "UTF-8", "Save UI State" : true, "Show Toolbar" : true, - "Toolbar Icon Size" : 16 + "Toolbar Icon Size" : 16, + "Dark Mode" : false }, diff --git a/src/main.cpp b/src/main.cpp index 7f6d9162c..dd07763ff 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -224,6 +224,12 @@ bool AegisubApp::OnInit() { } #endif +#if defined(__WXMSW__) && wxVERSION_NUMBER >= 3300 + if (OPT_GET("App/Dark Mode")->GetBool()) { + MSWEnableDarkMode(wxApp::DarkMode_Always); + } +#endif + // Init commands. cmd::init_builtin_commands(); diff --git a/src/preferences.cpp b/src/preferences.cpp index f6320dd75..792bcf291 100644 --- a/src/preferences.cpp +++ b/src/preferences.cpp @@ -228,6 +228,11 @@ void Interface(wxTreebook *book, Preferences *parent) { auto tl_assistant = p->PageSizer(_("Translation Assistant")); p->OptionAdd(tl_assistant, _("Skip over whitespace"), "Tool/Translation Assistant/Skip Whitespace"); +#if defined(__WXMSW__) && wxVERSION_NUMBER >= 3300 + auto dark_mode = p->PageSizer(_("Dark Mode")); + p->OptionAdd(dark_mode, _("Enable experimental dark mode (restart required)"), "App/Dark Mode"); +#endif + p->SetSizerAndFit(p->sizer); }