From e663aca82150cbc7348dd61a525852b9f47e5f3f Mon Sep 17 00:00:00 2001 From: FTCHD <144691102+FTCHD@users.noreply.github.com> Date: Sun, 10 May 2026 23:20:10 +0300 Subject: [PATCH] add color icon & handling --- lib/tray.ts | 12 +++++------- src-tauri/icons/favicon/icon-color.png | Bin 0 -> 3777 bytes src-tauri/icons/favicon/icon-light-padded.png | Bin 1115 -> 0 bytes src-tauri/icons/favicon/icon-padded.png | Bin 1037 -> 0 bytes src/pages/Settings/GeneralSection.tsx | 3 ++- store/persisted.ts | 5 +++-- 6 files changed, 10 insertions(+), 10 deletions(-) create mode 100644 src-tauri/icons/favicon/icon-color.png delete mode 100644 src-tauri/icons/favicon/icon-light-padded.png delete mode 100644 src-tauri/icons/favicon/icon-padded.png diff --git a/lib/tray.ts b/lib/tray.ts index b4fe548..1fd66b4 100644 --- a/lib/tray.ts +++ b/lib/tray.ts @@ -165,7 +165,9 @@ async function resolveTrayIconForTheme() { const existingTheme = usePersistedStore.getState().appearance console.log('[resolveTrayIconForTheme] existingTheme', existingTheme) - const isLinux = platform() === 'linux' + if (existingTheme.tray === 'color') { + return await resolveResource('icons/favicon/icon-color.png') + } if (existingTheme.tray === 'system') { if (platform() === 'macos') { @@ -178,9 +180,7 @@ async function resolveTrayIconForTheme() { console.log('[resolveTrayIconForTheme] windowTheme', windowTheme) const pickedPath = - windowTheme === 'dark' - ? `icons/favicon/icon${isLinux ? '-padded' : ''}.png` - : `icons/favicon/icon-light${isLinux ? '-padded' : ''}.png` + windowTheme === 'dark' ? 'icons/favicon/icon.png' : 'icons/favicon/icon-light.png' return await resolveResource(pickedPath) } catch { @@ -194,9 +194,7 @@ async function resolveTrayIconForTheme() { } const pickedPath = - existingTheme.tray === 'dark' - ? `icons/favicon/icon-light${isLinux ? '-padded' : ''}.png` - : `icons/favicon/icon${isLinux ? '-padded' : ''}.png` + existingTheme.tray === 'dark' ? 'icons/favicon/icon-light.png' : 'icons/favicon/icon.png' return await resolveResource(pickedPath) } diff --git a/src-tauri/icons/favicon/icon-color.png b/src-tauri/icons/favicon/icon-color.png new file mode 100644 index 0000000000000000000000000000000000000000..c26ee2b040a59c94f9d3f7cc1c98e2b0ede918f0 GIT binary patch literal 3777 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 literal 0 HcmV?d00001 diff --git a/src-tauri/icons/favicon/icon-light-padded.png b/src-tauri/icons/favicon/icon-light-padded.png deleted file mode 100644 index e6de063869c62bea6976dcbb980e942f1b3d4ff4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1115 zcmV-h1f=_kP)iK~#7F?N~ie z+dvq;I00o#1U~=^B9tviRO--yA!DURDnB4nv!_x!H$%ErVyJhJ$XKbBGIq$2u^ZVa z3gC<#5HRzRJ`bE*W8c|lJDuuBvf`ZY<9YA>yb~fvjvP61{Ld(ee*oLItEEzDXFi`- z9~LPT+}qpRiR-#oV!>Fb0JU0;qh-!UOx7{#WLY1Q);l;4eDvN~t*XXz_Yt`Uczx?{ zXJ49>FhHycML3=pMn7W*$LMqI{}!}kI=%>K0pmL$%Y34&r%W<*tP^9Bu7>;&s_vMU z!`NvDf_8nUv>6XJ@+`5YI!nlGA1Oer2HfOiw}NK*X=pFj+gqMZ`n3GcDR}uwAxQ6#dtr8STl9kq$pw zCTj;_VnSm@8}EHWaau;CzGkYPE;+%0_f&a8wRRA(QHb^nJ02+qKjwix2psW0u1Z=c z$_7Y6`>MMkngrShFu@@c0ycU;pyvyHU&$OxajrJ zPZ)p+%fz7wpP-IN32N3~ibTOk0G?-AAtn&wfb~5Skw^$xjlMQblE(K!7Z(@5DwWC? zsFo=|E1GTfKVC#p9=$U=Ry9ZX(>%4y4bn`a0%t`G75{;g+>tR2k*|#&VHi* z_tn)^MiW~;s{YjMCkWj^>0olM{ySD=fV_>i83HAVYwY?^SKu+;!?qhB+K|M#<3~w$ hJV%ZkIdbIi<2O}d1MsyiN&El+002ovPDHLkV1i((?&|;m diff --git a/src-tauri/icons/favicon/icon-padded.png b/src-tauri/icons/favicon/icon-padded.png deleted file mode 100644 index 9b7359bd61ebeaf434ef283da9e0f0c61b678091..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1037 zcmV+o1oHcdP)L%H?v!G<64q zLAbNC)0ZVLp(5${|hc$hT$eNNxuZ z_3g=I(k_)sTWQ8&Om8?G?&Wo&EctPn)_8(ruxnS66S*8f^bf?%cMXE4r>A4dfm{@N zczF2Zh(2l27>~yxl&BB7FgNP1zDVj1k`b95xWB)z!?*Lh-CerDuuQY2hp z#=OFH=rNBV$D#Z?CvKwSd{8;S$d5*&Uy?4_nrmxoVZ_i=TPGOZ#P4&Yslv4k-Mmma zfCav1kh=5P3#(Pzcq6GToY-Gu>#^^JXl(O!Fp>Ce`)0QP2NvwWh?nR$%Sp@~i0{G? z=BQ%4s~+;6(B34*0>_Soy+%2Fq%DUbyA8-L4Xv1Ydz+h^O>>uE#BHZBb0*ON%?`9> zG5KipeiqrY!8pNPp35=HE1cX*8mo~}n<8|QjEB=#5o5aOdn5_qE@I3zUJs(}n!M8_ zu}yhGS7#%aq(fkS2j;HqLr=N(95fEtIPQ#$O)k;)Q~anZ*Pesd0bBJ5)XCd;qmj$^ z@pe)n>E>ll_+91NbI|O7O$C^A3p!0M!`L(1B;1*V!|B4ockd-fqeA3wTkJ-$oIb-@ zz>->U7LfZbnbtfu-t&6d!WbqjqZ=5Rc9jmFd`hRPYaLSR0;9%VXiGjcedVW+gn=g>M|eRwq$;8RiA*mxNs2;xp7F27G{zITE~iGJ zwq<%lqr$wPXuEb5c$87lu!< { - const value = Array.from(keys)[0] as 'light' | 'dark' | 'system' + const value = Array.from(keys)[0] as 'light' | 'dark' | 'system' | 'color' usePersistedStore.setState((state) => ({ appearance: { ...state.appearance, tray: value }, })) @@ -249,6 +249,7 @@ export default function GeneralSection() { System Light Dark + Color )} diff --git a/store/persisted.ts b/store/persisted.ts index 326d1db..906a6a8 100644 --- a/store/persisted.ts +++ b/store/persisted.ts @@ -1,5 +1,6 @@ import { invoke } from '@tauri-apps/api/core' import { ask } from '@tauri-apps/plugin-dialog' +import { platform } from '@tauri-apps/plugin-os' import { exit } from '@tauri-apps/plugin-process' import { LazyStore } from '@tauri-apps/plugin-store' import { create } from 'zustand' @@ -134,7 +135,7 @@ interface PersistedStateV2 { acknowledgements: string[] appearance: { - tray: 'light' | 'dark' | 'system' + tray: 'light' | 'dark' | 'system' | 'color' app: 'light' | 'dark' | 'system' } } @@ -212,7 +213,7 @@ export const usePersistedStore = create()( acknowledgements: [], appearance: { - tray: 'system', + tray: platform() === 'linux' ? 'color' : 'system', app: 'dark', }, }),