Index: scribus/iconmanager.cpp
===================================================================
--- scribus/iconmanager.cpp	(Revision 26725)
+++ scribus/iconmanager.cpp	(Arbeitskopie)
@@ -135,16 +135,12 @@
 bool IconManager::iconsForDarkMode() const
 {	
 #if QT_VERSION >= QT_VERSION_CHECK(6, 5, 0)
-	switch(qApp->styleHints()->colorScheme())
-	{
-	case Qt::ColorScheme::Unknown:
-	case Qt::ColorScheme::Light:
+	if (qApp->styleHints()->colorScheme() == Qt::ColorScheme::Light)
 		return false;
-	case Qt::ColorScheme::Dark:
+	else if (qApp->styleHints()->colorScheme() == Qt::ColorScheme::Dark)
 		return true;
-	default:
-		return false;
-	}
+	else
+		return (baseColor().lightness() >= 128) ? true : false;
 #else
 	return (baseColor().lightness() >= 128) ? true : false;
 #endif
Index: scribus/iconmanager.h
===================================================================
--- scribus/iconmanager.h	(Revision 26725)
+++ scribus/iconmanager.h	(Arbeitskopie)
@@ -43,7 +43,6 @@
 	void operator=(IconManager const&) = delete;
 	static IconManager& instance();
 
-	void setIconsForDarkMode(bool forDarkMode);
 	QColor baseColor() const;
 	bool iconsForDarkMode() const;
 	bool setup();
Index: scribus/prefsmanager.cpp
===================================================================
--- scribus/prefsmanager.cpp	(Revision 26725)
+++ scribus/prefsmanager.cpp	(Arbeitskopie)
@@ -157,6 +157,7 @@
 	appPrefs.uiPrefs.mouseMoveTimeout = 150;
 	appPrefs.uiPrefs.wheelJump = 40;
 	appPrefs.uiPrefs.style = "";
+	appPrefs.uiPrefs.stylePalette = "auto";
 	// On Windows, use the Fusion theme by default when possible,
 	// the old Windows and windowsvista style do not support dark theme
 #if defined Q_OS_WINDOWS
@@ -1360,6 +1361,7 @@
 	dcUI.setAttribute("UseDocumentTabs", static_cast<int>(appPrefs.uiPrefs.useTabs));
 	dcUI.setAttribute("StickyTools", static_cast<int>(appPrefs.uiPrefs.stickyTools));
 	dcUI.setAttribute("Theme", appPrefs.uiPrefs.style);
+	dcUI.setAttribute("ThemePalette", appPrefs.uiPrefs.stylePalette);
 	dcUI.setAttribute("ScrollWheelJump", appPrefs.uiPrefs.wheelJump);
 	dcUI.setAttribute("MouseMoveTimeout", appPrefs.uiPrefs.mouseMoveTimeout);
 	dcUI.setAttribute("ApplicationFontSize", appPrefs.uiPrefs.applicationFontSize);
@@ -2038,6 +2040,7 @@
 		if (dc.tagName() == "UI")
 		{
 			appPrefs.uiPrefs.style = dc.attribute("Theme", "Default");
+			appPrefs.uiPrefs.stylePalette = dc.attribute("ThemePalette", "auto");
 			appPrefs.uiPrefs.wheelJump = dc.attribute("ScrollWheelJump").toInt();
 			appPrefs.uiPrefs.mouseMoveTimeout = dc.attribute("MouseMoveTimeout", "150").toInt();
 			appPrefs.uiPrefs.applicationFontSize = dc.attribute("ApplicationFontSize", "12").toInt();
Index: scribus/prefsstructs.h
===================================================================
--- scribus/prefsstructs.h	(Revision 26725)
+++ scribus/prefsstructs.h	(Arbeitskopie)
@@ -119,6 +119,7 @@
 	int applicationFontSize {12}; //! Font size to use in the application, apart from pßalettes
 	int paletteFontSize {10}; //! Font size to use in the palettes
 	QString style; 	//! Currently used QStyle name
+	QString stylePalette; //! UI theme palette, dark, light, auto
 	int recentDocCount {5}; //! Number of recent documents to remember
 	QStringList RecentDocs; //! List of recent documents
 	QString language; //! Language of the user interface
Index: scribus/scribuscore.cpp
===================================================================
--- scribus/scribuscore.cpp	(Revision 26725)
+++ scribus/scribuscore.cpp	(Arbeitskopie)
@@ -30,6 +30,7 @@
 #include <QMessageBox>
 #include <QScreen>
 #include <QStyleFactory>
+#include <QStyleHints>
 
 #include "colormgmt/sccolormgmtenginefactory.h"
 #include "commonstrings.h"
@@ -175,6 +176,51 @@
 	setSplashStatus( tr("Reading Preferences") );
 	m_prefsManager.readPrefs();
 
+	// This is a very basic implemenation of the UI theme palette.
+	// If necessary implement platform specific theme configurations here.
+
+	// Apply different palette only if the system UI palette is different.
+#if (QT_VERSION >= QT_VERSION_CHECK(6, 8, 0))
+	if (m_prefsManager.appPrefs.uiPrefs.stylePalette == "dark" && QApplication::styleHints()->colorScheme() == Qt::ColorScheme::Light)
+	{
+		QApplication::styleHints()->setColorScheme(Qt::ColorScheme::Dark);
+
+// https://bugreports.qt.io/browse/QTBUG-132929
+#if (defined Q_OS_LINUX)
+		QPalette pal(QColor(49, 49, 49));
+		QApplication::setPalette(pal);
+#endif
+		m_SplashScreen->setPixmap(IconManager::instance().splashScreen());
+	}
+	else if (m_prefsManager.appPrefs.uiPrefs.stylePalette == "light" && QApplication::styleHints()->colorScheme() == Qt::ColorScheme::Dark)
+	{
+		QApplication::styleHints()->setColorScheme(Qt::ColorScheme::Light);
+
+		// https://bugreports.qt.io/browse/QTBUG-132929
+#if (defined Q_OS_LINUX)
+		QPalette pal(QColor(239, 239, 239));
+		QApplication::setPalette(pal);
+#endif
+		m_SplashScreen->setPixmap(IconManager::instance().splashScreen());
+	}
+	else
+	{
+		QApplication::styleHints()->unsetColorScheme();
+
+#if (defined Q_OS_LINUX)
+		// As long as this bug persists, we have to repair the palette ourselves
+		// https://bugreports.qt.io/browse/QTBUG-126208
+		// See color values of fusion palette here: https://github.com/qt/qtbase/blob/dev/src/gui/kernel/qplatformtheme.cpp#L356
+		if (QApplication::styleHints()->colorScheme() == Qt::ColorScheme::Light && QApplication::style()->name() == "fusion")
+		{
+			QPalette pal(QColor(239, 239, 239));
+			QApplication::setPalette(pal);
+		}
+#endif
+	}
+#endif
+
+
 	// Configure GUI
 	const QString& prefsUiStyle = m_prefsManager.appPrefs.uiPrefs.style;
 	if (prefsUiStyle.length() > 0)
Index: scribus/ui/prefs_userinterface.cpp
===================================================================
--- scribus/ui/prefs_userinterface.cpp	(Revision 26725)
+++ scribus/ui/prefs_userinterface.cpp	(Arbeitskopie)
@@ -9,6 +9,7 @@
 #include <QFontDialog>
 #include <QPixmap>
 #include <QStyleFactory>
+#include <QStyleHints>
 
 #include "iconmanager.h"
 #include "langmgr.h"
@@ -59,6 +60,12 @@
 
 void Prefs_UserInterface::languageChange()
 {
+	themePaletteComboBox->clear();
+	themePaletteComboBox->addItem(tr("Auto"), "auto");
+	themePaletteComboBox->addItem(tr("Light"), "light");
+	themePaletteComboBox->addItem(tr("Dark"), "dark");
+	themePaletteComboBox->setToolTip( "<qt>" + tr( "Choose the default theme palette. Auto uses the systems default." ) + "</qt>");
+
 	themeComboBox->setToolTip( "<qt>" + tr( "Choose the default window decoration and looks. Scribus inherits any available KDE or Qt themes, if Qt is configured to search KDE plugins." ) + "</qt>");
 	iconSetComboBox->setToolTip( "<qt>" + tr( "Choose the default icon set" ) + "</qt>");
 	useSmallWidgetsCheckBox->setToolTip( "<qt>" + tr( "Palette windows will use smaller (space savvy) widgets. Requires application restart." ) + "</qt>");
@@ -92,6 +99,13 @@
 		selectedGUILang = "en_GB";
 		langString = LanguageManager::instance()->getLangFromAbbrev(selectedGUILang);
 	}
+
+	int index = themePaletteComboBox->findData(prefsData->uiPrefs.stylePalette);
+	if ( index != -1 )
+		themePaletteComboBox->setCurrentIndex(index);
+	else
+		themePaletteComboBox->setCurrentIndex(0);
+
 	setCurrentComboItem(languageComboBox, langString);
 	numberFormatComboBox->setCurrentIndex(prefsData->uiPrefs.userPreferredLocale == "System" ? 0 : 1);
 	setCurrentComboItem(themeComboBox, prefsData->uiPrefs.style);
@@ -118,6 +132,7 @@
 	prefsData->uiPrefs.language = selectedGUILang;
 	prefsData->uiPrefs.userPreferredLocale = numberFormatComboBox->currentData().toString();
 	prefsData->uiPrefs.style = themeComboBox->currentText();
+	prefsData->uiPrefs.stylePalette = themePaletteComboBox->currentData().toString();
 	prefsData->uiPrefs.iconSet = IconManager::instance().baseNameForTranslation(iconSetComboBox->currentText());
 	prefsData->uiPrefs.applicationFontSize = fontSizeMenuSpinBox->value();
 	prefsData->uiPrefs.paletteFontSize = fontSizePaletteSpinBox->value();
@@ -133,6 +148,16 @@
 
 	prefsData->storyEditorPrefs.guiFont = seFont.toString();
 	prefsData->storyEditorPrefs.smartTextSelection = storyEditorUseSmartSelectionCheckBox->isChecked();
+
+#if (QT_VERSION >= QT_VERSION_CHECK(6, 8, 0))
+	if (prefsData->uiPrefs.stylePalette == "dark")
+		QApplication::styleHints()->setColorScheme(Qt::ColorScheme::Dark);
+	else if (prefsData->uiPrefs.stylePalette == "light")
+		QApplication::styleHints()->setColorScheme(Qt::ColorScheme::Light);
+	else
+		QApplication::styleHints()->unsetColorScheme();
+#endif
+
 }
 
 void Prefs_UserInterface::setSelectedGUILang(const QString &newLang)
Index: scribus/ui/prefs_userinterfacebase.ui
===================================================================
--- scribus/ui/prefs_userinterfacebase.ui	(Revision 26725)
+++ scribus/ui/prefs_userinterfacebase.ui	(Arbeitskopie)
@@ -39,7 +39,7 @@
    <item>
     <widget class="Line" name="line">
      <property name="orientation">
-      <enum>Qt::Horizontal</enum>
+      <enum>Qt::Orientation::Horizontal</enum>
      </property>
     </widget>
    </item>
@@ -68,7 +68,7 @@
        <item>
         <widget class="Line" name="line_3">
          <property name="orientation">
-          <enum>Qt::Horizontal</enum>
+          <enum>Qt::Orientation::Horizontal</enum>
          </property>
         </widget>
        </item>
@@ -75,7 +75,7 @@
        <item>
         <layout class="QFormLayout" name="formLayout">
          <property name="fieldGrowthPolicy">
-          <enum>QFormLayout::FieldsStayAtSizeHint</enum>
+          <enum>QFormLayout::FieldGrowthPolicy::FieldsStayAtSizeHint</enum>
          </property>
          <item row="0" column="0">
           <widget class="QLabel" name="themeLabel">
@@ -90,7 +90,7 @@
          <item row="0" column="1">
           <widget class="QComboBox" name="themeComboBox"/>
          </item>
-         <item row="1" column="0">
+         <item row="2" column="0">
           <widget class="QLabel" name="label_3">
            <property name="text">
             <string>Icon Set:</string>
@@ -97,10 +97,10 @@
            </property>
           </widget>
          </item>
-         <item row="1" column="1">
+         <item row="2" column="1">
           <widget class="QComboBox" name="iconSetComboBox"/>
          </item>
-         <item row="2" column="1">
+         <item row="3" column="1">
           <widget class="QCheckBox" name="useSmallWidgetsCheckBox">
            <property name="text">
             <string>Use Small Widgets on Palettes</string>
@@ -107,7 +107,7 @@
            </property>
           </widget>
          </item>
-         <item row="5" column="1">
+         <item row="6" column="1">
           <widget class="QCheckBox" name="useTabsForDocumentsCheckBox">
            <property name="text">
             <string>Use Tabs for Documents</string>
@@ -114,7 +114,7 @@
            </property>
           </widget>
          </item>
-         <item row="6" column="0">
+         <item row="7" column="0">
           <widget class="QLabel" name="recentDocumentsLabel">
            <property name="text">
             <string>&amp;Recent Documents:</string>
@@ -124,10 +124,10 @@
            </property>
           </widget>
          </item>
-         <item row="6" column="1">
+         <item row="7" column="1">
           <widget class="QSpinBox" name="recentDocumentsSpinBox"/>
          </item>
-         <item row="3" column="1">
+         <item row="4" column="1">
           <widget class="QCheckBox" name="showLabels">
            <property name="text">
             <string>Show Informational Labels</string>
@@ -134,7 +134,7 @@
            </property>
           </widget>
          </item>
-         <item row="4" column="1">
+         <item row="5" column="1">
           <widget class="QCheckBox" name="showLabelsOfInactiveTabs">
            <property name="text">
             <string>Show Labels of Inactive Palette Tabs</string>
@@ -141,15 +141,25 @@
            </property>
           </widget>
          </item>
+         <item row="1" column="0">
+          <widget class="QLabel" name="themePaletteLabel">
+           <property name="text">
+            <string>Color Palette:</string>
+           </property>
+          </widget>
+         </item>
+         <item row="1" column="1">
+          <widget class="QComboBox" name="themePaletteComboBox"/>
+         </item>
         </layout>
        </item>
        <item>
         <spacer name="verticalSpacer_6">
          <property name="orientation">
-          <enum>Qt::Vertical</enum>
+          <enum>Qt::Orientation::Vertical</enum>
          </property>
          <property name="sizeType">
-          <enum>QSizePolicy::Fixed</enum>
+          <enum>QSizePolicy::Policy::Fixed</enum>
          </property>
          <property name="sizeHint" stdset="0">
           <size>
@@ -174,7 +184,7 @@
        <item>
         <widget class="Line" name="line_4">
          <property name="orientation">
-          <enum>Qt::Horizontal</enum>
+          <enum>Qt::Orientation::Horizontal</enum>
          </property>
         </widget>
        </item>
@@ -211,10 +221,10 @@
        <item>
         <spacer name="verticalSpacer_4">
          <property name="orientation">
-          <enum>Qt::Vertical</enum>
+          <enum>Qt::Orientation::Vertical</enum>
          </property>
          <property name="sizeType">
-          <enum>QSizePolicy::Fixed</enum>
+          <enum>QSizePolicy::Policy::Fixed</enum>
          </property>
          <property name="sizeHint" stdset="0">
           <size>
@@ -239,7 +249,7 @@
        <item>
         <widget class="Line" name="line_2">
          <property name="orientation">
-          <enum>Qt::Horizontal</enum>
+          <enum>Qt::Orientation::Horizontal</enum>
          </property>
         </widget>
        </item>
@@ -284,7 +294,7 @@
        <item>
         <spacer name="verticalSpacer_3">
          <property name="orientation">
-          <enum>Qt::Vertical</enum>
+          <enum>Qt::Orientation::Vertical</enum>
          </property>
          <property name="sizeHint" stdset="0">
           <size>
@@ -304,7 +314,7 @@
        <item>
         <layout class="QFormLayout" name="formLayout_3">
          <property name="fieldGrowthPolicy">
-          <enum>QFormLayout::FieldsStayAtSizeHint</enum>
+          <enum>QFormLayout::FieldGrowthPolicy::FieldsStayAtSizeHint</enum>
          </property>
          <item row="0" column="0">
           <widget class="QLabel" name="storyEditorFontLabel">
@@ -332,7 +342,7 @@
        <item>
         <spacer name="verticalSpacer_5">
          <property name="orientation">
-          <enum>Qt::Vertical</enum>
+          <enum>Qt::Orientation::Vertical</enum>
          </property>
          <property name="sizeHint" stdset="0">
           <size>
@@ -352,7 +362,7 @@
        <item>
         <layout class="QFormLayout" name="formLayout_4">
          <property name="fieldGrowthPolicy">
-          <enum>QFormLayout::FieldsStayAtSizeHint</enum>
+          <enum>QFormLayout::FieldGrowthPolicy::FieldsStayAtSizeHint</enum>
          </property>
          <item row="0" column="0">
           <widget class="QLabel" name="resizeMoveDelayLabel">
@@ -392,7 +402,7 @@
        <item>
         <spacer name="verticalSpacer_2">
          <property name="orientation">
-          <enum>Qt::Vertical</enum>
+          <enum>Qt::Orientation::Vertical</enum>
          </property>
          <property name="sizeHint" stdset="0">
           <size>
@@ -430,7 +440,7 @@
        <item>
         <spacer name="verticalSpacer">
          <property name="orientation">
-          <enum>Qt::Vertical</enum>
+          <enum>Qt::Orientation::Vertical</enum>
          </property>
          <property name="sizeHint" stdset="0">
           <size>
