From b26985ccf342f8bdaeab09bdc5184f72ff762f4f Mon Sep 17 00:00:00 2001 From: FTCHD <144691102+FTCHD@users.noreply.github.com> Date: Tue, 12 May 2026 18:35:49 +0300 Subject: [PATCH] padded icons for linux mint --- lib/tray.ts | 13 ++++++-- src-tauri/icons/favicon/icon-color-padded.png | Bin 0 -> 1267 bytes src-tauri/icons/favicon/icon-light-padded.png | Bin 0 -> 1115 bytes src-tauri/icons/favicon/icon-padded.png | Bin 0 -> 1037 bytes src-tauri/src/lib.rs | 29 ++++++++++++++++++ 5 files changed, 39 insertions(+), 3 deletions(-) create mode 100644 src-tauri/icons/favicon/icon-color-padded.png create mode 100644 src-tauri/icons/favicon/icon-light-padded.png create mode 100644 src-tauri/icons/favicon/icon-padded.png diff --git a/lib/tray.ts b/lib/tray.ts index 25e0005..713cacf 100644 --- a/lib/tray.ts +++ b/lib/tray.ts @@ -153,8 +153,11 @@ async function resolveTrayIconForTheme() { const existingTheme = usePersistedStore.getState().appearance console.log('[resolveTrayIconForTheme] existingTheme', existingTheme) + const isLinuxMint = platform() === 'linux' && (await invoke('is_linux_mint')) + const suffix = isLinuxMint ? '-padded' : '' + if (existingTheme.tray === 'color') { - return await resolveResource('icons/favicon/icon-color.png') + return await resolveResource(`icons/favicon/icon-color${suffix}.png`) } if (existingTheme.tray === 'system') { @@ -168,7 +171,9 @@ async function resolveTrayIconForTheme() { console.log('[resolveTrayIconForTheme] windowTheme', windowTheme) const pickedPath = - windowTheme === 'dark' ? 'icons/favicon/icon.png' : 'icons/favicon/icon-light.png' + windowTheme === 'dark' + ? `icons/favicon/icon${suffix}.png` + : `icons/favicon/icon-light${suffix}.png` return await resolveResource(pickedPath) } catch { @@ -182,7 +187,9 @@ async function resolveTrayIconForTheme() { } const pickedPath = - existingTheme.tray === 'dark' ? 'icons/favicon/icon-light.png' : 'icons/favicon/icon.png' + existingTheme.tray === 'dark' + ? `icons/favicon/icon-light${suffix}.png` + : `icons/favicon/icon${suffix}.png` return await resolveResource(pickedPath) } diff --git a/src-tauri/icons/favicon/icon-color-padded.png b/src-tauri/icons/favicon/icon-color-padded.png new file mode 100644 index 0000000000000000000000000000000000000000..1c7241eb98c810273dd5bba0a63097558ed26e8a GIT binary patch literal 1267 zcmVi<|5Z*lyOf-|kbeY02^aLi0s7%0QQg}QW zi^`;q^aMdVTaCmfacAfWMAaDua-5$cb_7+9lfrxhAy$eMo-u6~vI+9mdyq6k5eMRr zu8ePn1K@u4c5ipT+ao}Q3Kc3;c$GfrgE?U?2B;mc*M{2!u$*N)BKC%%`Q1D`Qrdvu509;}DfWTD z$}^8w4#KeBDr&HN$FG(Jf~S!f7=~=8Hm$tE)y0KC^=XBHk%_%@C~g3VE1Je&)=ox!NI`5GNec?124%ns^TE_- zcbrfm#g&VJ1dk!>yc}@>3Zk$9;mGW4?d&yRDDBC1dwqA4gL>fq@Rge|wE=TPp(Orf z-P>Tdukx#vD40aszt!<4+oD9SiNoo!1h{qo$=G#U@!Uy6E)Uo@Jd02=lcdKip{j|% zpKOZ`Jyth1mdJ-uc-#5=c@s>toyU;O97C*n$km zMx#Qi#VyDIl%jj~uBugSy~MkJ|3B!lXQ#^v3x?rs$g)n_fYZ1?Oy~|+0GA2E2MOn@ zN>1Ql^84=5t4$tz&I?Gm_Q(InO@8}UD;=@ze*C@w1W?8Rg#;>166v>AzUXq???XBC(%4HOQz@ZNOkFbT zL3V%lo_cOUVQ}o5<8GFbIjd3LRUNIy5vcn>bLBI>^kWlpfq0`NSECo_SB)yD$`U22 zQ!&UeJi0gZfBUnY&l8GuvMaAp=tgGW+;#YHR&|Y~7m7a6xa;5g+E?GvK}OL9$JR^a zT_-LI>(Y&wEC)*cH>wzlooKNi6^{?1-@9Tjslam{Jhi|ynlL_P9sb*0F<92iON9y* dDpaU2jn|C7z(e&-9iK~#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 literal 0 HcmV?d00001 diff --git a/src-tauri/icons/favicon/icon-padded.png b/src-tauri/icons/favicon/icon-padded.png new file mode 100644 index 0000000000000000000000000000000000000000..9b7359bd61ebeaf434ef283da9e0f0c61b678091 GIT binary patch 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!< bool { std::path::Path::new("/.flatpak-info").exists() || std::env::var_os("FLATPAK_ID").is_some() } +#[tauri::command] +pub fn is_linux_mint() -> bool { + #[cfg(not(target_os = "linux"))] + { + false + } + + #[cfg(target_os = "linux")] + { + let paths: &[&str] = if is_flatpak() { + &["/run/host/os-release", "/etc/os-release", "/usr/lib/os-release"] + } else { + &["/etc/os-release", "/usr/lib/os-release"] + }; + + for path in paths { + if let Ok(contents) = std::fs::read_to_string(path) { + return contents.lines().any(|line| { + let line = line.trim(); + line == "ID=linuxmint" || line == "ID=\"linuxmint\"" + }); + } + } + + false + } +} + #[tauri::command] fn unzip_file(zip_path: &str, output_folder: &str) -> Result<(), String> { // Open the zip file @@ -828,6 +856,7 @@ pub fn run() { update_system_rclone, test_proxy_connection, is_flatpak, + is_linux_mint, open_full_window, open_window, open_small_window,