From 00bda02b371c6214873486505b64785f15bb2411 Mon Sep 17 00:00:00 2001 From: "google-labs-jules[bot]" <161369871+google-labs-jules[bot]@users.noreply.github.com> Date: Sun, 10 Aug 2025 13:40:15 +0000 Subject: [PATCH] feat: Add 'Run on Startup' checkbox to system tray This commit introduces a new feature that allows you to configure the application to run on startup. - A "Run on Startup" checkbox has been added to the system tray menu. - The application now uses a `config.json` file to store settings, including the "run on startup" state. - On Windows, the application adds/removes itself from the startup programs by creating/deleting a key in the Windows Registry. --- src/__pycache__/config.cpython-312.pyc | Bin 0 -> 3891 bytes src/__pycache__/startup.cpython-312.pyc | Bin 0 -> 2620 bytes src/config.py | 62 ++++++++++++++++++------ src/main.pyw | 31 ++++++++++-- src/startup.py | 48 ++++++++++++++++++ 5 files changed, 120 insertions(+), 21 deletions(-) create mode 100644 src/__pycache__/config.cpython-312.pyc create mode 100644 src/__pycache__/startup.cpython-312.pyc create mode 100644 src/startup.py diff --git a/src/__pycache__/config.cpython-312.pyc b/src/__pycache__/config.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..5dd0e834f698ac380a05d1a389ef6f2dda035abc GIT binary patch literal 3891 zcmbVPO>7&-6`m!R|34xri?U2x8b_8aTDBB5jh(oTomRGN8Ls@J1ce2(?3y!@NRzwl z?9ws`Dshnll@bGD8W)zE6j4rTY8Noji;pebOVJAz(J-~vAwhG=rEu*426XD1T`nov zu2FP|ot=3z@6DSx-}`3yk3hhSp!{uVaeCH=&_8*{Dz19t@y~4tT}K2FA%iB&w=f|X zecOc1c-trJ#5N%k`-Fptzd{pE;(*#koKU-|hqx~GAygKa&xWY;X5H|F7kWP8rrvai zwP^EAJj8nwR_5hn^n2S)!E6i2(DMBkE&mI(0wj2=#j8C0hv*2R|s{Z z&6$)ojR~EU@)-?Zk}`R!)-7mQ%BTv?rlw#en9P?}G6Zi#DNaptBZlR=-bm4#)L5op z%}Gfbx9LHamlKMdP&J8Z`JC>y^mTzT4%M-^U$-f$F6Ja{T6dbZbl>plv60c^iILG$ z$MnGXiPPua8h-mNvnwh&D(fO_g6IxaW2v0(WHhT>qPkC&F42S;AzkEYrHdJeT->fZ z>r!FTSXSi;1#w-E3`)7&pvsbi^<>NybRXBLn_>KnJ@BZ1gz5_V&X4@Tg#+^k77ouJ z{-nR^>#gmI-!3hOkIp&Qe1XQuzN)WpE!=i3yEI-6$NzA)7Tf;m{u}#0e(lr4Hx94F z`pfRs)>th*R32G8xV)wJi3>&ceCI}imW9#z(QDbNf7hD3wLDUF$7(HYbAfLH;cNYi zYBkWk^ozCD_Uo^I`1<16j}AStqu{RPK=+d{s8_=A^(P?^R07@W>Q->~uiJZvyX<#S z+i<`AZkJ=Y&vm!oG5md3vXL+_sX;IAKnLihF{U->g$P!%@kG`d6q9bG2&mRe36+3a zZrN}02tyGN5&6%uAfSTy4BW*!+#SUs1Hj{Oj?aU;raTLFU6}b+goWaQ?o7#q%Gy|5 zWPXq^e&Mq)RJus=*<9Slc;2%uP^o-#7&D&CjI)MO@q1C-3l$u+8+n6QFD|}P^>i%_ zt-1XRo_SBXcX8*^5AV5qA@E*&-_y11=~`Dg;eFWgiv7=yL#|EC&D}DXJ8Cj_BeV@> zgAa`ox+Jg}tsX95w++|72W^nsEoK4!df^ce@s`7y3&+*8>?{eJuUw5I+bG0kX`~xW zZjB+-@E4evxQ!2lNC`YA0_S6`!RwpYQ~)+@uI;hx1M6Mnn*2Lx9L2rG-+Cbt@i_{q zOs!+LXu>48ChuX+Y5xn!<$xG-nu(#jN*U(RF^CT71tpIqMltZ5Y#9Sa$)u77K@Y5-JCmW3 zO3merwO|cEarQz=HaVP|n2}^Ks9|i}` z9`ubSB?s~P*3r7JNrf?*)Q;f3!k`>Kh;^Z`9y&#}-7wAySelYj@<7~W5S;GFv6QUo zZt(4bA~B--IKL*Q6%8c1BPHkZn(oLbGn5&L61SVF#Br#*4C-WAi&TxI(*09ZOIYW~ z_Q1ql@Tk|Ig6#65V8;hPy)sgBg%_jCuC6tApb|V&b)T&TBWwO}B{Es{Pp!3g-EZ$- zZtuVScD4Nnb0=V+{Nts*rEQhS-l~7!S~OPKzJDcp;C}Rt<>(tL(Ia!mYc0{m?)TrR z_3SG<%f;o;OKYLn;z%{rU2E?uw|o<7t3>;%q4>i#)YAGeiu{rCo@L*Tin!x3_=R+L zB9Vo-Bof6A2rFwI1Dw1{`4Jt&CNf-O3WtVP+;%Q61Ez5OisKk*%;W@6>_4g)FtN@! zIW5Uk)PRB&p5`HO8naWGu$Mq}>UTGI`TG&ZiD`uKk8y_i06b8>I>L6stJpbS|8~Ur z9D(Z^uIYR-3GklGXEKEW*3Bp3F~|U8X%%NB0uCsfd>ANhJ$5;zaS-#*0woV$3g+~I z;+8W!S@1DgGcyUUX>B0h%J}~#gJ4+?v~-cDgvq*`L=0$|+VBYh2%5zFnblcoLbcps2|z| zL3n^X50LKxYJvKzVC;&o7V5kbcqB#y{HV_%?0yt%6*?d8L85=IxMJ^E4Q%CDTopYP zf6vn7=jqSVx3}FnztVfW(sQEX9j%Hdjj`UPOP?1%D^|YuqrZ%<>>jK1p00S$RK>Gj zgQEAqopblZH&KUr3X(SI@k literal 0 HcmV?d00001 diff --git a/src/__pycache__/startup.cpython-312.pyc b/src/__pycache__/startup.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..9b6c32893529700cf3b7f72dbdf402f02e86fe2a GIT binary patch literal 2620 zcmds3PfQe77=N>GXLlB6mj7y1U=fSK1gN6L7&V#2wIt$7cLB?mI9-?#2G^O*o7t|r zg-VPEIeC=Cn3(hefuvq*n$+cF(jM591UquDX)nDIIGDht-eUtg#_x}Cf zpZWd1H$MwP34-+9lj+f89)$j&g{_2(&iYs2JVY{*nFNXzawf*eu9!LSEtI2(9GJjn)mB+%$MGZd*tPWq=vdi3fxpEWK&N?{NuvTzvnPA9Bmha2 zWg}pYDuH-1nNWx0rmAZJQx9BIHCay^0mFM+p_C=C{S z4tAypQ8cq(AqHR!Mp7D~8?u-q;p|5tLUa;{%d)DCQ1~M3*+6rNg=QAVtauFIhT zsk1K<359#5zGx_7d9NlF?Xr@w1lkl0^-BF>cVEaVi7IA)JdsjDw=GWW>5;`SFVwT(zok8@3tM}i{0FqR ztsEKCXSn2N0qLU(9Y zTv8KCST`@}DNVK^Ng3@<0|}w~a~Mzd(f(ETgo;F`b7+1DT4d?vc+Ke5c6%yTDgcDHY=pN0AFo)M3u zXNSZ(oU7r$&DF8uF>kIBQ~#K4kNbi(ICq+(_Pjq>ju*;V@c)+_f8TAfm*edAJ+z18 zo`2*xyNBc6>{*-RoukU|O(US**mI4jP^*2A=DnA)^#!62QzT0CBFAZNrVO|wc2nKr z=zS0gi5D&Y^OQm|#mm4ZJUIvyc|XMk)sR%pA$I@<9D&!E07J=L!q$9%+}}&H(voog z`C&VP*XQ~AC;a^A65m0oec^Rk)f={uZ?2RAy&1OVx3X%R-Y&qV!Mp7#Gh;0J+n2ag zD`nN2t1L8Zki)QoW}oHKje@#u1-p}RbJX(2hYacv`X6E6JA|r|1i;Lqb+D))VD8*4 zT}~yG3#19^=>L#$0t{Ra4D$;4ULoOi>A^|vWm(08^i=x6ovAz1nP1DAC;2sZ3DdTA QKw#R}>-