diff --git a/novelwriter/assets/icons/remix_filled.icons b/novelwriter/assets/icons/remix_filled.icons
index f811c500..8e0b23a9 100644
--- a/novelwriter/assets/icons/remix_filled.icons
+++ b/novelwriter/assets/icons/remix_filled.icons
@@ -11,17 +11,17 @@ icon:alert_info =
icon:alert_warn =
icon:cls_archive =
-icon:cls_character =
+icon:cls_character =
icon:cls_custom =
icon:cls_entity =
icon:cls_none =
icon:cls_novel =
-icon:cls_object =
+icon:cls_object =
icon:cls_plot =
icon:cls_template =
icon:cls_timeline =
icon:cls_trash =
-icon:cls_world =
+icon:cls_world =
icon:prj_folder =
icon:prj_document =
icon:prj_title =
@@ -35,23 +35,23 @@ icon:fmt_strike =
icon:fmt_superscript =
icon:fmt_underline =
-icon:fmt_toolbar =
+icon:fmt_toolbar =
icon:search =
-icon:search_cancel =
+icon:search_cancel =
icon:search_case =
-icon:search_loop =
+icon:search_loop =
icon:search_preserve =
icon:search_project =
icon:search_regex =
icon:search_replace =
icon:search_word =
icon:bullet-off =
-icon:bullet-on =
+icon:bullet-on =
icon:unfold-hide =
icon:unfold-show =
icon:sb_build =
icon:sb_novel =
-icon:sb_outline =
+icon:sb_outline =
icon:sb_project =
icon:sb_search =
icon:add =
@@ -68,7 +68,7 @@ icon:close =
icon:document_add =
icon:document =
-icon:edit =
+icon:edit =
icon:exclude =
icon:export =
icon:filter =
@@ -92,7 +92,7 @@ icon:noncheckable =
icon:panel =
icon:pin =
-icon:quote =
+icon:quote =
icon:refresh =
icon:remove =
icon:revert =
@@ -100,7 +100,7 @@ icon:settings =
icon:stats =
icon:text =
-icon:timer_off =
+icon:timer_off =
icon:timer =
icon:unchecked =
icon:view =
diff --git a/novelwriter/assets/icons/remix_outline.icons b/novelwriter/assets/icons/remix_outline.icons
index ecf7e9ab..bbb82732 100644
--- a/novelwriter/assets/icons/remix_outline.icons
+++ b/novelwriter/assets/icons/remix_outline.icons
@@ -11,17 +11,17 @@ icon:alert_info =
icon:alert_warn =
icon:cls_archive =
-icon:cls_character =
+icon:cls_character =
icon:cls_custom =
icon:cls_entity =
icon:cls_none =
icon:cls_novel =
-icon:cls_object =
+icon:cls_object =
icon:cls_plot =
icon:cls_template =
icon:cls_timeline =
icon:cls_trash =
-icon:cls_world =
+icon:cls_world =
icon:prj_folder =
icon:prj_document =
icon:prj_title =
@@ -35,23 +35,23 @@ icon:fmt_strike =
icon:fmt_superscript =
icon:fmt_underline =
-icon:fmt_toolbar =
+icon:fmt_toolbar =
icon:search =
-icon:search_cancel =
+icon:search_cancel =
icon:search_case =
-icon:search_loop =
+icon:search_loop =
icon:search_preserve =
icon:search_project =
icon:search_regex =
icon:search_replace =
icon:search_word =
icon:bullet-off =
-icon:bullet-on =
+icon:bullet-on =
icon:unfold-hide =
icon:unfold-show =
icon:sb_build =
icon:sb_novel =
-icon:sb_outline =
+icon:sb_outline =
icon:sb_project =
icon:sb_search =
icon:add =
@@ -68,7 +68,7 @@ icon:close =
icon:document_add =
icon:document =
-icon:edit =
+icon:edit =
icon:exclude =
icon:export =
icon:filter =
@@ -87,12 +87,12 @@ icon:margin_top =
icon:minimise =
icon:more_arrow =
-icon:more_vertical =
+icon:more_vertical =
icon:noncheckable =
icon:open =
icon:panel =
icon:pin =
-icon:quote =
+icon:quote =
icon:refresh =
icon:remove =
icon:revert =
@@ -100,7 +100,7 @@ icon:settings =
icon:stats =
icon:text =
-icon:timer_off =
+icon:timer_off =
icon:timer =
icon:unchecked =
icon:view =
diff --git a/novelwriter/assets/themes/cyberpunk_night.conf b/novelwriter/assets/themes/cyberpunk_night.conf
index 143e1f20..bdb2ee43 100644
--- a/novelwriter/assets/themes/cyberpunk_night.conf
+++ b/novelwriter/assets/themes/cyberpunk_night.conf
@@ -7,7 +7,8 @@ license = CC BY-SA 4.0
licenseurl = https://creativecommons.org/licenses/by-sa/4.0/
[Icons]
-default = 150, 150, 150
+default = 136, 136, 136
+faded = 97, 97, 97
red = 242, 72, 23
orange = 255, 150, 10
yellow = 255, 255, 0
@@ -19,7 +20,7 @@ purple = 50, 0, 180
[Project]
root = 77, 77, 255
folder = 255, 255, 0
-file = 150, 150, 150
+file = 136, 136, 136
title = 0, 255, 0
chapter = 242, 72, 23
scene = 77, 77, 255
diff --git a/novelwriter/assets/themes/default_dark.conf b/novelwriter/assets/themes/default_dark.conf
index 39b5369c..a7cbb57f 100644
--- a/novelwriter/assets/themes/default_dark.conf
+++ b/novelwriter/assets/themes/default_dark.conf
@@ -8,7 +8,8 @@ license = CC BY-SA 4.0
licenseurl = https://creativecommons.org/licenses/by-sa/4.0/
[Icons]
-default = 204, 204, 204
+default = 184, 184, 184
+faded = 148, 148, 148
red = 242, 119, 122
orange = 249, 145, 57
yellow = 255, 204, 102
@@ -20,7 +21,7 @@ purple = 204, 153, 204
[Project]
root = 102, 153, 204
folder = 255, 204, 102
-file = 204, 204, 204
+file = 184, 184, 184
title = 153, 204, 153
chapter = 242, 119, 122
scene = 102, 153, 204
diff --git a/novelwriter/assets/themes/default_light.conf b/novelwriter/assets/themes/default_light.conf
index c52d1d3c..b6f7e8d5 100644
--- a/novelwriter/assets/themes/default_light.conf
+++ b/novelwriter/assets/themes/default_light.conf
@@ -8,7 +8,8 @@ license = CC BY-SA 4.0
licenseurl = https://creativecommons.org/licenses/by-sa/4.0/
[Icons]
-default = 77, 77, 76
+default = 72, 72, 72
+faded = 108, 108, 108
red = 240, 40, 41
orange = 245, 135, 31
yellow = 234, 183, 0
@@ -20,7 +21,7 @@ purple = 137, 89, 168
[Project]
root = 66, 113, 174
folder = 234, 183, 0
-file = 77, 77, 76
+file = 72, 72, 72
title = 113, 140, 0
chapter = 240, 40, 41
scene = 66, 113, 174
diff --git a/novelwriter/assets/themes/dracula.conf b/novelwriter/assets/themes/dracula.conf
index d874e832..827d4eab 100644
--- a/novelwriter/assets/themes/dracula.conf
+++ b/novelwriter/assets/themes/dracula.conf
@@ -23,7 +23,8 @@ licenseurl = https://github.com/dracula/dracula-theme/blob/main/LICENSE
##
[Icons]
-default = 248, 248, 242
+default = 230, 230, 224
+faded = 98, 114, 164
red = 255, 85, 85
orange = 255, 184, 108
yellow = 241, 250, 140
@@ -35,7 +36,7 @@ purple = 189, 147, 249
[Project]
root = 189, 147, 249
folder = 241, 250, 140
-file = 248, 248, 242
+file = 230, 230, 224
title = 80, 250, 123
chapter = 255, 85, 85
scene = 139, 233, 253
diff --git a/novelwriter/assets/themes/solarized_dark.conf b/novelwriter/assets/themes/solarized_dark.conf
index 7bcc1073..6d835dfb 100644
--- a/novelwriter/assets/themes/solarized_dark.conf
+++ b/novelwriter/assets/themes/solarized_dark.conf
@@ -7,7 +7,8 @@ license = MIT
licenseurl = https://github.com/altercation/solarized/blob/master/LICENSE
[Icons]
-default = 253, 246, 227
+default = 230, 223, 206
+faded = 166, 161, 149
red = 220, 50, 47
orange = 203, 75, 22
yellow = 181, 137, 0
@@ -19,7 +20,7 @@ purple = 108, 113, 196
[Project]
root = 42, 161, 152
folder = 42, 161, 152
-file = 253, 246, 227
+file = 230, 223, 206
title = 133, 153, 0
chapter = 220, 50, 47
scene = 38, 139, 210
diff --git a/novelwriter/assets/themes/solarized_light.conf b/novelwriter/assets/themes/solarized_light.conf
index 6cf7c7d6..b9e3162c 100644
--- a/novelwriter/assets/themes/solarized_light.conf
+++ b/novelwriter/assets/themes/solarized_light.conf
@@ -7,7 +7,8 @@ license = MIT
licenseurl = https://github.com/altercation/solarized/blob/master/LICENSE
[Icons]
-default = 0, 43, 54
+default = 59, 68, 71
+faded = 78, 91, 95
red = 220, 50, 47
orange = 203, 75, 22
yellow = 181, 137, 0
@@ -19,7 +20,7 @@ purple = 108, 113, 196
[Project]
root = 42, 161, 152
folder = 42, 161, 152
-file = 0, 43, 54
+file = 59, 68, 71
title = 133, 153, 0
chapter = 220, 50, 47
scene = 38, 139, 210
diff --git a/novelwriter/config.py b/novelwriter/config.py
index 1e173da3..cd377199 100644
--- a/novelwriter/config.py
+++ b/novelwriter/config.py
@@ -124,6 +124,7 @@ class Config:
# Icons
self.iconTheme = "material_rounded_normal" # Icons theme
self.iconColTree = "theme" # Project tree icon colours
+ self.iconColDocs = False # Keep theme colours on documents
# Size Settings
self._mainWinSize = [1200, 650] # Last size of the main GUI window
@@ -611,6 +612,7 @@ class Config:
self.guiSyntax = conf.rdStr(sec, "syntax", self.guiSyntax)
self.iconTheme = conf.rdStr(sec, "icons", self.iconTheme)
self.iconColTree = conf.rdStr(sec, "iconcoltree", self.iconColTree)
+ self.iconColDocs = conf.rdBool(sec, "iconcoldocs", self.iconColDocs)
self.guiLocale = conf.rdStr(sec, "localisation", self.guiLocale)
self.hideVScroll = conf.rdBool(sec, "hidevscroll", self.hideVScroll)
self.hideHScroll = conf.rdBool(sec, "hidehscroll", self.hideHScroll)
@@ -724,6 +726,7 @@ class Config:
"syntax": str(self.guiSyntax),
"icons": str(self.iconTheme),
"iconcoltree": str(self.iconColTree),
+ "iconcoldocs": str(self.iconColDocs),
"localisation": str(self.guiLocale),
"hidevscroll": str(self.hideVScroll),
"hidehscroll": str(self.hideHScroll),
diff --git a/novelwriter/constants.py b/novelwriter/constants.py
index cad63159..36099c38 100644
--- a/novelwriter/constants.py
+++ b/novelwriter/constants.py
@@ -427,15 +427,16 @@ class nwLabels:
"Custom": (-1.0, -1.0),
}
THEME_COLORS = {
- "theme": QT_TRANSLATE_NOOP("Constant", "Theme Colours"),
- "default": QT_TRANSLATE_NOOP("Constant", "No Colours"),
- "red": QT_TRANSLATE_NOOP("Constant", "Red"),
- "orange": QT_TRANSLATE_NOOP("Constant", "Orange"),
- "yellow": QT_TRANSLATE_NOOP("Constant", "Yellow"),
- "green": QT_TRANSLATE_NOOP("Constant", "Green"),
- "aqua": QT_TRANSLATE_NOOP("Constant", "Aqua"),
- "blue": QT_TRANSLATE_NOOP("Constant", "Blue"),
- "purple": QT_TRANSLATE_NOOP("Constant", "Purple"),
+ "theme": QT_TRANSLATE_NOOP("Color", "Theme Colours"),
+ "default": QT_TRANSLATE_NOOP("Color", "No Colours"),
+ "faded": QT_TRANSLATE_NOOP("Color", "Faded Colour"),
+ "red": QT_TRANSLATE_NOOP("Color", "Red"),
+ "orange": QT_TRANSLATE_NOOP("Color", "Orange"),
+ "yellow": QT_TRANSLATE_NOOP("Color", "Yellow"),
+ "green": QT_TRANSLATE_NOOP("Color", "Green"),
+ "aqua": QT_TRANSLATE_NOOP("Color", "Aqua"),
+ "blue": QT_TRANSLATE_NOOP("Color", "Blue"),
+ "purple": QT_TRANSLATE_NOOP("Color", "Purple"),
}
diff --git a/novelwriter/core/item.py b/novelwriter/core/item.py
index cc253fe2..6cf0ec90 100644
--- a/novelwriter/core/item.py
+++ b/novelwriter/core/item.py
@@ -355,7 +355,7 @@ class NWItem:
icon = SHARED.theme.getIcon(key, color)
else:
text = ""
- icon = SHARED.theme.getIcon("noncheckable", "orange")
+ icon = SHARED.theme.getIcon("noncheckable", "faded")
return text, icon
##
diff --git a/novelwriter/dialogs/preferences.py b/novelwriter/dialogs/preferences.py
index fea849df..a272dab5 100644
--- a/novelwriter/dialogs/preferences.py
+++ b/novelwriter/dialogs/preferences.py
@@ -200,6 +200,14 @@ class GuiPreferences(NDialog):
self.tr("Override colours for project icons."), stretch=(3, 2)
)
+ # Keep Theme Colours on Documents
+ self.iconColDocs = NSwitch(self)
+ self.iconColDocs.setChecked(CONFIG.iconColDocs)
+ self.mainForm.addRow(
+ self.tr("Keep theme colours on documents"), self.iconColDocs,
+ self.tr("Only override icon colours for folders.")
+ )
+
# Application Font Family
self.guiFont = QLineEdit(self)
self.guiFont.setReadOnly(True)
@@ -928,10 +936,12 @@ class GuiPreferences(NDialog):
guiTheme = self.guiTheme.currentData()
iconTheme = self.iconTheme.currentData()
iconColTree = self.iconColTree.currentData()
+ iconColDocs = self.iconColDocs.isChecked()
updateTheme |= CONFIG.guiTheme != guiTheme
updateTheme |= CONFIG.iconTheme != iconTheme
updateTheme |= CONFIG.iconColTree != iconColTree
+ updateTheme |= CONFIG.iconColDocs != iconColDocs
needsRestart |= CONFIG.guiLocale != guiLocale
needsRestart |= CONFIG.guiFont != self._guiFont
@@ -939,6 +949,7 @@ class GuiPreferences(NDialog):
CONFIG.guiTheme = guiTheme
CONFIG.iconTheme = iconTheme
CONFIG.iconColTree = iconColTree
+ CONFIG.iconColDocs = iconColDocs
CONFIG.hideVScroll = self.hideVScroll.isChecked()
CONFIG.hideHScroll = self.hideHScroll.isChecked()
CONFIG.nativeFont = self.nativeFont.isChecked()
diff --git a/novelwriter/gui/itemdetails.py b/novelwriter/gui/itemdetails.py
index 72ecb701..d6435bdf 100644
--- a/novelwriter/gui/itemdetails.py
+++ b/novelwriter/gui/itemdetails.py
@@ -241,7 +241,7 @@ class GuiItemDetails(QWidget):
else:
self.labelIcon.setPixmap(SHARED.theme.getPixmap("unchecked", (iPx, iPx), "red"))
else:
- self.labelIcon.setPixmap(SHARED.theme.getPixmap("noncheckable", (iPx, iPx), "orange"))
+ self.labelIcon.setPixmap(SHARED.theme.getPixmap("noncheckable", (iPx, iPx), "faded"))
self.labelData.setText(elide(nwItem.itemName, 100))
diff --git a/novelwriter/gui/theme.py b/novelwriter/gui/theme.py
index 6f33108b..6fd4f198 100644
--- a/novelwriter/gui/theme.py
+++ b/novelwriter/gui/theme.py
@@ -252,6 +252,7 @@ class GuiTheme:
sec = "Icons"
if parser.has_section(sec):
self.iconCache.setIconColor("default", self._parseColour(parser, sec, "default"))
+ self.iconCache.setIconColor("faded", self._parseColour(parser, sec, "faded"))
self.iconCache.setIconColor("red", self._parseColour(parser, sec, "red"))
self.iconCache.setIconColor("orange", self._parseColour(parser, sec, "orange"))
self.iconCache.setIconColor("yellow", self._parseColour(parser, sec, "yellow"))
@@ -544,10 +545,12 @@ class GuiIcons:
"""Clear the icon cache."""
text = QApplication.palette().windowText().color()
default = text.name(QColor.NameFormat.HexRgb).encode("utf-8")
+ faded = self.mainTheme.fadedText.name(QColor.NameFormat.HexRgb).encode("utf-8")
self._svgData = {}
self._svgColours = {
"default": default,
+ "faded": faded,
"red": b"#ff0000",
"orange": b"#ff7f00",
"yellow": b"#ffff00",
@@ -607,11 +610,12 @@ class GuiIcons:
color = self._svgColours.get(override, b"#000000")
self._svgColours["root"] = color
self._svgColours["folder"] = color
- self._svgColours["file"] = color
- self._svgColours["title"] = color
- self._svgColours["chapter"] = color
- self._svgColours["scene"] = color
- self._svgColours["note"] = color
+ if not CONFIG.iconColDocs:
+ self._svgColours["file"] = color
+ self._svgColours["title"] = color
+ self._svgColours["chapter"] = color
+ self._svgColours["scene"] = color
+ self._svgColours["note"] = color
return True
diff --git a/tests/reference/baseConfig_novelwriter.conf b/tests/reference/baseConfig_novelwriter.conf
index c4cdca5c..530be083 100644
--- a/tests/reference/baseConfig_novelwriter.conf
+++ b/tests/reference/baseConfig_novelwriter.conf
@@ -1,5 +1,5 @@
[Meta]
-timestamp = 2025-01-10 02:00:06
+timestamp = 2025-01-11 00:46:32
[Main]
font =
@@ -7,6 +7,7 @@ theme = default
syntax = default_light
icons = material_rounded_normal
iconcoltree = theme
+iconcoldocs = False
localisation = en_GB
hidevscroll = False
hidehscroll = False
diff --git a/utils/remix.json b/utils/remix.json
index f62a9ee6..8c7d8ff9 100644
--- a/utils/remix.json
+++ b/utils/remix.json
@@ -5,17 +5,17 @@
"alert_warn": "alarm-warning",
"cls_archive": "archive",
- "cls_character": "group",
+ "cls_character": "team",
"cls_custom": "price-tag-3",
"cls_entity": "building",
"cls_none": "checkbox-blank",
"cls_novel": "git-repository",
- "cls_object": "key-2",
+ "cls_object": "knife-blood-line",
"cls_plot": "puzzle-2",
"cls_template": "folder-add",
"cls_timeline": "hourglass",
"cls_trash": "delete-bin",
- "cls_world": "earth",
+ "cls_world": "road-map",
"prj_folder": "folder-6",
"prj_document": "file-text",
@@ -31,12 +31,12 @@
"fmt_subscript": "subscript",
"fmt_superscript": "superscript",
"fmt_underline": "underline",
- "fmt_toolbar": "font-color",
+ "fmt_toolbar": "scroll-to-bottom",
"search": "search-line",
- "search_cancel": "close",
+ "search_cancel": "close-large-fill",
"search_case": "font-size",
- "search_loop": "loop-right",
+ "search_loop": "repeat-2",
"search_preserve": "font-size-2",
"search_project": "file-search",
"search_regex": "asterisk",
@@ -44,13 +44,13 @@
"search_word": "space",
"bullet-off": "checkbox-blank-circle-line",
- "bullet-on": "checkbox-blank-circle-fill",
+ "bullet-on": "progress-8-line",
"unfold-hide": "arrow-right-s-fill",
"unfold-show": "arrow-down-s-fill",
"sb_build": "stack",
"sb_novel": "booklet",
- "sb_outline": "table-view",
+ "sb_outline": "timeline-view",
"sb_project": "file-edit",
"sb_search": "file-search",
@@ -64,11 +64,11 @@
"chevron_left": "arrow-left-s-line",
"chevron_right": "arrow-right-s-line",
"chevron_up": "arrow-up-s-line",
- "close": "close-large",
+ "close": "close-large-fill",
"copy": "file-copy",
"document_add": "file-add",
"document": "file-text",
- "edit": "edit",
+ "edit": "edit-2",
"exclude": "close-circle",
"export": "export",
"filter": "filter-2",
@@ -87,13 +87,13 @@
"maximise": "fullscreen",
"minimise": "fullscreen-exit",
"more_arrow": "arrow-right-s-fill",
- "more_vertical": "more-2",
+ "more_vertical": "more-2-fill",
"noncheckable": "checkbox-indeterminate",
"open": "file-upload",
"panel": "layout-bottom",
"pin": "pushpin",
"project_copy": "",
- "quote": "double-quotes-l",
+ "quote": "double-quotes-r",
"refresh": "refresh-line",
"remove": "subtract",
"revert": "reset-left",
@@ -101,7 +101,7 @@
"star": "star-fill",
"stats": "numbers",
"text": "file-text",
- "timer_off": "pause",
+ "timer_off": "zzz",
"timer": "timer",
"unchecked": "checkbox-blank",
"view": "eye-fill"