cui/inc/strings.hrc                                        |    5 
 cui/source/options/appearance.cxx                          |  304 +-
 cui/source/options/appearance.hxx                          |   27 
 cui/uiconfig/ui/appearance.ui                              |  452 ++-
 include/svtools/colorcfg.hxx                               |    2 
 include/vcl/settings.hxx                                   |   20 
 include/vcl/themecolors.hxx                                |   62 
 officecfg/registry/data/org/openoffice/Office/UI.xcu       | 1546 -------------
 officecfg/registry/schema/org/openoffice/Office/Common.xcs |   32 
 sc/source/ui/unoobj/docuno.cxx                             |    8 
 sd/source/ui/unoidl/unomodel.cxx                           |    8 
 sfx2/source/appl/appserv.cxx                               |   26 
 svtools/source/config/colorcfg.cxx                         |   65 
 sw/qa/extras/tiledrendering/tiledrendering.cxx             |    3 
 sw/source/uibase/uno/unotxdoc.cxx                          |    9 
 vcl/README.themes.md                                       |  209 -
 vcl/osx/salframe.cxx                                       |   11 
 vcl/osx/salinst.cxx                                        |    6 
 vcl/osx/salnativewidgets.cxx                               |   12 
 vcl/qt5/QtCustomStyle.cxx                                  |   11 
 vcl/qt5/QtFrame.cxx                                        |    1 
 vcl/qt5/QtMenu.cxx                                         |    6 
 vcl/source/app/settings.cxx                                |   49 
 vcl/source/app/themecolors.cxx                             |   27 
 vcl/unx/gtk3/custom-theme.cxx                              | 1207 ++++++----
 vcl/unx/gtk3/custom-theme.hxx                              |    1 
 vcl/unx/gtk3/gtkframe.cxx                                  |    6 
 vcl/unx/gtk3/salnativewidgets-gtk.cxx                      |    4 
 vcl/win/gdi/salnativewidgets-luna.cxx                      |   75 
 vcl/win/window/salframe.cxx                                |   11 
 30 files changed, 1345 insertions(+), 2860 deletions(-)

New commits:
commit 38d39d9113dc30e5a0c7a491de59e359ef413fb3
Author:     Sahil Gautam <[email protected]>
AuthorDate: Mon Jan 26 20:33:44 2026 +0530
Commit:     Michael Stahl <[email protected]>
CommitDate: Tue Jan 27 12:37:36 2026 +0100

    theming: revert recently merged theming patches
    
    Some of these commits introduced string changes amid a string freeze.
    
    Revert "tdf#164970 move customizations frame below the themes frame"
    
    This reverts commit 156406c259d62b79264dcb2eea3ada179faf1812.
    
    Revert "tdf#164970 add checkbox for toggling document color customization"
    
    This reverts commit 126378132cf7b22bf050b11173abff9d719c9d71.
    
    Revert "tdf#164970 add a checkbox for enabling/disabling application 
theming"
    
    This reverts commit 06f69de8cd04edb15d1c0e2a6cad7adf2a34e90d.
    
    Revert "tdf#164970 cleanup the ui file for making further work convenient"
    
    This reverts commit 13e72a66058c40794c18f595c0610a6b3aa0bf3c.
    
    Revert "tdf#164970 remove add and remove buttons from appearance tab"
    
    This reverts commit db27f9b2d908647d4b57edb2b2f540a2ff077d36.
    
    Revert "tdf#164970 Merge appearance options with themes dropdown"
    
    This reverts commit ba8c5158893c8dcd793ccf597dcea4d0a08f2c73.
    
    Revert "tdf#164970 use proper enums for ApplicationAppearance instead of 
raw ints"
    
    This reverts commit a035a033d6404ca366c8d620bfab2651f9685266.
    
    Revert "tdf#164970 themes code cleanup, remove unneccessary assignment 
statements"
    
    This reverts commit 7b7fe696b7b4a90d1c629ff34f03062cf69441f2.
    
    Reapply "tdf#165803 use COL_WHITE for DOCCOLOR for both light and dark 
modes"
    
    This reverts commit 005f592aa6007eca55edd6277714e44f716faeac.
    
    Revert "tdf#165803 use COL_WHITE for DOCCOLOR for both light and dark modes"
    
    This reverts commit f401c1dcf70c77d86cd2f3cd34174318d1120b20.
    
    Revert "Add vcl/README.themes.md for themes implementation details"
    
    This reverts commit 53828cf16ff987e7e8b01fcd1d15c337fa6f28b5.
    
    Revert "remove unused include from vcl"
    
    This reverts commit 3dea7fa454e0a0a2ec3fc9d6cf0d028a7034ed61.
    
    Revert "remove unused LoadColorsFromTheme() from gtk theming code"
    
    This reverts commit e627e15e9163c271f4a817404436d16ca2db955e.
    
    Revert "tdf#164969 fix widget theming/styling in gtk"
    
    This reverts commit 5e1cf95ecb7cc8287c9ea9a9d0073f5ca6047d0b.
    
    Revert "tdf#164950 Set GtkCssProvider at APPLICATION level, not USER"
    
    This reverts commit 05ca63a7a60f81c3dfb8b966cc321bbb2ce72e88.
    
    Revert "tdf#164393 [API CHANGE] Make the "Automatic" theme Customizable"
    
    This reverts commit c7c7a2e5dfeb23304758c78aece1d439c8ceead2.
    
    Revert "Set StyleSettings::DisableColor value in Win"
    
    This reverts commit 3de945fca589ceb8c79e3b3e16e9e3452b8869e7.
    
    Reapply "remove unused #include from svtools"
    
    This reverts commit 459f1612ac54b3cbb6b7ebeec38632202058cc29.
    
    Revert "tdf#164420 Fix unselected Check/Radio buttons not following themes 
in GTK"
    
    This reverts commit e8f6751abb8894913933305c5273acf88ce1bac9.
    
    Revert "remove unused #include from svtools"
    
    This reverts commit 6d263b058e2e25cc18be14a38832907def237054.
    
    Revert "Use disable color for disabled controls in GTK"
    
    This reverts commit e06d5e7e4ee16b4c71007ccbc0d454b6df3c23a0.
    
    Revert "tdf#164393 Change themes UI as per UX feedback"
    
    This reverts commit 956a485f941472e9735a1b35fd54d413b2dcf0b0.
    
    Revert "tdf#164393 [API CHANGE] ThemeColors refactor part 3"
    
    This reverts commit 1655e4297355684570abfc0af0bd94045f8d400f.
    
    Revert "tdf#164393 ThemeColors refactor part 2"
    
    This reverts commit 31c07a54d281a0455acb5a462fb56e9b7881b251.
    
    Revert "tdf#164393 ThemeColors refactor part 1"
    
    This reverts commit f0f3624aa39bf9e51dc01cf2799c6e624c92a9ea.
    
    Revert "tdf#164393 Format the code to make clang-format happy"
    
    This reverts commit 62914a17f1cbdb9d0ea4aa3efe44b39e0872f435.
    
    Revert "tdf#164393 nicely format gtk-css-declarations for custom themeing"
    
    This reverts commit 0dc9fea9cce7a8c9be800139565f757cb4775fc2.
    
    Change-Id: I860d0479d4f7502a84ad32a2d4aabf93a8249468
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/198160
    Tested-by: Jenkins CollaboraOffice <[email protected]>
    Reviewed-by: Michael Stahl <[email protected]>

diff --git a/cui/inc/strings.hrc b/cui/inc/strings.hrc
index 08c42ccfded6..4b8ec0da311d 100644
--- a/cui/inc/strings.hrc
+++ b/cui/inc/strings.hrc
@@ -400,8 +400,6 @@
 
 // Translatable names of color schemes
 #define RID_COLOR_SCHEME_LIBREOFFICE_AUTOMATIC      
NC_("RID_COLOR_SCHEME_LIBREOFFICE_AUTOMATIC", "Automatic")
-#define RID_COLOR_SCHEME_LIBREOFFICE_LIGHT          
NC_("RID_COLOR_SCHEME_LIBREOFFICE_LIGHT", "Light")
-#define RID_COLOR_SCHEME_LIBREOFFICE_DARK           
NC_("RID_COLOR_SCHEME_LIBREOFFICE_DARK", "Dark")
 
 // Translatable Bitmap Names
 #define BMP_FUZZY_LIGHTGREY                         NC_("BMP_FUZZY_LIGHTGREY", 
"Fuzzy Lightgrey")
@@ -450,6 +448,9 @@
 #define BMP_TIGER                                   NC_("BMP_TIGER", "Tiger")
 #define BMP_ZEBRA                                   NC_("BMP_ZEBRA", "Zebra")
 
+#define LIGHT_COLOR_LBL                             NC_("LIGHT_COLOR_LBL", 
"Light")
+#define DARK_COLOR_LBL                              NC_("DARK_COLOR_LBL", 
"Dark")
+
 // Translated Registry Entries
 #define REG_DOCCOLOR                        NC_("REG_DOCCOLOR", "Document 
background")
 #define REG_DOCBOUNDARIES                   NC_("REG_DOCBOUNDARIES", "Document 
boundaries")
diff --git a/cui/source/options/appearance.cxx 
b/cui/source/options/appearance.cxx
index 3bcd7b6960c5..718603f8549a 100644
--- a/cui/source/options/appearance.cxx
+++ b/cui/source/options/appearance.cxx
@@ -21,7 +21,6 @@
 #include <tools/debug.hxx>
 #include <unotools/resmgr.hxx>
 #include <vcl/svapp.hxx>
-#include <vcl/themecolors.hxx>
 #include <comphelper/dispatchcommand.hxx>
 #include <comphelper/propertyvalue.hxx>
 #include <map>
@@ -87,13 +86,6 @@ std::vector<BitmapData> const& getBitmapList()
 }
 }
 
-static bool IsDarkModeEnabled()
-{
-    return MiscSettings::GetAppColorMode() == AppearanceMode::DARK
-           || (MiscSettings::GetAppColorMode() == AppearanceMode::AUTO
-               && MiscSettings::GetUseDarkMode());
-}
-
 SvxAppearanceTabPage::SvxAppearanceTabPage(weld::Container* pPage,
                                            weld::DialogController* pController,
                                            const SfxItemSet& rSet)
@@ -102,13 +94,16 @@ 
SvxAppearanceTabPage::SvxAppearanceTabPage(weld::Container* pPage,
     , pColorConfig(new EditableColorConfig)
     , m_xSchemeList(m_xBuilder->weld_combo_box(u"scheme"_ustr))
     , m_xMoreThemesBtn(m_xBuilder->weld_button(u"morethemesbtn"_ustr))
-    , 
m_xEnableAppTheming(m_xBuilder->weld_check_button(u"enableapptheming"_ustr))
-    , 
m_xUseOnlyWhiteDocBackground(m_xBuilder->weld_check_button(u"useonlywhitedocbackground"_ustr))
+    , m_xAddSchemeBtn(m_xBuilder->weld_button(u"newschemebtn"_ustr))
+    , m_xRemoveSchemeBtn(m_xBuilder->weld_button(u"removeschemebtn"_ustr))
+    , m_xAppearanceSystem(m_xBuilder->weld_radio_button(u"system"_ustr))
+    , m_xAppearanceLight(m_xBuilder->weld_radio_button(u"light"_ustr))
+    , m_xAppearanceDark(m_xBuilder->weld_radio_button(u"dark"_ustr))
     , m_xColorEntryBtn(m_xBuilder->weld_combo_box(u"registrydropdown"_ustr))
     , m_xColorChangeBtn((new 
ColorListBox(m_xBuilder->weld_menu_button(u"colorsdropdownbtn"_ustr),
                                           [this] { return GetFrameWeld(); })))
+    , m_xColorLbl(m_xBuilder->weld_label(u"colorlbl"_ustr))
     , 
m_xShowInDocumentChkBtn(m_xBuilder->weld_check_button(u"showindocumentchkbtn"_ustr))
-    , m_xResetAllBtn(m_xBuilder->weld_button(u"resetallbtn"_ustr))
     , m_xColorRadioBtn(m_xBuilder->weld_radio_button(u"colorradiobtn"_ustr))
     , m_xImageRadioBtn(m_xBuilder->weld_radio_button(u"imageradiobtn"_ustr))
     , 
m_xStretchedRadioBtn(m_xBuilder->weld_radio_button(u"stretchedradiobtn"_ustr))
@@ -116,36 +111,33 @@ 
SvxAppearanceTabPage::SvxAppearanceTabPage(weld::Container* pPage,
     , m_xBitmapDropDownBtn(m_xBuilder->weld_combo_box(u"bitmapdropdown"_ustr))
 {
     InitThemes();
+    InitAppearance();
     InitCustomization();
+    UpdateControlsState();
+}
+
+void SvxAppearanceTabPage::UpdateControlsState()
+{
+    // in case of AUTOMATIC_COLOR_SCHEME, disable all the controls
+    bool bEnableControls = m_xSchemeList->get_active_id() != 
AUTOMATIC_COLOR_SCHEME;
+    m_xShowInDocumentChkBtn->set_sensitive(bEnableControls);
+    EnableImageControls(bEnableControls && GetActiveEntry() == 
static_cast<int>(APPBACKGROUND));
 }
 
 void SvxAppearanceTabPage::LoadSchemeList()
 {
     m_xSchemeList->clear();
     css::uno::Sequence<OUString> aSchemeNames = pColorConfig->GetSchemeNames();
-
-    // insert auto, light, dark themes first
+    for (size_t i = 0; i < aSchemeNames.size(); ++i)
+    {
+        if (aSchemeNames[i] != AUTOMATIC_COLOR_SCHEME)
+            m_xSchemeList->insert(i, aSchemeNames[i], nullptr, nullptr, 
nullptr);
+    }
     m_xSchemeList->insert(0, CuiResId(RID_COLOR_SCHEME_LIBREOFFICE_AUTOMATIC),
                           &AUTOMATIC_COLOR_SCHEME, nullptr, nullptr);
-    m_xSchemeList->insert(1, CuiResId(RID_COLOR_SCHEME_LIBREOFFICE_LIGHT), 
&LIGHT_COLOR_SCHEME,
-                          nullptr, nullptr);
-    m_xSchemeList->insert(2, CuiResId(RID_COLOR_SCHEME_LIBREOFFICE_DARK), 
&DARK_COLOR_SCHEME,
-                          nullptr, nullptr);
 
-    // insert all the custom color schemes
-    for (size_t i = 0; i < aSchemeNames.size(); ++i)
-        if (ThemeColors::IsCustomTheme(aSchemeNames[i]))
-            m_xSchemeList->append_text(aSchemeNames[i]);
-
-    // since this function just loads entries into the list, we don't call
-    // MiscSettings::SetAppColorMode(...) here, and instead do so in the
-    // SchemeChangeHdl callback.
-    if (ThemeColors::IsAutomaticTheme(pColorConfig->GetCurrentSchemeName()))
+    if (pColorConfig->GetCurrentSchemeName() == AUTOMATIC_COLOR_SCHEME)
         m_xSchemeList->set_active_id(AUTOMATIC_COLOR_SCHEME);
-    else if (ThemeColors::IsLightTheme(pColorConfig->GetCurrentSchemeName()))
-        m_xSchemeList->set_active_id(LIGHT_COLOR_SCHEME);
-    else if (ThemeColors::IsDarkTheme(pColorConfig->GetCurrentSchemeName()))
-        m_xSchemeList->set_active_id(DARK_COLOR_SCHEME);
     else
         m_xSchemeList->set_active_text(pColorConfig->GetCurrentSchemeName());
 }
@@ -181,10 +173,30 @@ OUString SvxAppearanceTabPage::GetAllStrings()
 
 bool SvxAppearanceTabPage::FillItemSet(SfxItemSet* /* rSet */)
 {
+    // commit appearance value
+    if (eCurrentAppearanceMode != 
static_cast<Appearance>(MiscSettings::GetAppColorMode()))
+    {
+        
MiscSettings::SetAppColorMode(static_cast<int>(eCurrentAppearanceMode));
+        m_bRestartRequired = true;
+        // for automatic scheme, restart is not required as customizations 
section is disabled
+        if (pColorConfig->GetCurrentSchemeName() == AUTOMATIC_COLOR_SCHEME)
+            UpdateOldAppearance();
+    }
+
     // commit ColorConfig
     if (pColorConfig->IsModified())
         pColorConfig->Commit();
 
+    // commit LibreOfficeTheme, enable it if the current scheme is not 
Automatic
+    if (m_xSchemeList->get_value_changed_from_saved())
+    {
+        bool bIsLibreOfficeThemeEnabled = m_xSchemeList->get_active_id() != 
AUTOMATIC_COLOR_SCHEME;
+        auto pChange(comphelper::ConfigurationChanges::create());
+        
officecfg::Office::Common::Appearance::LibreOfficeTheme::set(bIsLibreOfficeThemeEnabled,
+                                                                     pChange);
+        pChange->commit();
+    }
+
     return true;
 }
 
@@ -197,6 +209,11 @@ void SvxAppearanceTabPage::Reset(const SfxItemSet* /* rSet 
*/)
         
!officecfg::Office::Common::Appearance::ApplicationAppearance::isReadOnly());
     m_xSchemeList->save_value();
 
+    UpdateRemoveBtnState();
+
+    // reset appearance
+    eCurrentAppearanceMode = 
static_cast<Appearance>(MiscSettings::GetAppColorMode());
+
     // reset ColorConfig
     if (pColorConfig)
     {
@@ -218,17 +235,17 @@ IMPL_LINK_NOARG(SvxAppearanceTabPage, ShowInDocumentHdl, 
weld::Toggleable&, void
     pColorConfig->SetColorValue(static_cast<ColorConfigEntry>(nEntry), 
aCurrentEntryColor);
 }
 
-IMPL_LINK_NOARG(SvxAppearanceTabPage, EnableAppThemingHdl, weld::Toggleable&, 
void)
+IMPL_LINK_NOARG(SvxAppearanceTabPage, AppearanceChangeHdl, weld::Toggleable&, 
void)
 {
-    ThemeColors::SetThemeState(m_xEnableAppTheming->get_active() ? 
ThemeState::ENABLED
-                                                                 : 
ThemeState::DISABLED);
-    m_bRestartRequired = true;
-}
+    if (m_xAppearanceSystem->get_state() == TRISTATE_TRUE)
+        eCurrentAppearanceMode = Appearance::SYSTEM;
+    if (m_xAppearanceLight->get_state() == TRISTATE_TRUE)
+        eCurrentAppearanceMode = Appearance::LIGHT;
+    if (m_xAppearanceDark->get_state() == TRISTATE_TRUE)
+        eCurrentAppearanceMode = Appearance::DARK;
+    // set the extension theme on light/dark
 
-IMPL_LINK_NOARG(SvxAppearanceTabPage, UseOnlyWhiteDocBackgroundHdl, 
weld::Toggleable&, void)
-{
-    
ThemeColors::SetUseOnlyWhiteDocBackground(m_xUseOnlyWhiteDocBackground->get_active());
-    m_bRestartRequired = true;
+    UpdateColorDropdown();
 }
 
 IMPL_LINK_NOARG(SvxAppearanceTabPage, ColorEntryChgHdl, weld::ComboBox&, void)
@@ -310,42 +327,16 @@ IMPL_LINK_NOARG(SvxAppearanceTabPage, ColorValueChgHdl, 
ColorListBox&, void)
 
 IMPL_LINK_NOARG(SvxAppearanceTabPage, SchemeChangeHdl, weld::ComboBox&, void)
 {
-    AppearanceMode eMode;
-    OUString sNewScheme;
-
-    if (ThemeColors::IsAutomaticTheme(m_xSchemeList->get_active_id()))
-    {
-        sNewScheme = AUTOMATIC_COLOR_SCHEME;
-        eMode = AppearanceMode::AUTO;
-    }
-    else if (ThemeColors::IsLightTheme(m_xSchemeList->get_active_id()))
-    {
-        sNewScheme = LIGHT_COLOR_SCHEME;
-        eMode = AppearanceMode::LIGHT;
-    }
-    else if (ThemeColors::IsDarkTheme(m_xSchemeList->get_active_id()))
-    {
-        sNewScheme = DARK_COLOR_SCHEME;
-        eMode = AppearanceMode::DARK;
-    }
+    if (m_xSchemeList->get_active_id() == AUTOMATIC_COLOR_SCHEME)
+        pColorConfig->LoadScheme(AUTOMATIC_COLOR_SCHEME);
     else
-    {
-        sNewScheme = m_xSchemeList->get_active_text();
-        // for custom theme, keep appearance to AUTO, doesn't matter for the 
most part,
-        // but if some colors like document colors are not specified, then 
they will be
-        // set as per the OS appearance mode
-        eMode = AppearanceMode::AUTO;
-    }
-
-    // NOTE: LoadScheme must be called after updating the AppearanceMode as 
LoadScheme calls Lode
-    // which loads colors based on the current application appearance.
-    MiscSettings::SetAppColorMode(eMode);
-    pColorConfig->LoadScheme(sNewScheme);
+        pColorConfig->LoadScheme(m_xSchemeList->get_active_text());
 
-    if (m_xSchemeList->get_value_changed_from_saved() && 
!ThemeColors::IsThemeDisabled())
+    if (m_xSchemeList->get_value_changed_from_saved())
         m_bRestartRequired = true;
 
-    UpdateColorDropdown();
+    UpdateControlsState();
+    UpdateRemoveBtnState();
 }
 
 IMPL_LINK_NOARG(SvxAppearanceTabPage, SchemeListToggleHdl, weld::ComboBox&, 
void)
@@ -353,6 +344,12 @@ IMPL_LINK_NOARG(SvxAppearanceTabPage, SchemeListToggleHdl, 
weld::ComboBox&, void
     LoadSchemeList();
 }
 
+IMPL_LINK(SvxAppearanceTabPage, CheckNameHdl_Impl, AbstractSvxNameDialog&, 
rDialog, bool)
+{
+    OUString sName = rDialog.GetName();
+    return !sName.isEmpty() && m_xSchemeList->find_text(sName) == -1;
+}
+
 IMPL_STATIC_LINK_NOARG(SvxAppearanceTabPage, MoreThemesHdl, weld::Button&, 
void)
 {
     css::uno::Sequence<css::beans::PropertyValue> aArgs{ 
comphelper::makePropertyValue(
@@ -360,6 +357,58 @@ IMPL_STATIC_LINK_NOARG(SvxAppearanceTabPage, 
MoreThemesHdl, weld::Button&, void)
     comphelper::dispatchCommand(u".uno:AdditionsDialog"_ustr, aArgs);
 }
 
+IMPL_LINK(SvxAppearanceTabPage, AddRemoveSchemeHdl, weld::Button&, rButton, 
void)
+{
+    if (m_xAddSchemeBtn.get() == &rButton)
+    {
+        OUString sName;
+        SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create();
+        ScopedVclPtr<AbstractSvxNameDialog> 
aNameDlg(pFact->CreateSvxNameDialog(
+            GetFrameWeld(), sName, CuiResId(RID_CUISTR_COLOR_CONFIG_SAVE2)));
+        aNameDlg->SetCheckNameHdl(LINK(this, SvxAppearanceTabPage, 
CheckNameHdl_Impl));
+        aNameDlg->SetText(CuiResId(RID_CUISTR_COLOR_CONFIG_SAVE1));
+        aNameDlg->SetHelpId(HID_OPTIONS_COLORCONFIG_SAVE_SCHEME);
+        aNameDlg->SetCheckNameHdl(LINK(this, SvxAppearanceTabPage, 
CheckNameHdl_Impl));
+        if (RET_OK == aNameDlg->Execute())
+        {
+            sName = aNameDlg->GetName();
+            pColorConfig->AddScheme(sName);
+            m_xSchemeList->append_text(sName);
+            m_xSchemeList->set_active_text(sName);
+            SchemeChangeHdl(*m_xSchemeList);
+
+            ColorConfigValue aValue;
+            aValue.nDarkColor = COL_AUTO;
+            aValue.nLightColor = COL_AUTO;
+
+            for (size_t i = 0; i < WINDOWCOLOR; ++i)
+                pColorConfig->SetColorValue(static_cast<ColorConfigEntry>(i), 
aValue);
+        }
+    }
+    else
+    {
+        DBG_ASSERT(m_xSchemeList->get_count() > 1, "don't delete the last 
scheme");
+        std::unique_ptr<weld::MessageDialog> 
xQuery(Application::CreateMessageDialog(
+            GetFrameWeld(), VclMessageType::Question, VclButtonsType::YesNo,
+            CuiResId(RID_CUISTR_COLOR_CONFIG_DELETE)));
+        xQuery->set_title(CuiResId(RID_CUISTR_COLOR_CONFIG_DELETE_TITLE));
+
+        if (RET_YES == xQuery->run())
+        {
+            OUString sDeleteScheme(m_xSchemeList->get_active_text());
+            m_xSchemeList->remove(m_xSchemeList->get_active());
+            m_xSchemeList->set_active(0);
+            SchemeChangeHdl(*m_xSchemeList);
+            //first select the new scheme and then delete the old one
+            pColorConfig->DeleteScheme(sDeleteScheme);
+        }
+    }
+
+    // disable remove button if only one scheme available
+    // or if the selected theme is AUTOMATIC_COLOR_SCHEME
+    UpdateRemoveBtnState();
+}
+
 IMPL_LINK_NOARG(SvxAppearanceTabPage, ColorImageToggleHdl, weld::Toggleable&, 
void)
 {
     // get the active entry
@@ -400,28 +449,6 @@ IMPL_LINK_NOARG(SvxAppearanceTabPage, BitmapChangeHdl, 
weld::ComboBox&, void)
     m_bRestartRequired = true;
 }
 
-IMPL_LINK_NOARG(SvxAppearanceTabPage, ResetAllBtnHdl, weld::Button&, void)
-{
-    // load default document colors
-    ColorConfigValue aValue;
-    for (size_t i = 0; i < ColorConfigEntryCount; ++i)
-    {
-        aValue.nDarkColor = COL_AUTO;
-        aValue.nLightColor = COL_AUTO;
-        pColorConfig->SetColorValue(static_cast<ColorConfigEntry>(i), aValue);
-    }
-    pColorConfig->Commit();
-
-    // RESET state for themes just prevents the theme colors from being used 
before
-    // they are realoaded from the StyleSettings, please read the comment above
-    // ColorConfig::SetupTheme()'s definition
-    if (!ThemeColors::IsThemeDisabled())
-    {
-        ThemeColors::ResetTheme();
-        m_bRestartRequired = true;
-    }
-}
-
 void SvxAppearanceTabPage::InitThemes()
 {
     // init schemes combobox
@@ -429,14 +456,34 @@ void SvxAppearanceTabPage::InitThemes()
 
     m_xSchemeList->connect_changed(LINK(this, SvxAppearanceTabPage, 
SchemeChangeHdl));
     m_xSchemeList->connect_popup_toggled(LINK(this, SvxAppearanceTabPage, 
SchemeListToggleHdl));
+    m_xAddSchemeBtn->connect_clicked(LINK(this, SvxAppearanceTabPage, 
AddRemoveSchemeHdl));
     m_xMoreThemesBtn->connect_clicked(LINK(this, SvxAppearanceTabPage, 
MoreThemesHdl));
+    m_xRemoveSchemeBtn->connect_clicked(LINK(this, SvxAppearanceTabPage, 
AddRemoveSchemeHdl));
+
+    UpdateRemoveBtnState();
+}
 
-    m_xEnableAppTheming->connect_toggled(LINK(this, SvxAppearanceTabPage, 
EnableAppThemingHdl));
-    m_xEnableAppTheming->set_active(ThemeColors::IsThemeEnabled());
+void SvxAppearanceTabPage::InitAppearance()
+{
+    m_xAppearanceSystem->connect_toggled(LINK(this, SvxAppearanceTabPage, 
AppearanceChangeHdl));
+    m_xAppearanceDark->connect_toggled(LINK(this, SvxAppearanceTabPage, 
AppearanceChangeHdl));
 
-    m_xUseOnlyWhiteDocBackground->connect_toggled(
-        LINK(this, SvxAppearanceTabPage, UseOnlyWhiteDocBackgroundHdl));
-    
m_xUseOnlyWhiteDocBackground->set_active(ThemeColors::UseOnlyWhiteDocBackground());
+    Appearance nAppearance = 
static_cast<Appearance>(MiscSettings::GetAppColorMode());
+    switch (nAppearance)
+    {
+        case Appearance::SYSTEM:
+            m_xAppearanceSystem->set_state(TRISTATE_TRUE);
+            eCurrentAppearanceMode = Appearance::SYSTEM;
+            break;
+        case Appearance::LIGHT:
+            m_xAppearanceLight->set_state(TRISTATE_TRUE);
+            eCurrentAppearanceMode = Appearance::LIGHT;
+            break;
+        case Appearance::DARK:
+            m_xAppearanceDark->set_state(TRISTATE_TRUE);
+            eCurrentAppearanceMode = Appearance::DARK;
+            break;
+    }
 }
 
 void SvxAppearanceTabPage::InitCustomization()
@@ -445,7 +492,6 @@ void SvxAppearanceTabPage::InitCustomization()
     m_xColorChangeBtn->SetSelectHdl(LINK(this, SvxAppearanceTabPage, 
ColorValueChgHdl));
     m_xShowInDocumentChkBtn->connect_toggled(LINK(this, SvxAppearanceTabPage, 
ShowInDocumentHdl));
     m_xBitmapDropDownBtn->connect_changed(LINK(this, SvxAppearanceTabPage, 
BitmapChangeHdl));
-    m_xResetAllBtn->connect_clicked(LINK(this, SvxAppearanceTabPage, 
ResetAllBtnHdl));
 
     m_xColorRadioBtn->connect_toggled(LINK(this, SvxAppearanceTabPage, 
ColorImageToggleHdl));
     m_xStretchedRadioBtn->connect_toggled(
@@ -470,6 +516,14 @@ void SvxAppearanceTabPage::InitCustomization()
     EnableImageControls(false);
 }
 
+// disable remove if only one scheme available or if the selected theme is 
AUTOMATIC_COLOR_SCHEME
+void SvxAppearanceTabPage::UpdateRemoveBtnState()
+{
+    bool bEnableRemoveButton = (m_xSchemeList->get_count() > 1)
+                               && (m_xSchemeList->get_active_id() != 
AUTOMATIC_COLOR_SCHEME);
+    m_xRemoveSchemeBtn->set_sensitive(bEnableRemoveButton);
+}
+
 void SvxAppearanceTabPage::EnableImageControls(bool bEnabled)
 {
     m_xImageRadioBtn->set_sensitive(bEnabled);
@@ -480,6 +534,24 @@ void SvxAppearanceTabPage::EnableImageControls(bool 
bEnabled)
 
 void SvxAppearanceTabPage::UpdateColorDropdown()
 {
+    switch (eCurrentAppearanceMode)
+    {
+        case Appearance::LIGHT:
+            m_xColorLbl->set_label(CuiResId(LIGHT_COLOR_LBL));
+            break;
+        case Appearance::DARK:
+            m_xColorLbl->set_label(CuiResId(DARK_COLOR_LBL));
+            break;
+        case Appearance::SYSTEM:
+        {
+            if (IsDarkModeEnabled())
+                m_xColorLbl->set_label(CuiResId(DARK_COLOR_LBL));
+            else
+                m_xColorLbl->set_label(CuiResId(LIGHT_COLOR_LBL));
+        }
+        break;
+    }
+
     // update color to light/dark
     size_t nEntry = GetActiveEntry();
     const ColorConfigValue& rCurrentEntryColor
@@ -495,6 +567,32 @@ void SvxAppearanceTabPage::UpdateColorDropdown()
         m_xColorChangeBtn->SelectEntry(rCurrentEntryColor.nLightColor);
 }
 
+// if the user changes appearance options for automatic theme, then follow the 
old behaviour
+// and change the document colors to light/dark based on the choice.
+void SvxAppearanceTabPage::UpdateOldAppearance()
+{
+    if (pColorConfig->GetCurrentSchemeName() != AUTOMATIC_COLOR_SCHEME)
+        return;
+
+    ColorConfigValue aValue;
+    bool bIsDarkModeEnabled = IsDarkModeEnabled();
+    for (size_t i = 0; i < WINDOWCOLOR; ++i)
+    {
+        if (bIsDarkModeEnabled)
+            aValue.nDarkColor = 
ColorConfig::GetDefaultColor(static_cast<ColorConfigEntry>(i), 1);
+        else
+            aValue.nLightColor = 
ColorConfig::GetDefaultColor(static_cast<ColorConfigEntry>(i), 0);
+
+        pColorConfig->SetColorValue(static_cast<ColorConfigEntry>(i), aValue);
+    }
+}
+
+bool SvxAppearanceTabPage::IsDarkModeEnabled()
+{
+    return eCurrentAppearanceMode == Appearance::DARK
+           || (eCurrentAppearanceMode == Appearance::SYSTEM && 
MiscSettings::GetUseDarkMode());
+}
+
 void SvxAppearanceTabPage::FillItemsList()
 {
     static const std::map<ColorConfigEntry, OUString> aRegistryEntries
@@ -630,11 +728,9 @@ void SvxAppearanceTabPage::FillItemsList()
                                  
aRegistryEntries.at(static_cast<ColorConfigEntry>(i)));
     m_xColorEntryBtn->append_separator("SeparatorID");
 
-    // don't show UI customization options if theme is disabled
-    if (!ThemeColors::IsThemeDisabled())
-        for (size_t i = WINDOWCOLOR; i <= INACTIVEBORDERCOLOR; ++i)
-            m_xColorEntryBtn->append(OUString(cNames[i].cName),
-                                     
aRegistryEntries.at(static_cast<ColorConfigEntry>(i)));
+    for (size_t i = WINDOWCOLOR; i <= INACTIVEBORDERCOLOR; ++i)
+        m_xColorEntryBtn->append(OUString(cNames[i].cName),
+                                 
aRegistryEntries.at(static_cast<ColorConfigEntry>(i)));
 }
 
 size_t SvxAppearanceTabPage::GetActiveEntry()
diff --git a/cui/source/options/appearance.hxx 
b/cui/source/options/appearance.hxx
index d131a07e63b5..7675d54e3bc4 100644
--- a/cui/source/options/appearance.hxx
+++ b/cui/source/options/appearance.hxx
@@ -33,17 +33,28 @@ using namespace svtools;
 class SvxAppearanceTabPage : public SfxTabPage
 {
 private:
+    enum class Appearance
+    {
+        SYSTEM,
+        LIGHT,
+        DARK,
+    };
+
     bool m_bRestartRequired;
+    Appearance eCurrentAppearanceMode;
     std::unique_ptr<EditableColorConfig> pColorConfig;
 
     std::unique_ptr<weld::ComboBox> m_xSchemeList;
     std::unique_ptr<weld::Button> m_xMoreThemesBtn;
-    std::unique_ptr<weld::CheckButton> m_xEnableAppTheming;
-    std::unique_ptr<weld::CheckButton> m_xUseOnlyWhiteDocBackground;
+    std::unique_ptr<weld::Button> m_xAddSchemeBtn;
+    std::unique_ptr<weld::Button> m_xRemoveSchemeBtn;
+    std::unique_ptr<weld::RadioButton> m_xAppearanceSystem;
+    std::unique_ptr<weld::RadioButton> m_xAppearanceLight;
+    std::unique_ptr<weld::RadioButton> m_xAppearanceDark;
     std::unique_ptr<weld::ComboBox> m_xColorEntryBtn;
     std::unique_ptr<ColorListBox> m_xColorChangeBtn;
+    std::unique_ptr<weld::Label> m_xColorLbl;
     std::unique_ptr<weld::CheckButton> m_xShowInDocumentChkBtn;
-    std::unique_ptr<weld::Button> m_xResetAllBtn;
 
     std::unique_ptr<weld::RadioButton> m_xColorRadioBtn;
     std::unique_ptr<weld::RadioButton> m_xImageRadioBtn;
@@ -52,26 +63,30 @@ private:
 
     std::unique_ptr<weld::ComboBox> m_xBitmapDropDownBtn;
 
+    DECL_LINK(AppearanceChangeHdl, weld::Toggleable&, void);
     DECL_LINK(ColorEntryChgHdl, weld::ComboBox&, void);
     DECL_LINK(ColorValueChgHdl, ColorListBox&, void);
     DECL_LINK(ShowInDocumentHdl, weld::Toggleable&, void);
-    DECL_LINK(EnableAppThemingHdl, weld::Toggleable&, void);
-    DECL_LINK(UseOnlyWhiteDocBackgroundHdl, weld::Toggleable&, void);
     DECL_LINK(SchemeChangeHdl, weld::ComboBox&, void);
     DECL_LINK(SchemeListToggleHdl, weld::ComboBox&, void);
     DECL_STATIC_LINK(SvxAppearanceTabPage, MoreThemesHdl, weld::Button&, void);
+    DECL_LINK(AddRemoveSchemeHdl, weld::Button&, void);
+    DECL_LINK(CheckNameHdl_Impl, AbstractSvxNameDialog&, bool);
     DECL_LINK(ColorImageToggleHdl, weld::Toggleable&, void);
     DECL_LINK(StretchedTiledToggleHdl, weld::Toggleable&, void);
     DECL_LINK(BitmapChangeHdl, weld::ComboBox&, void);
-    DECL_LINK(ResetAllBtnHdl, weld::Button&, void);
 
     void InitThemes();
+    void InitAppearance();
     void InitCustomization();
     void UpdateControlsState();
     void LoadSchemeList();
 
+    void UpdateRemoveBtnState();
     void EnableImageControls(bool bEnabled);
     void UpdateColorDropdown();
+    void UpdateOldAppearance();
+    bool IsDarkModeEnabled();
     void FillItemsList();
     size_t GetActiveEntry();
 
diff --git a/cui/uiconfig/ui/appearance.ui b/cui/uiconfig/ui/appearance.ui
index 09b1eb1d038d..d270b0e862f1 100644
--- a/cui/uiconfig/ui/appearance.ui
+++ b/cui/uiconfig/ui/appearance.ui
@@ -10,22 +10,18 @@
   <object class="GtkBox" id="AppearanceTabPage">
     <property name="visible">True</property>
     <property name="can-focus">False</property>
-    <property name="margin-start">6</property>
-    <property name="margin-end">6</property>
-    <property name="margin-top">6</property>
-    <property name="margin-bottom">6</property>
     <property name="border-width">6</property>
-    <property name="spacing">24</property>
+    <property name="orientation">vertical</property>
+    <property name="spacing">12</property>
     <child>
       <object class="GtkBox">
         <property name="visible">True</property>
         <property name="can-focus">False</property>
-        <property name="orientation">vertical</property>
-        <property name="spacing">6</property>
         <child>
           <object class="GtkFrame" id="libreofficethemes">
             <property name="visible">True</property>
             <property name="can-focus">False</property>
+            <property name="margin-end">12</property>
             <property name="label-xalign">0</property>
             <property name="shadow-type">none</property>
             <child>
@@ -35,12 +31,10 @@
                 <property name="margin-start">12</property>
                 <property name="margin-top">6</property>
                 <property name="orientation">vertical</property>
-                <property name="spacing">3</property>
                 <child>
                   <object class="GtkBox">
                     <property name="visible">True</property>
                     <property name="can-focus">False</property>
-                    <property name="halign">start</property>
                     <property name="spacing">3</property>
                     <child>
                       <object class="GtkComboBoxText" id="scheme">
@@ -76,41 +70,44 @@
                   </packing>
                 </child>
                 <child>
-                  <object class="GtkCheckButton" id="enableapptheming">
-                    <property name="label" translatable="yes" 
context="appearance|enableapptheming">Enable application theming</property>
+                  <object class="GtkButtonBox">
                     <property name="visible">True</property>
-                    <property name="can-focus">True</property>
-                    <property name="receives-default">False</property>
-                    <property name="draw-indicator">True</property>
-                    <child internal-child="accessible">
-                      <object class="AtkObject" 
id="enableapptheming-atkobject">
-                        <property name="AtkObject::accessible-description" 
translatable="yes" context="appearance|extended_tip|enableapptheming">Check to 
enable application theming with extension themes.</property>
+                    <property name="can-focus">False</property>
+                    <property name="margin-top">12</property>
+                    <property name="layout-style">spread</property>
+                    <child>
+                      <object class="GtkButton" id="newschemebtn">
+                        <property name="label" translatable="yes" 
context="appearancetabpage|newschemebtn">New</property>
+                        <property name="visible">True</property>
+                        <property name="can-focus">True</property>
+                        <property name="receives-default">True</property>
+                        <property name="margin-end">3</property>
                       </object>
+                      <packing>
+                        <property name="expand">True</property>
+                        <property name="fill">True</property>
+                        <property name="position">0</property>
+                      </packing>
                     </child>
-                  </object>
-                  <packing>
-                    <property name="expand">False</property>
-                    <property name="fill">True</property>
-                    <property name="position">1</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkCheckButton" 
id="useonlywhitedocbackground">
-                    <property name="label" translatable="yes" 
context="appearance|enableapptheming">Use white document background</property>
-                    <property name="visible">True</property>
-                    <property name="can-focus">True</property>
-                    <property name="receives-default">False</property>
-                    <property name="draw-indicator">True</property>
-                    <child internal-child="accessible">
-                      <object class="AtkObject" 
id="useonlywhitedocbackground-atkobject">
-                        <property name="AtkObject::accessible-description" 
translatable="yes" 
context="appearance|extended_tip|useonlywhitedocbackground">Check to disable 
document color customizations and only use white document colors.</property>
+                    <child>
+                      <object class="GtkButton" id="removeschemebtn">
+                        <property name="label" translatable="yes" 
context="appearancetabpage|removeschemebtn">Remove</property>
+                        <property name="visible">True</property>
+                        <property name="can-focus">True</property>
+                        <property name="receives-default">True</property>
+                        <property name="margin-start">3</property>
                       </object>
+                      <packing>
+                        <property name="expand">True</property>
+                        <property name="fill">True</property>
+                        <property name="position">1</property>
+                      </packing>
                     </child>
                   </object>
                   <packing>
                     <property name="expand">False</property>
                     <property name="fill">True</property>
-                    <property name="position">2</property>
+                    <property name="position">1</property>
                   </packing>
                 </child>
               </object>
@@ -119,7 +116,8 @@
               <object class="GtkLabel" id="libreofficethemeslb">
                 <property name="visible">True</property>
                 <property name="can-focus">False</property>
-                <property name="label" translatable="yes" 
context="appearancetabpage|libreofficethemeslb">%PRODUCTNAME Themes</property>
+                <property name="margin-bottom">6</property>
+                <property name="label" translatable="yes" 
context="appearancetabpage|libreofficethemeslb">LibreOffice Themes</property>
                 <attributes>
                   <attribute name="weight" value="bold"/>
                 </attributes>
@@ -133,35 +131,34 @@
           </packing>
         </child>
         <child>
-          <object class="GtkFrame" id="items">
+          <object class="GtkBox">
             <property name="visible">True</property>
             <property name="can-focus">False</property>
-            <property name="label-xalign">0</property>
-            <property name="shadow-type">none</property>
+            <property name="orientation">vertical</property>
             <child>
-              <object class="GtkBox">
+              <object class="GtkFrame" id="options">
                 <property name="visible">True</property>
                 <property name="can-focus">False</property>
                 <property name="margin-start">12</property>
-                <property name="margin-start">12</property>
-                <property name="margin-top">6</property>
-                <property name="orientation">vertical</property>
-                <property name="spacing">3</property>
+                <property name="margin-bottom">6</property>
+                <property name="label-xalign">0</property>
+                <property name="shadow-type">none</property>
                 <child>
-                  <!-- n-columns=2 n-rows=5 -->
+                  <!-- n-columns=2 n-rows=1 -->
                   <object class="GtkGrid">
                     <property name="visible">True</property>
                     <property name="can-focus">False</property>
-                    <property name="row-spacing">3</property>
-                    <property name="column-spacing">6</property>
+                    <property name="margin-start">12</property>
+                    <property name="margin-top">6</property>
                     <child>
-                      <object class="GtkLabel" id="itemslb">
+                      <object class="GtkLabel" id="appearancelb">
                         <property name="visible">True</property>
                         <property name="can-focus">False</property>
-                        <property name="halign">start</property>
-                        <property name="label" translatable="yes" 
context="appearancetabpage|items">Items: </property>
+                        <property name="valign">start</property>
+                        <property name="margin-end">6</property>
+                        <property name="label" translatable="yes" 
context="appearancetabpage|appearancelb">Appearance:</property>
                         <property name="use-underline">True</property>
-                        <property 
name="mnemonic-widget">registrydropdown</property>
+                        <property name="mnemonic-widget">system</property>
                       </object>
                       <packing>
                         <property name="left-attach">0</property>
@@ -169,16 +166,54 @@
                       </packing>
                     </child>
                     <child>
-                      <object class="GtkComboBoxText" id="registrydropdown">
+                      <object class="GtkBox">
                         <property name="visible">True</property>
                         <property name="can-focus">False</property>
-                        <property name="halign">start</property>
-                        <property name="hexpand">False</property>
-                        <child internal-child="accessible">
-                          <object class="AtkObject" 
id="registrydropdown-atkobject">
-                            <property name="AtkObject::accessible-name" 
translatable="yes" 
context="appearancetabpage|registrycolorslist">registrycolorslist</property>
-                            <property name="AtkObject::accessible-description" 
translatable="yes" context="appearance|extended_tip|registrydropdown">Select 
the item to customize color or render with an image.</property>
+                        <property name="orientation">vertical</property>
+                        <child>
+                          <object class="GtkRadioButton" id="system">
+                            <property name="label" translatable="yes" 
context="appearancetabpage|system">System</property>
+                            <property name="visible">True</property>
+                            <property name="can-focus">True</property>
+                            <property name="receives-default">False</property>
+                            <property name="active">True</property>
+                            <property name="draw-indicator">True</property>
+                          </object>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">True</property>
+                            <property name="position">0</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkRadioButton" id="light">
+                            <property name="label" translatable="yes" 
context="appearancetabpage|light">Light</property>
+                            <property name="visible">True</property>
+                            <property name="can-focus">True</property>
+                            <property name="receives-default">False</property>
+                            <property name="draw-indicator">True</property>
+                            <property name="group">system</property>
+                          </object>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">True</property>
+                            <property name="position">1</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkRadioButton" id="dark">
+                            <property name="label" translatable="yes" 
context="appearancetabpage|dark">Dark</property>
+                            <property name="visible">True</property>
+                            <property name="can-focus">True</property>
+                            <property name="receives-default">False</property>
+                            <property name="draw-indicator">True</property>
+                            <property name="group">system</property>
                           </object>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">True</property>
+                            <property name="position">2</property>
+                          </packing>
                         </child>
                       </object>
                       <packing>
@@ -186,91 +221,156 @@
                         <property name="top-attach">0</property>
                       </packing>
                     </child>
+                  </object>
+                </child>
+                <child type="label">
+                  <object class="GtkLabel" id="optionslb">
+                    <property name="visible">True</property>
+                    <property name="can-focus">False</property>
+                    <property name="label" translatable="yes" 
context="appearancetabpage|optionslb">Options</property>
+                    <attributes>
+                      <attribute name="weight" value="bold"/>
+                    </attributes>
+                  </object>
+                </child>
+              </object>
+              <packing>
+                <property name="expand">True</property>
+                <property name="fill">True</property>
+                <property name="position">0</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkFrame" id="items">
+                <property name="visible">True</property>
+                <property name="can-focus">False</property>
+                <property name="margin-start">12</property>
+                <property name="margin-top">6</property>
+                <property name="label-xalign">0</property>
+                <property name="shadow-type">none</property>
+                <child>
+                  <object class="GtkBox">
+                    <property name="visible">True</property>
+                    <property name="can-focus">False</property>
+                    <property name="margin-start">13</property>
+                    <property name="margin-top">6</property>
+                    <property name="orientation">vertical</property>
+                    <property name="spacing">3</property>
                     <child>
-                      <object class="GtkRadioButton" id="colorradiobtn">
-                        <property name="label" translatable="yes" 
context="appearancetabpage|colorradiobtn">Color:</property>
+                      <!-- n-columns=2 n-rows=7 -->
+                      <object class="GtkGrid">
                         <property name="visible">True</property>
-                        <property name="can-focus">True</property>
-                        <property name="receives-default">False</property>
-                        <property name="halign">start</property>
-                        <property name="draw-indicator">True</property>
-                        <property name="group">imageradiobtn</property>
-                        <child internal-child="accessible">
-                          <object class="AtkObject" 
id="colorradiobtn-atkobject">
-                            <property name="AtkObject::accessible-description" 
translatable="yes" context="appearance|extended_tip|colorradiobtn">Apply color 
to the item.</property>
+                        <property name="can-focus">False</property>
+                        <property name="row-spacing">3</property>
+                        <property name="column-spacing">6</property>
+                        <child>
+                          <object class="GtkLabel" id="itemslb">
+                            <property name="visible">True</property>
+                            <property name="can-focus">False</property>
+                            <property name="halign">start</property>
+                            <property name="label" translatable="yes" 
context="appearancetabpage|items">Items: </property>
+                            <property name="use-underline">True</property>
+                            <property 
name="mnemonic-widget">registrydropdown</property>
                           </object>
+                          <packing>
+                            <property name="left-attach">0</property>
+                            <property name="top-attach">0</property>
+                          </packing>
                         </child>
-                      </object>
-                      <packing>
-                        <property name="left-attach">0</property>
-                        <property name="top-attach">1</property>
-                      </packing>
-                    </child>
-                    <child>
-                      <object class="GtkMenuButton" id="colorsdropdownbtn">
-                        <property name="visible">True</property>
-                        <property name="can-focus">True</property>
-                        <property name="focus-on-click">False</property>
-                        <property name="receives-default">True</property>
-                        <property name="halign">start</property>
-                        <property name="draw-indicator">True</property>
                         <child>
-                          <placeholder/>
+                          <object class="GtkComboBoxText" 
id="registrydropdown">
+                            <property name="visible">True</property>
+                            <property name="can-focus">False</property>
+                            <property name="halign">start</property>
+                            <property name="hexpand">False</property>
+                            <child internal-child="accessible">
+                              <object class="AtkObject" 
id="registrydropdown-atkobject">
+                                <property name="AtkObject::accessible-name" 
translatable="yes" 
context="appearancetabpage|registrycolorslist">registrycolorslist</property>
+                              </object>
+                            </child>
+                          </object>
+                          <packing>
+                            <property name="left-attach">1</property>
+                            <property name="top-attach">0</property>
+                          </packing>
                         </child>
-                        <child internal-child="accessible">
-                          <object class="AtkObject" 
id="colorsdropdownbtn-atkobject">
-                            <property name="AtkObject::accessible-description" 
translatable="yes" context="appearance|extended_tip|colorsdropdownbtn">Select 
the color of the item.</property>
+                        <child>
+                          <object class="GtkRadioButton" id="colorradiobtn">
+                            <property name="label" translatable="yes" 
context="appearancetabpage|colorradiobtn">Color:</property>
+                            <property name="visible">True</property>
+                            <property name="can-focus">True</property>
+                            <property name="receives-default">False</property>
+                            <property name="halign">start</property>
+                            <property name="active">True</property>
+                            <property name="draw-indicator">True</property>
+                            <property name="group">imageradiobtn</property>
                           </object>
+                          <packing>
+                            <property name="left-attach">0</property>
+                            <property name="top-attach">1</property>
+                          </packing>
                         </child>
-                      </object>
-                      <packing>
-                        <property name="left-attach">1</property>
-                        <property name="top-attach">1</property>
-                      </packing>
-                    </child>
-                    <child>
-                      <object class="GtkCheckButton" id="showindocumentchkbtn">
-                        <property name="label" translatable="yes" 
context="appearancetabpage|showindocumentchkbtn">Show in Document</property>
-                        <property name="visible">True</property>
-                        <property name="can-focus">True</property>
-                        <property name="receives-default">False</property>
-                        <property name="draw-indicator">True</property>
-                        <child internal-child="accessible">
-                          <object class="AtkObject" 
id="showindocumentchkbtn-atkobject">
-                            <property name="AtkObject::accessible-description" 
translatable="yes" 
context="appearance|extended_tip|showindocumentchkbtn">Immediately display the 
color choice in the document.</property>
+                        <child>
+                          <object class="GtkLabel" id="colorlbl">
+                            <property name="visible">True</property>
+                            <property name="can-focus">False</property>
+                            <property name="halign">start</property>
+                            <property name="margin-start">18</property>
+                            <property name="label" translatable="no" 
context="appearancetabpage|colorlbl">colorlbl</property>
+                            <property name="use-underline">True</property>
+                            <property 
name="mnemonic-widget">colorsdropdownbtn</property>
                           </object>
+                          <packing>
+                            <property name="left-attach">0</property>
+                            <property name="top-attach">2</property>
+                          </packing>
                         </child>
-                      </object>
-                      <packing>
-                        <property name="left-attach">1</property>
-                        <property name="top-attach">2</property>
-                      </packing>
-                    </child>
-                    <child>
-                      <object class="GtkRadioButton" id="imageradiobtn">
-                        <property name="label" translatable="yes" 
context="appearancetabpage|imageradiobtn">Image:</property>
-                        <property name="visible">True</property>
-                        <property name="can-focus">True</property>
-                        <property name="receives-default">False</property>
-                        <property name="active">True</property>
-                        <property name="draw-indicator">True</property>
-                        <child internal-child="accessible">
-                          <object class="AtkObject" 
id="imageradiobtn-atkobject">
-                            <property name="AtkObject::accessible-description" 
translatable="yes" context="appearance|extended_tip|imageradiobtn">Apply an 
image to the item</property>
+                        <child>
+                          <object class="GtkMenuButton" id="colorsdropdownbtn">
+                            <property name="label" translatable="no" 
context="appearancetabpage|colorsdropdownbtn"></property>
+                            <property name="visible">True</property>
+                            <property name="can-focus">True</property>
+                            <property name="focus-on-click">False</property>
+                            <property name="receives-default">True</property>
+                            <property name="halign">start</property>
+                            <property name="draw-indicator">True</property>
+                            <property name="label" 
translatable="no"></property>
+                            <child>
+                              <placeholder/>
+                            </child>
                           </object>
+                          <packing>
+                            <property name="left-attach">1</property>
+                            <property name="top-attach">2</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkCheckButton" 
id="showindocumentchkbtn">
+                            <property name="label" translatable="yes" 
context="appearancetabpage|showindocumentchkbtn">Show in Document</property>
+                            <property name="visible">True</property>
+                            <property name="can-focus">True</property>
+                            <property name="receives-default">False</property>
+                            <property name="draw-indicator">True</property>
+                          </object>
+                          <packing>
+                            <property name="left-attach">1</property>
+                            <property name="top-attach">3</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkRadioButton" id="imageradiobtn">
+                            <property name="label" translatable="yes" 
context="appearancetabpage|imageradiobtn">Image:</property>
+                            <property name="visible">True</property>
+                            <property name="can-focus">True</property>
+                            <property name="receives-default">False</property>
+                            <property name="active">True</property>
+                            <property name="draw-indicator">True</property>
+                          </object>
+                          <packing>
+                            <property name="left-attach">0</property>
+                            <property name="top-attach">4</property>
+                          </packing>
                         </child>
-                      </object>
-                      <packing>
-                        <property name="left-attach">0</property>
-                        <property name="top-attach">3</property>
-                      </packing>
-                    </child>
-                    <child>
-                      <object class="GtkBox">
-                        <property name="visible">True</property>
-                        <property name="can-focus">False</property>
-                        <property name="halign">start</property>
-                        <property name="spacing">3</property>
                         <child>
                           <object class="GtkComboBoxText" id="bitmapdropdown">
                             <property name="visible">True</property>
@@ -279,21 +379,18 @@
                             <child internal-child="accessible">
                               <object class="AtkObject" 
id="bitmapdropdown-atkobject">
                                 <property name="AtkObject::accessible-name" 
translatable="yes" 
context="appearancetabpage|bitmapdropdown">bitmapdropdown</property>
-                                <property 
name="AtkObject::accessible-description" translatable="yes" 
context="appearance|extended_tip|bitmapdropdown">Select the image for the item, 
if supported.</property>
                               </object>
                             </child>
                           </object>
                           <packing>
-                            <property name="expand">False</property>
-                            <property name="fill">True</property>
-                            <property name="position">0</property>
+                            <property name="left-attach">1</property>
+                            <property name="top-attach">5</property>
                           </packing>
                         </child>
                         <child>
                           <object class="GtkBox">
                             <property name="visible">True</property>
                             <property name="can-focus">False</property>
-                            <property name="spacing">3</property>
                             <child>
                               <object class="GtkRadioButton" 
id="stretchedradiobtn">
                                 <property name="label" translatable="yes" 
context="appearancetabpage|stretchedradiobtn">Stretched</property>
@@ -302,11 +399,6 @@
                                 <property 
name="receives-default">False</property>
                                 <property name="draw-indicator">True</property>
                                 <property name="group">tiledradiobtn</property>
-                                <child internal-child="accessible">
-                                  <object class="AtkObject" 
id="stretchedradiobtn-atkobject">
-                                    <property 
name="AtkObject::accessible-description" translatable="yes" 
context="appearance|extended_tip|stretchedradiobtn">Stretches the image to fill 
the area of the item.</property>
-                                  </object>
-                                </child>
                               </object>
                               <packing>
                                 <property name="expand">False</property>
@@ -322,11 +414,6 @@
                                 <property 
name="receives-default">False</property>
                                 <property name="active">True</property>
                                 <property name="draw-indicator">True</property>
-                                <child internal-child="accessible">
-                                  <object class="AtkObject" 
id="tiledradiobtn-atkobject">
-                                    <property 
name="AtkObject::accessible-description" translatable="yes" 
context="appearance|extended_tip|tiledradiobtn">Tiles the image to fill the 
area of the item.</property>
-                                  </object>
-                                </child>
                               </object>
                               <packing>
                                 <property name="expand">False</property>
@@ -336,53 +423,50 @@
                             </child>
                           </object>
                           <packing>
-                            <property name="expand">False</property>
-                            <property name="fill">True</property>
-                            <property name="position">1</property>
+                            <property name="left-attach">1</property>
+                            <property name="top-attach">6</property>
                           </packing>
                         </child>
+                        <child>
+                          <placeholder/>
+                        </child>
+                        <child>
+                          <placeholder/>
+                        </child>
+                        <child>
+                          <placeholder/>
+                        </child>
+                        <child>
+                          <placeholder/>
+                        </child>
+                        <child>
+                          <placeholder/>
+                        </child>
                       </object>
                       <packing>
-                        <property name="left-attach">1</property>
-                        <property name="top-attach">3</property>
-                      </packing>
-                    </child>
-                    <child>
-                      <object class="GtkButton" id="resetallbtn">
-                        <property name="label" translatable="yes" 
context="appearancetabpage|resetallbtn">Reset All</property>
-                        <property name="visible">True</property>
-                        <property name="can-focus">True</property>
-                        <property name="receives-default">True</property>
-                      </object>
-                      <packing>
-                        <property name="left-attach">0</property>
-                        <property name="top-attach">4</property>
+                        <property name="expand">False</property>
+                        <property name="fill">True</property>
+                        <property name="position">0</property>
                       </packing>
                     </child>
-                    <child>
-                      <placeholder/>
-                    </child>
-                    <child>
-                      <placeholder/>
-                    </child>
                   </object>
-                  <packing>
-                    <property name="expand">False</property>
-                    <property name="fill">True</property>
-                    <property name="position">0</property>
-                  </packing>
+                </child>
+                <child type="label">
+                  <object class="GtkLabel" id="customizationslb">
+                    <property name="visible">True</property>
+                    <property name="can-focus">False</property>
+                    <property name="label" translatable="yes" 
context="appearancetabpage|customizationslb">Customizations</property>
+                    <attributes>
+                      <attribute name="weight" value="bold"/>
+                    </attributes>
+                  </object>
                 </child>
               </object>
-            </child>
-            <child type="label">
-              <object class="GtkLabel" id="customizationslb">
-                <property name="visible">True</property>
-                <property name="can-focus">False</property>
-                <property name="label" translatable="yes" 
context="appearancetabpage|customizationslb">Customizations</property>
-                <attributes>
-                  <attribute name="weight" value="bold"/>
-                </attributes>
-              </object>
+              <packing>
+                <property name="expand">True</property>
+                <property name="fill">True</property>
+                <property name="position">1</property>
+              </packing>
             </child>
           </object>
           <packing>
diff --git a/include/svtools/colorcfg.hxx b/include/svtools/colorcfg.hxx
index 43698ff529f6..40417e507a0c 100644
--- a/include/svtools/colorcfg.hxx
+++ b/include/svtools/colorcfg.hxx
@@ -131,8 +131,6 @@ enum ColorConfigEntry : int
 };
 
 constexpr OUString AUTOMATIC_COLOR_SCHEME = 
u"COLOR_SCHEME_LIBREOFFICE_AUTOMATIC"_ustr;
-constexpr OUString LIGHT_COLOR_SCHEME = u"COLOR_SCHEME_LIBREOFFICE_LIGHT"_ustr;
-constexpr OUString DARK_COLOR_SCHEME = u"COLOR_SCHEME_LIBREOFFICE_DARK"_ustr;
 constexpr size_t THEME_APPLICATION_COLORS_COUNT = ColorConfigEntryCount - 
WINDOWCOLOR;
 
 namespace {
diff --git a/include/vcl/settings.hxx b/include/vcl/settings.hxx
index ec6249f7ffe7..4c4f77e31c50 100644
--- a/include/vcl/settings.hxx
+++ b/include/vcl/settings.hxx
@@ -23,7 +23,6 @@
 #include <config_options.h>
 
 #include <vcl/dllapi.h>
-#include <vcl/themecolors.hxx>
 #include <tools/color.hxx>
 #include <tools/gen.hxx>
 #include <o3tl/cow_wrapper.hxx>
@@ -231,9 +230,6 @@ public:
 
     SAL_DLLPRIVATE void             Set3DColors( const Color& rColor );
 
-    void                            SetSystemColorsLoaded( bool bLoaded );
-    bool                            GetSystemColorsLoaded() const;
-
     void                            SetFaceColor( const Color& rColor );
     const Color&                    GetFaceColor() const;
 
@@ -258,7 +254,7 @@ public:
     const Color&                    GetDarkShadowColor() const;
 
     void                            SetDefaultButtonTextColor( const Color& 
rColor );
-    const Color&                    GetDefaultButtonTextColor() const;
+    SAL_DLLPRIVATE const Color&     GetDefaultButtonTextColor() const;
 
     void                            SetButtonTextColor( const Color& rColor );
     const Color&                    GetButtonTextColor() const;
@@ -390,7 +386,7 @@ public:
     const Color&                    GetMenuBarColor() const;
 
     void                            SetMenuBarRolloverColor( const Color& 
rColor );
-    const Color&                    GetMenuBarRolloverColor() const;
+    SAL_DLLPRIVATE const Color&     GetMenuBarRolloverColor() const;
 
     void                            SetMenuBorderColor( const Color& rColor );
     const Color&                    GetMenuBorderColor() const;
@@ -402,7 +398,7 @@ public:
     const Color&                    GetMenuBarTextColor() const;
 
     void                            SetMenuBarRolloverTextColor( const Color& 
rColor );
-    const Color&                    GetMenuBarRolloverTextColor() const;
+    SAL_DLLPRIVATE const Color&     GetMenuBarRolloverTextColor() const;
 
     void                            SetMenuBarHighlightTextColor( const Color& 
rColor );
     const Color&                    GetMenuBarHighlightTextColor() const;
@@ -673,13 +669,13 @@ public:
     bool                            GetDisablePrinting() const;
     void                            SetEnableLocalizedDecimalSep( bool bEnable 
);
     bool                            GetEnableLocalizedDecimalSep() const;
-
-    static void                     SetDarkMode(AppearanceMode nMode);
-    static AppearanceMode           GetDarkMode();
+    // 0 auto, 1 light, 2, dark
+    static void                     SetDarkMode(int nMode);
+    static int                      GetDarkMode();
     // return if dark mode is active, resolving 'auto' to dark (true) or light 
(false)
     static bool                     GetUseDarkMode();
-    static void                     SetAppColorMode(AppearanceMode nMode);
-    static AppearanceMode           GetAppColorMode();
+    static void                     SetAppColorMode(int nMode);
+    static int                      GetAppColorMode();
     // return true if system preferences are set to use reduced animation
     static bool                     GetUseReducedAnimation();
     static bool                     IsAnimatedGraphicAllowed();
diff --git a/include/vcl/themecolors.hxx b/include/vcl/themecolors.hxx
index 9e04f40a5f54..80f56db5e0e4 100644
--- a/include/vcl/themecolors.hxx
+++ b/include/vcl/themecolors.hxx
@@ -11,79 +11,23 @@
 #include <vcl/dllapi.h>
 #include <svtools/colorcfg.hxx>
 
-/* ThemeState represents registry values for "LibreOfficeTheme" enumeration
- * in officecfg/registry/schema/org/openoffice/Office/Common.xcs, which means
- * that the associations here have a meaning. Please don't change it. */
-enum class ThemeState
-{
-    DISABLED = 0,
-    ENABLED = 1,
-    RESET = 2,
-};
-
-/*
-  AUTO          app colors follow os, light doc colors (default)
-  LIGHT         app colors follow os, light doc colors
-  DARK          app colors follow os, dark  doc colors
-  COUNT         app color modes count
-*/
-enum class AppearanceMode
-{
-    AUTO = 0,
-    LIGHT = 1,
-    DARK = 2,
-    COUNT,
-};
-
 class VCL_DLLPUBLIC ThemeColors
 {
     ThemeColors() {}
-    static bool m_bIsThemeCached;
+    static bool m_bIsThemeLoaded;
     static ThemeColors m_aThemeColors;
 
 public:
     static ThemeColors& GetThemeColors() { return m_aThemeColors; }
     static void SetThemeColors(const ThemeColors& rThemeColors) { 
m_aThemeColors = rThemeColors; }
 
-    static bool IsThemeCached() { return m_bIsThemeCached; }
-    static void SetThemeCached(bool bCached) { m_bIsThemeCached = bCached; }
+    static bool IsThemeLoaded() { return m_bIsThemeLoaded; }
+    static void SetThemeLoaded(bool bLoaded) { m_bIsThemeLoaded = bLoaded; }
     static bool IsAutomaticTheme(std::u16string_view rThemeName)
     {
         return rThemeName == svtools::AUTOMATIC_COLOR_SCHEME;
     }
 
-    static bool IsLightTheme(std::u16string_view rThemeName)
-    {
-        return rThemeName == svtools::LIGHT_COLOR_SCHEME;
-    }
-
-    static bool IsDarkTheme(std::u16string_view rThemeName)
-    {
-        return rThemeName == svtools::DARK_COLOR_SCHEME;
-    }
-
-    static bool IsCustomTheme(std::u16string_view rThemeName)
-    {
-        return !IsAutomaticTheme(rThemeName) && !IsLightTheme(rThemeName)
-               && !IsDarkTheme(rThemeName);
-    }
-
-    static ThemeState GetThemeState();
-    static void SetThemeState(ThemeState eState);
-
-    static bool IsThemeDisabled() { return GetThemeState() == 
ThemeState::DISABLED; };
-    static bool IsThemeEnabled() { return GetThemeState() == 
ThemeState::ENABLED; };
-    static bool IsThemeReset() { return GetThemeState() == ThemeState::RESET; }
-    static void ResetTheme() { SetThemeState(ThemeState::RESET); }
-
-    static bool UseOnlyWhiteDocBackground();
-    static void SetUseOnlyWhiteDocBackground(bool bFlag);
-
-    // !IsThemeCached means that the ThemeColors object doesn't have the 
colors from the registry yet.
-    // IsThemeReset means that the user pressed the Reset All  button and the 
UI colors in the registry
-    //      are not valid anymore => read from the system again
-    static bool VclPluginCanUseThemeColors() { return IsThemeCached() && 
!IsThemeReset(); };
-
     void SetWindowColor(const Color& rColor) { m_aWindowColor = rColor; }
     void SetWindowTextColor(const Color& rColor) { m_aWindowTextColor = 
rColor; }
     void SetBaseColor(const Color& rColor) { m_aBaseColor = rColor; }
diff --git a/officecfg/registry/data/org/openoffice/Office/UI.xcu 
b/officecfg/registry/data/org/openoffice/Office/UI.xcu
index 808d77be34ee..4524acda923b 100644
--- a/officecfg/registry/data/org/openoffice/Office/UI.xcu
+++ b/officecfg/registry/data/org/openoffice/Office/UI.xcu
@@ -915,1552 +915,6 @@
           </prop>
         </node>
       </node>
-      <node oor:name="COLOR_SCHEME_LIBREOFFICE_LIGHT" oor:op="replace">
-        <!-- Group_General -->
-        <node oor:name="DocColor">
-          <prop oor:name="Light">
-            <value xsi:nil="true"/>
-          </prop>
-          <prop oor:name="Dark">
-            <value xsi:nil="true"/>
-          </prop>
-        </node>
-        <node oor:name="DocBoundaries">
-          <prop oor:name="Light">
-            <value xsi:nil="true"/>
-          </prop>
-          <prop oor:name="Dark">
-            <value xsi:nil="true"/>
-          </prop>
-        </node>
-        <node oor:name="AppBackground">
-          <prop oor:name="Light">
-            <value xsi:nil="true"/>
-          </prop>
-          <prop oor:name="Dark">
-            <value xsi:nil="true"/>
-          </prop>
-          <prop oor:name="BackgroundType">
-            <value xsi:nil="true"/>
-          </prop>
-          <prop oor:name="Bitmap">
-            <value xsi:nil="true"/>
-          </prop>
-        </node>
-        <node oor:name="TableBoundaries">
-          <prop oor:name="Light">
-            <value xsi:nil="true"/>
-          </prop>
-          <prop oor:name="Dark">
-            <value xsi:nil="true"/>
-          </prop>
-        </node>
-        <node oor:name="FontColor">
-          <prop oor:name="Light">
-            <value xsi:nil="true"/>
-          </prop>
-          <prop oor:name="Dark">
-            <value xsi:nil="true"/>
-          </prop>
-        </node>
-        <node oor:name="Links">
-          <prop oor:name="IsVisible">
-            <value>false</value>
-          </prop>
-          <prop oor:name="Light">
-            <value xsi:nil="true"/>
-          </prop>
-          <prop oor:name="Dark">
-            <value xsi:nil="true"/>
-          </prop>
-        </node>
-        <node oor:name="LinksVisited">
-          <prop oor:name="IsVisible">
-            <value>false</value>
-          </prop>
-          <prop oor:name="Light">
-            <value xsi:nil="true"/>
-          </prop>
-          <prop oor:name="Dark">
-            <value xsi:nil="true"/>
-          </prop>
-        </node>
-        <node oor:name="Spell">
-          <prop oor:name="Light">
-            <value xsi:nil="true"/>
-          </prop>
-          <prop oor:name="Dark">
-            <value xsi:nil="true"/>
-          </prop>
-        </node>
-        <node oor:name="Grammar">
-          <prop oor:name="Light">
-            <value xsi:nil="true"/>
-          </prop>
-          <prop oor:name="Dark">
-            <value xsi:nil="true"/>
-          </prop>
-        </node>
-        <node oor:name="SmartTags">
-          <prop oor:name="Light">
-            <value xsi:nil="true"/>
-          </prop>
-          <prop oor:name="Dark">
-            <value xsi:nil="true"/>
-          </prop>
-        </node>
-        <node oor:name="Shadow">
-          <prop oor:name="IsVisible">
-            <value>true</value>
-          </prop>
-          <prop oor:name="Light">
-            <value xsi:nil="true"/>
-          </prop>
-          <prop oor:name="Dark">
-            <value xsi:nil="true"/>
-          </prop>
-        </node>
-        <node oor:name="WriterTextGrid">
-          <prop oor:name="Light">
-            <value xsi:nil="true"/>
-          </prop>
-          <prop oor:name="Dark">
-            <value xsi:nil="true"/>
-          </prop>
-        </node>
-        <node oor:name="WriterFieldShadings">
-          <prop oor:name="IsVisible">
-            <value>true</value>
-          </prop>
-          <prop oor:name="Light">
-            <value xsi:nil="true"/>
-          </prop>
-          <prop oor:name="Dark">
-            <value xsi:nil="true"/>
-          </prop>
-        </node>
-        <node oor:name="WriterIdxShadings">
-          <prop oor:name="IsVisible">
-            <value>true</value>
-          </prop>
-          <prop oor:name="Light">
-            <value xsi:nil="true"/>
-          </prop>
-          <prop oor:name="Dark">
-            <value xsi:nil="true"/>
-          </prop>
-        </node>
-        <node oor:name="WriterDirectCursor">
-          <prop oor:name="IsVisible">
-            <value>true</value>
-          </prop>
-          <prop oor:name="Light">
-            <value xsi:nil="true"/>
-          </prop>
-          <prop oor:name="Dark">
-            <value xsi:nil="true"/>
-          </prop>
-        </node>
-        <node oor:name="WriterScriptIndicator">
-          <prop oor:name="Light">
-            <value xsi:nil="true"/>
-          </prop>
-          <prop oor:name="Dark">
-            <value xsi:nil="true"/>
-          </prop>
-        </node>
-        <node oor:name="WriterSectionBoundaries">
-          <prop oor:name="Light">
-            <value xsi:nil="true"/>
-          </prop>
-          <prop oor:name="Dark">
-            <value xsi:nil="true"/>
-          </prop>
-        </node>
-        <node oor:name="WriterHeaderFooterMark">
-          <prop oor:name="Light">
-            <value xsi:nil="true"/>
-          </prop>
-          <prop oor:name="Dark">
-            <value xsi:nil="true"/>
-          </prop>
-        </node>
-        <node oor:name="WriterPageBreaks">
-          <prop oor:name="Light">
-            <value xsi:nil="true"/>
-          </prop>
-          <prop oor:name="Dark">
-            <value xsi:nil="true"/>
-          </prop>
-        </node>
-        <node oor:name="WriterNonPrintChars">
-          <prop oor:name="Light">
-            <value xsi:nil="true"/>
-          </prop>
-          <prop oor:name="Dark">
-            <value xsi:nil="true"/>
-          </prop>
-        </node>
-        <node oor:name="HTMLSGML">
-          <prop oor:name="Light">
-            <value xsi:nil="true"/>
-          </prop>
-          <prop oor:name="Dark">
-            <value xsi:nil="true"/>
-          </prop>
-        </node>
-        <node oor:name="HTMLComment">
-          <prop oor:name="Light">
-            <value xsi:nil="true"/>
-          </prop>
-          <prop oor:name="Dark">
-            <value xsi:nil="true"/>
-          </prop>
-        </node>
-        <node oor:name="HTMLKeyword">
-          <prop oor:name="Light">
-            <value xsi:nil="true"/>
-          </prop>
-          <prop oor:name="Dark">
-            <value xsi:nil="true"/>
-          </prop>
-        </node>
-        <node oor:name="HTMLUnknown">
-          <prop oor:name="Light">
-            <value xsi:nil="true"/>
-          </prop>
-          <prop oor:name="Dark">
-            <value xsi:nil="true"/>
-          </prop>
-        </node>
-        <node oor:name="CalcGrid">
-          <prop oor:name="Light">
-            <value xsi:nil="true"/>
-          </prop>
-          <prop oor:name="Dark">
-            <value xsi:nil="true"/>
-          </prop>
-        </node>
-        <node oor:name="CalcCellFocus">
-          <prop oor:name="Light">
-            <value xsi:nil="true"/>
-          </prop>
-          <prop oor:name="Dark">
-            <value xsi:nil="true"/>
-          </prop>
-        </node>
-        <node oor:name="CalcPageBreak">
-          <prop oor:name="Light">
-            <value xsi:nil="true"/>
-          </prop>
-          <prop oor:name="Dark">
-            <value xsi:nil="true"/>
-          </prop>
-        </node>
-        <node oor:name="CalcPageBreakManual">
-          <prop oor:name="Light">
-            <value xsi:nil="true"/>
-          </prop>
-          <prop oor:name="Dark">
-            <value xsi:nil="true"/>
-          </prop>
-        </node>
-        <node oor:name="CalcPageBreakAutomatic">
-          <prop oor:name="Light">
-            <value xsi:nil="true"/>
-          </prop>
-          <prop oor:name="Dark">
-            <value xsi:nil="true"/>
-          </prop>
-        </node>
-        <node oor:name="CalcHiddenColRow">
-          <prop oor:name="IsVisible">
-            <value>false</value>
-          </prop>
-          <prop oor:name="Light">
-            <value xsi:nil="true"/>
-          </prop>
-          <prop oor:name="Dark">
-            <value xsi:nil="true"/>
-          </prop>
-        </node>
-        <node oor:name="CalcTextOverflow">
-          <prop oor:name="IsVisible">
-            <value>true</value>
-          </prop>
-          <prop oor:name="Light">
-            <value xsi:nil="true"/>
-          </prop>
-          <prop oor:name="Dark">
-            <value xsi:nil="true"/>
-          </prop>
-        </node>
-        <node oor:name="CalcComments">
-          <prop oor:name="Light">
-            <value xsi:nil="true"/>
-          </prop>
-          <prop oor:name="Dark">
-            <value xsi:nil="true"/>
-          </prop>
-        </node>
-        <node oor:name="CalcDetective">
-          <prop oor:name="Light">
-            <value xsi:nil="true"/>
-          </prop>
-          <prop oor:name="Dark">
-            <value xsi:nil="true"/>
-          </prop>
-        </node>
-        <node oor:name="CalcDetectiveError">
-          <prop oor:name="Light">
-            <value xsi:nil="true"/>
-          </prop>
-          <prop oor:name="Dark">
-            <value xsi:nil="true"/>
-          </prop>
-        </node>
-        <node oor:name="CalcReference">
-          <prop oor:name="Light">
-            <value xsi:nil="true"/>
-          </prop>
-          <prop oor:name="Dark">
-            <value xsi:nil="true"/>
-          </prop>
-        </node>
-        <node oor:name="CalcNotesBackground">
-          <prop oor:name="Light">
-            <value xsi:nil="true"/>
-          </prop>
-          <prop oor:name="Dark">
-            <value xsi:nil="true"/>
-          </prop>
-        </node>
-        <node oor:name="CalcValue">
-          <prop oor:name="Light">
-            <value xsi:nil="true"/>
-          </prop>
-          <prop oor:name="Dark">
-            <value xsi:nil="true"/>
-          </prop>
-        </node>
-        <node oor:name="CalcFormula">
-          <prop oor:name="Light">
-            <value xsi:nil="true"/>
-          </prop>
-          <prop oor:name="Dark">
-            <value xsi:nil="true"/>
-          </prop>
-        </node>
-        <node oor:name="CalcText">
-          <prop oor:name="Light">
-            <value xsi:nil="true"/>
-          </prop>
-          <prop oor:name="Dark">
-            <value xsi:nil="true"/>
-          </prop>
-        </node>
-        <node oor:name="CalcProtectedBackground">
-          <prop oor:name="Light">
-            <value xsi:nil="true"/>
-          </prop>
-          <prop oor:name="Dark">
-            <value xsi:nil="true"/>
-          </prop>
-        </node>
-        <node oor:name="DrawGrid">
-          <prop oor:name="IsVisible">
-            <value>true</value>
-          </prop>
-          <prop oor:name="Light">
-            <value xsi:nil="true"/>
-          </prop>
-          <prop oor:name="Dark">
-            <value xsi:nil="true"/>
-          </prop>
-        </node>
-        <node oor:name="Author1">
-          <prop oor:name="Light">
-            <value xsi:nil="true"/>
-          </prop>
-          <prop oor:name="Dark">
-            <value xsi:nil="true"/>
-          </prop>
-        </node>
-        <node oor:name="Author2">
-          <prop oor:name="Light">
-            <value xsi:nil="true"/>
-          </prop>
-          <prop oor:name="Dark">
-            <value xsi:nil="true"/>
-          </prop>
-        </node>
-        <node oor:name="Author3">
-          <prop oor:name="Light">
-            <value xsi:nil="true"/>
-          </prop>
-          <prop oor:name="Dark">
-            <value xsi:nil="true"/>
-          </prop>
-        </node>
-        <node oor:name="Author4">
-          <prop oor:name="Light">
-            <value xsi:nil="true"/>
-          </prop>
-          <prop oor:name="Dark">
-            <value xsi:nil="true"/>
-          </prop>
-        </node>
-        <node oor:name="Author5">
-          <prop oor:name="Light">
-            <value xsi:nil="true"/>
-          </prop>
-          <prop oor:name="Dark">
-            <value xsi:nil="true"/>
-          </prop>
-        </node>
-        <node oor:name="Author6">
-          <prop oor:name="Light">
-            <value xsi:nil="true"/>
-          </prop>
-          <prop oor:name="Dark">
-            <value xsi:nil="true"/>
-          </prop>
-        </node>
-        <node oor:name="Author7">
-          <prop oor:name="Light">
-            <value xsi:nil="true"/>
-          </prop>
-          <prop oor:name="Dark">
-            <value xsi:nil="true"/>
-          </prop>
-        </node>
-        <node oor:name="Author8">
-          <prop oor:name="Light">
-            <value xsi:nil="true"/>
-          </prop>
-          <prop oor:name="Dark">
-            <value xsi:nil="true"/>
-          </prop>
-        </node>
-        <node oor:name="Author9">
-          <prop oor:name="Light">
-            <value xsi:nil="true"/>
-          </prop>
-          <prop oor:name="Dark">
-            <value xsi:nil="true"/>
-          </prop>
-        </node>
-        <node oor:name="BASICEditor">
-          <prop oor:name="Light">
-            <value xsi:nil="true"/>
-          </prop>
-          <prop oor:name="Dark">
-            <value xsi:nil="true"/>
-          </prop>
-        </node>
-        <node oor:name="BASICIdentifier">
-          <prop oor:name="Light">
-            <value xsi:nil="true"/>
-          </prop>
-          <prop oor:name="Dark">
-            <value xsi:nil="true"/>
-          </prop>
-        </node>
-        <node oor:name="BASICComment">
-          <prop oor:name="Light">
-            <value xsi:nil="true"/>
-          </prop>
-          <prop oor:name="Dark">
-            <value xsi:nil="true"/>
-          </prop>
-        </node>
-        <node oor:name="BASICNumber">
-          <prop oor:name="Light">
-            <value xsi:nil="true"/>
-          </prop>
-          <prop oor:name="Dark">
-            <value xsi:nil="true"/>
-          </prop>
-        </node>
-        <node oor:name="BASICString">
-          <prop oor:name="Light">
-            <value xsi:nil="true"/>
-          </prop>
-          <prop oor:name="Dark">
-            <value xsi:nil="true"/>
-          </prop>
-        </node>
-        <node oor:name="BASICOperator">
-          <prop oor:name="Light">
-            <value xsi:nil="true"/>
-          </prop>
-          <prop oor:name="Dark">
-            <value xsi:nil="true"/>
-          </prop>
-        </node>
-        <node oor:name="BASICKeyword">
-          <prop oor:name="Light">
-            <value xsi:nil="true"/>
-          </prop>
-          <prop oor:name="Dark">
-            <value xsi:nil="true"/>
-          </prop>
-        </node>
-        <node oor:name="BASICError">
-          <prop oor:name="Light">
-            <value xsi:nil="true"/>
-          </prop>
-          <prop oor:name="Dark">
-            <value xsi:nil="true"/>
-          </prop>
-        </node>
-        <node oor:name="SQLIdentifier">
-          <prop oor:name="Light">
-            <value xsi:nil="true"/>
-          </prop>
-          <prop oor:name="Dark">
-            <value xsi:nil="true"/>
-          </prop>
-        </node>
-        <node oor:name="SQLNumber">
-          <prop oor:name="Light">
-            <value xsi:nil="true"/>
-          </prop>
-          <prop oor:name="Dark">
-            <value xsi:nil="true"/>
-          </prop>
-        </node>
-        <node oor:name="SQLString">
-          <prop oor:name="Light">
-            <value xsi:nil="true"/>
-          </prop>
-          <prop oor:name="Dark">
-            <value xsi:nil="true"/>
-          </prop>
-        </node>
-        <node oor:name="SQLOperator">
-          <prop oor:name="Light">
-            <value xsi:nil="true"/>
-          </prop>
-          <prop oor:name="Dark">
-            <value xsi:nil="true"/>
-          </prop>
-        </node>
-        <node oor:name="SQLKeyword">
-          <prop oor:name="Light">
-            <value xsi:nil="true"/>
-          </prop>
-          <prop oor:name="Dark">
-            <value xsi:nil="true"/>
-          </prop>
-        </node>
-        <node oor:name="SQLParameter">
-          <prop oor:name="Light">
-            <value xsi:nil="true"/>
-          </prop>
-          <prop oor:name="Dark">
-            <value xsi:nil="true"/>
-          </prop>
-        </node>
-        <node oor:name="SQLComment">
-          <prop oor:name="Light">
-            <value xsi:nil="true"/>
-          </prop>
-          <prop oor:name="Dark">
-            <value xsi:nil="true"/>
-          </prop>
-        </node>
-        <!-- Group Application -->
-        <node oor:name="WindowColor">
-          <prop oor:name="Light">
-            <value xsi:nil="true"/>
-          </prop>
-          <prop oor:name="Dark">
-            <value xsi:nil="true"/>
-          </prop>
-        </node>
-        <node oor:name="WindowTextColor">
-          <prop oor:name="Light">
-            <value xsi:nil="true"/>
-          </prop>
-          <prop oor:name="Dark">
-            <value xsi:nil="true"/>
-          </prop>
-        </node>
-        <node oor:name="BaseColor">
-          <prop oor:name="Light">
-            <value xsi:nil="true"/>
-          </prop>
-          <prop oor:name="Dark">
-            <value xsi:nil="true"/>
-          </prop>
-        </node>
-        <node oor:name="ButtonColor">
-          <prop oor:name="Light">
-            <value xsi:nil="true"/>
-          </prop>
-          <prop oor:name="Dark">
-            <value xsi:nil="true"/>
-          </prop>
-        </node>
-        <node oor:name="ButtonTextColor">
-          <prop oor:name="Light">
-            <value xsi:nil="true"/>
-          </prop>
-          <prop oor:name="Dark">
-            <value xsi:nil="true"/>
-          </prop>
-        </node>
-        <node oor:name="AccentColor">
-          <prop oor:name="Light">
-            <value xsi:nil="true"/>
-          </prop>
-          <prop oor:name="Dark">
-            <value xsi:nil="true"/>
-          </prop>
-        </node>
-        <node oor:name="DisabledColor">
-          <prop oor:name="Light">
-            <value xsi:nil="true"/>
-          </prop>
-          <prop oor:name="Dark">
-            <value xsi:nil="true"/>
-          </prop>
-        </node>
-        <node oor:name="DisabledTextColor">
-          <prop oor:name="Light">
-            <value xsi:nil="true"/>
-          </prop>
-          <prop oor:name="Dark">
-            <value xsi:nil="true"/>
-          </prop>
-        </node>
-        <node oor:name="ShadowColor">
-          <prop oor:name="Light">
-            <value xsi:nil="true"/>
-          </prop>
-          <prop oor:name="Dark">
-            <value xsi:nil="true"/>
-          </prop>
-        </node>
-        <node oor:name="SeparatorColor">
-          <prop oor:name="Light">
-            <value xsi:nil="true"/>
-          </prop>
-          <prop oor:name="Dark">
-            <value xsi:nil="true"/>
-          </prop>
-        </node>
-        <node oor:name="FaceColor">
-          <prop oor:name="Light">
-            <value xsi:nil="true"/>
-          </prop>
-          <prop oor:name="Dark">
-            <value xsi:nil="true"/>
-          </prop>
-        </node>
-        <node oor:name="ActiveColor">
-          <prop oor:name="Light">
-            <value xsi:nil="true"/>
-          </prop>
-          <prop oor:name="Dark">
-            <value xsi:nil="true"/>
-          </prop>
-        </node>
-        <node oor:name="ActiveTextColor">
-          <prop oor:name="Light">
-            <value xsi:nil="true"/>
-          </prop>
-          <prop oor:name="Dark">
-            <value xsi:nil="true"/>
-          </prop>
-        </node>
-        <node oor:name="ActiveBorderColor">
-          <prop oor:name="Light">
-            <value xsi:nil="true"/>
-          </prop>
-          <prop oor:name="Dark">
-            <value xsi:nil="true"/>
-          </prop>
-        </node>
-        <node oor:name="FieldColor">
-          <prop oor:name="Light">
-            <value xsi:nil="true"/>
-          </prop>
-          <prop oor:name="Dark">
-            <value xsi:nil="true"/>
-          </prop>
-        </node>
-        <node oor:name="MenuBarColor">
-          <prop oor:name="Light">
-            <value xsi:nil="true"/>
-          </prop>
-          <prop oor:name="Dark">
-            <value xsi:nil="true"/>
-          </prop>
-        </node>
-        <node oor:name="MenuBarTextColor">
-          <prop oor:name="Light">
-            <value xsi:nil="true"/>
-          </prop>
-          <prop oor:name="Dark">
-            <value xsi:nil="true"/>
-          </prop>
-        </node>
-        <node oor:name="MenuBarHighlightColor">
-          <prop oor:name="Light">
-            <value xsi:nil="true"/>
-          </prop>
-          <prop oor:name="Dark">
-            <value xsi:nil="true"/>
-          </prop>
-        </node>
-        <node oor:name="MenuBarHighlightTextColor">
-          <prop oor:name="Light">
-            <value xsi:nil="true"/>
-          </prop>
-          <prop oor:name="Dark">
-            <value xsi:nil="true"/>
-          </prop>
-        </node>
-        <node oor:name="MenuColor">
-          <prop oor:name="Light">
-            <value xsi:nil="true"/>
-          </prop>
-          <prop oor:name="Dark">
-            <value xsi:nil="true"/>
-          </prop>
-        </node>
-        <node oor:name="MenuTextColor">
-          <prop oor:name="Light">
-            <value xsi:nil="true"/>
-          </prop>
-          <prop oor:name="Dark">
-            <value xsi:nil="true"/>
-          </prop>
-        </node>
-        <node oor:name="MenuHighlightColor">
-          <prop oor:name="Light">
-            <value xsi:nil="true"/>
-          </prop>
-          <prop oor:name="Dark">
-            <value xsi:nil="true"/>
-          </prop>
-        </node>
-        <node oor:name="MenuHighlightTextColor">
-          <prop oor:name="Light">
-            <value xsi:nil="true"/>
-          </prop>
-          <prop oor:name="Dark">
-            <value xsi:nil="true"/>
-          </prop>
-        </node>
-        <node oor:name="MenuBorderColor">
-          <prop oor:name="Light">
-            <value xsi:nil="true"/>
-          </prop>
-          <prop oor:name="Dark">
-            <value xsi:nil="true"/>
-          </prop>
-        </node>
-        <node oor:name="InactiveColor">
-          <prop oor:name="Light">
-            <value xsi:nil="true"/>
-          </prop>
-          <prop oor:name="Dark">
-            <value xsi:nil="true"/>
-          </prop>
-        </node>
-        <node oor:name="InactiveTextColor">
-          <prop oor:name="Light">
-            <value xsi:nil="true"/>
-          </prop>
-          <prop oor:name="Dark">
-            <value xsi:nil="true"/>
-          </prop>
-        </node>
-        <node oor:name="InactiveBorderColor">
-          <prop oor:name="Light">
-            <value xsi:nil="true"/>
-          </prop>
-          <prop oor:name="Dark">
-            <value xsi:nil="true"/>
-          </prop>
-        </node>
-      </node>
-      <node oor:name="COLOR_SCHEME_LIBREOFFICE_DARK" oor:op="replace">
-        <!-- Group_General -->
-        <node oor:name="DocColor">
-          <prop oor:name="Light">
-            <value xsi:nil="true"/>
-          </prop>
-          <prop oor:name="Dark">
-            <value xsi:nil="true"/>
-          </prop>
-        </node>
-        <node oor:name="DocBoundaries">
-          <prop oor:name="Light">
-            <value xsi:nil="true"/>
-          </prop>
-          <prop oor:name="Dark">
-            <value xsi:nil="true"/>
-          </prop>
-        </node>
-        <node oor:name="AppBackground">
-          <prop oor:name="Light">
-            <value xsi:nil="true"/>
-          </prop>
-          <prop oor:name="Dark">
-            <value xsi:nil="true"/>
-          </prop>
-          <prop oor:name="BackgroundType">
-            <value xsi:nil="true"/>
-          </prop>
-          <prop oor:name="Bitmap">
-            <value xsi:nil="true"/>
-          </prop>
-        </node>
-        <node oor:name="TableBoundaries">
-          <prop oor:name="Light">
-            <value xsi:nil="true"/>
-          </prop>
-          <prop oor:name="Dark">
-            <value xsi:nil="true"/>
-          </prop>
-        </node>
-        <node oor:name="FontColor">
-          <prop oor:name="Light">
-            <value xsi:nil="true"/>
-          </prop>
-          <prop oor:name="Dark">
-            <value xsi:nil="true"/>
-          </prop>
-        </node>
-        <node oor:name="Links">
-          <prop oor:name="IsVisible">
-            <value>false</value>
-          </prop>
-          <prop oor:name="Light">
-            <value xsi:nil="true"/>
-          </prop>
-          <prop oor:name="Dark">
-            <value xsi:nil="true"/>
-          </prop>
-        </node>
-        <node oor:name="LinksVisited">
-          <prop oor:name="IsVisible">
-            <value>false</value>
-          </prop>
-          <prop oor:name="Light">
-            <value xsi:nil="true"/>
-          </prop>
-          <prop oor:name="Dark">
-            <value xsi:nil="true"/>
-          </prop>
-        </node>
-        <node oor:name="Spell">
-          <prop oor:name="Light">
-            <value xsi:nil="true"/>
-          </prop>
-          <prop oor:name="Dark">
-            <value xsi:nil="true"/>
-          </prop>
-        </node>
-        <node oor:name="Grammar">
-          <prop oor:name="Light">
-            <value xsi:nil="true"/>
-          </prop>
-          <prop oor:name="Dark">
-            <value xsi:nil="true"/>
-          </prop>
-        </node>
-        <node oor:name="SmartTags">
-          <prop oor:name="Light">
-            <value xsi:nil="true"/>
-          </prop>
-          <prop oor:name="Dark">
-            <value xsi:nil="true"/>
-          </prop>
-        </node>
-        <node oor:name="Shadow">
-          <prop oor:name="IsVisible">
-            <value>true</value>
-          </prop>
-          <prop oor:name="Light">
-            <value xsi:nil="true"/>
-          </prop>
-          <prop oor:name="Dark">
-            <value xsi:nil="true"/>
-          </prop>
-        </node>
-        <node oor:name="WriterTextGrid">
-          <prop oor:name="Light">
-            <value xsi:nil="true"/>
-          </prop>
-          <prop oor:name="Dark">
-            <value xsi:nil="true"/>
-          </prop>
-        </node>
-        <node oor:name="WriterFieldShadings">
-          <prop oor:name="IsVisible">
-            <value>true</value>
-          </prop>
-          <prop oor:name="Light">
-            <value xsi:nil="true"/>
-          </prop>
-          <prop oor:name="Dark">
-            <value xsi:nil="true"/>
-          </prop>
-        </node>
-        <node oor:name="WriterIdxShadings">
-          <prop oor:name="IsVisible">
-            <value>true</value>
-          </prop>
-          <prop oor:name="Light">
-            <value xsi:nil="true"/>
-          </prop>
-          <prop oor:name="Dark">
-            <value xsi:nil="true"/>
-          </prop>
-        </node>
-        <node oor:name="WriterDirectCursor">
-          <prop oor:name="IsVisible">
-            <value>true</value>
-          </prop>
-          <prop oor:name="Light">
-            <value xsi:nil="true"/>
-          </prop>
-          <prop oor:name="Dark">
-            <value xsi:nil="true"/>
-          </prop>
-        </node>
-        <node oor:name="WriterScriptIndicator">
-          <prop oor:name="Light">
-            <value xsi:nil="true"/>
-          </prop>
-          <prop oor:name="Dark">
-            <value xsi:nil="true"/>
-          </prop>
-        </node>
-        <node oor:name="WriterSectionBoundaries">
-          <prop oor:name="Light">
-            <value xsi:nil="true"/>
-          </prop>
-          <prop oor:name="Dark">
-            <value xsi:nil="true"/>
-          </prop>
-        </node>
-        <node oor:name="WriterHeaderFooterMark">
-          <prop oor:name="Light">
-e 
... etc. - the rest is truncated

Reply via email to