Select Codex icon by surface background

This commit is contained in:
Ryan Hughes
2026-06-14 20:14:09 -04:00
parent e0eaf8eea8
commit 8d490d525e
2 changed files with 13 additions and 7 deletions
+7 -7
View File
@@ -175,16 +175,16 @@ BarWidget {
+ 0.0722 * colorChannelLuminance(color.b) + 0.0722 * colorChannelLuminance(color.b)
} }
function codexIconSource() { function codexIconSource(surfaceColor) {
return colorLuminance(foreground) < 0.5 return colorLuminance(surfaceColor || Color.background) >= 0.5
? Qt.resolvedUrl("assets/codex-light.svg") ? Qt.resolvedUrl("assets/codex-light.svg")
: Qt.resolvedUrl("assets/codex.svg") : Qt.resolvedUrl("assets/codex.svg")
} }
function iconSourceForProvider(provider) { function iconSourceForProvider(provider, surfaceColor) {
if (!provider) return "" if (!provider) return ""
if (provider.providerId === "claude") return Qt.resolvedUrl("assets/claude.svg") if (provider.providerId === "claude") return Qt.resolvedUrl("assets/claude.svg")
if (provider.providerId === "codex") return codexIconSource() if (provider.providerId === "codex") return codexIconSource(surfaceColor)
return "" return ""
} }
@@ -350,7 +350,7 @@ BarWidget {
spacing: 4 spacing: 4
Image { Image {
source: root.iconSourceForProvider(chip.modelData) source: root.iconSourceForProvider(chip.modelData, root.bar ? root.bar.background : Color.bar.background)
width: 13 width: 13
height: 13 height: 13
sourceSize.width: 13 sourceSize.width: 13
@@ -377,7 +377,7 @@ BarWidget {
spacing: 1 spacing: 1
Image { Image {
source: root.iconSourceForProvider(chip.modelData) source: root.iconSourceForProvider(chip.modelData, root.bar ? root.bar.background : Color.bar.background)
width: 13 width: 13
height: 13 height: 13
sourceSize.width: 13 sourceSize.width: 13
@@ -908,7 +908,7 @@ BarWidget {
spacing: 8 spacing: 8
Image { Image {
source: root.iconSourceForProvider(provider) source: root.iconSourceForProvider(provider, root.background)
Layout.preferredWidth: 16 Layout.preferredWidth: 16
Layout.preferredHeight: 16 Layout.preferredHeight: 16
sourceSize.width: 16 sourceSize.width: 16
@@ -93,6 +93,12 @@ ShellRoot {
if (typeof item.setting === "function") { if (typeof item.setting === "function") {
root.assertEqual(item.setting("missing", "fallback"), "fallback", entry.id + " exposes setting fallback") root.assertEqual(item.setting("missing", "fallback"), "fallback", entry.id + " exposes setting fallback")
} }
if (entry.id === "omarchy.model-usage" && typeof item.iconSourceForProvider === "function") {
var darkIcon = String(item.iconSourceForProvider({ providerId: "codex" }, Qt.color("#1a1b26")))
var lightIcon = String(item.iconSourceForProvider({ providerId: "codex" }, Qt.color("#ffffff")))
root.assertTrue(darkIcon.indexOf("codex.svg") >= 0 && darkIcon.indexOf("codex-light.svg") < 0, entry.id + " uses the dark-theme Codex icon on dark surfaces")
root.assertTrue(lightIcon.indexOf("codex-light.svg") >= 0, entry.id + " uses the light-theme Codex icon on light surfaces")
}
safeCall(item, "refresh", entry) safeCall(item, "refresh", entry)
safeCall(item, "close", entry) safeCall(item, "close", entry)