From 40c1b2211b091f003cf4bf5daefa5568d7ecce0d Mon Sep 17 00:00:00 2001 From: Oleguer Llopart Date: Mon, 7 Oct 2024 10:50:01 +0200 Subject: [PATCH] New: Prepate flathub release --- README.md | 2 + build/.gitignore | 5 +- build/flatpak/.gitignore | 2 + build/flatpak/128x128.png | Bin 0 -> 8513 bytes build/flatpak/16x16.png | Bin 0 -> 694 bytes build/flatpak/256x256.png | Bin 0 -> 19035 bytes build/flatpak/32x32.png | Bin 0 -> 1757 bytes build/flatpak/48x48.png | Bin 0 -> 2821 bytes build/flatpak/64x64.png | Bin 0 -> 3831 bytes build/flatpak/org.opencomic.app.desktop | 10 +++ build/flatpak/org.opencomic.app.metainfo.xml | 67 ++++++++++++++++ build/flatpak/org.opencomic.app.yml | 60 ++++++++++++++ images/logo-win-poster.png | Bin 36862 -> 33413 bytes package.json | 78 +++++++++---------- scripts/main.js | 3 +- scripts/opencomic.js | 4 +- scripts/storage.js | 3 +- scripts/test-postbuild.js | 64 +++++++++++++++ scripts/test.js | 6 -- scripts/zstd-copy-native.js | 2 - templates/about.body.html | 11 ++- 21 files changed, 257 insertions(+), 60 deletions(-) create mode 100755 build/flatpak/.gitignore create mode 100644 build/flatpak/128x128.png create mode 100644 build/flatpak/16x16.png create mode 100644 build/flatpak/256x256.png create mode 100644 build/flatpak/32x32.png create mode 100644 build/flatpak/48x48.png create mode 100644 build/flatpak/64x64.png create mode 100644 build/flatpak/org.opencomic.app.desktop create mode 100644 build/flatpak/org.opencomic.app.metainfo.xml create mode 100644 build/flatpak/org.opencomic.app.yml create mode 100755 scripts/test-postbuild.js diff --git a/README.md b/README.md index ba9604d9b..1be7af77e 100644 --- a/README.md +++ b/README.md @@ -65,6 +65,7 @@ You can see the changes between versions in the [Changelog 📝](https://github. - [.deb](https://github.com/ollm/OpenComic/releases/download/v1.3.1/opencomic_1.3.1_amd64.deb) - [.rpm](https://github.com/ollm/OpenComic/releases/download/v1.3.1/opencomic-1.3.1.x86_64.rpm) - [.7z](https://github.com/ollm/OpenComic/releases/download/v1.3.1/opencomic-1.3.1.7z) +- [.tar.gz](https://github.com/ollm/OpenComic/releases/download/v1.3.1/opencomic-1.3.1.tar.gz) - [.snap](https://github.com/ollm/OpenComic/releases/download/v1.3.1/opencomic_1.3.1_amd64.snap) - [.flatpak](https://github.com/ollm/OpenComic/releases/download/v1.3.1/OpenComic-1.3.1-x86_64.flatpak) - [.AppImage](https://github.com/ollm/OpenComic/releases/download/v1.3.1/OpenComic-1.3.1.AppImage) @@ -73,6 +74,7 @@ You can see the changes between versions in the [Changelog 📝](https://github. - [arm64.deb](https://github.com/ollm/OpenComic/releases/download/v1.3.1/opencomic_1.3.1_arm64.deb) - [arm64.rpm](https://github.com/ollm/OpenComic/releases/download/v1.3.1/opencomic-1.3.1.aarch64.rpm) - [arm64.7z](https://github.com/ollm/OpenComic/releases/download/v1.3.1/opencomic-1.3.1-arm64.7z) +- [arm64.tar.gz](https://github.com/ollm/OpenComic/releases/download/v1.3.1/opencomic-1.3.1-arm64.tar.gz) - [arm64.flatpak](https://github.com/ollm/OpenComic/releases/download/v1.3.1/OpenComic-1.3.1-aarch64.flatpak) - [arm64.AppImage](https://github.com/ollm/OpenComic/releases/download/v1.3.1/OpenComic-1.3.1-arm64.AppImage) diff --git a/build/.gitignore b/build/.gitignore index 7bf91b839..0da0c0095 100644 --- a/build/.gitignore +++ b/build/.gitignore @@ -1,2 +1,5 @@ *.provisionprofile -node_gyp_bins \ No newline at end of file +node_gyp_bins + +# OSX +.DS_Store \ No newline at end of file diff --git a/build/flatpak/.gitignore b/build/flatpak/.gitignore new file mode 100755 index 000000000..03391e07e --- /dev/null +++ b/build/flatpak/.gitignore @@ -0,0 +1,2 @@ +build +.flatpak-builder \ No newline at end of file diff --git a/build/flatpak/128x128.png b/build/flatpak/128x128.png new file mode 100644 index 0000000000000000000000000000000000000000..ba5a9af9a4454275f09682290f62590d27a29eb9 GIT binary patch literal 8513 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

-Sm<)k;m5cuv?%(ojqySZ0`q(O{pNc`08Ox7ZzH;ET0?V@hhdCg3wle3-JP z|3q_x!_NZeX~RJ+)9FSg`$ONr9uj2M*Vko(l!UK(8@)jAMTLdS*G^xrc^ne53o%bB z239oKVWZ;{no54TpRDp35`m%jGv!pNRJCcE5*(@g%3e^uZl)=9t$##Bj4qx6&}$#J z%KZVSpGh?h3~uPoOeP9v6xdM6Yd*VQB{FxCBWW2zSwZ`F3LmjJz1B;_LI?%QDWF!G z_6fYsnYZ}JUvMHOSMmSmOVP}>V0`KF9=9?D0slDs8}dbqiVYp5V9jC(>ATqhonw=< z+t}Lep1CqXxskgM?;wsd{<1$fvT&D6>M>(l4uwjyhtuuNF55F{|2aO4aeL!|a%GR=`@oDV@G^YF$L32n)G8M(=wMWMcGp-FM_I<3 z8f+)~?m=YG(HbR1cGK|w^mMFPun}N608qC+!Y3knV96Uw56ev^21@oWebTf09K?`e z{TsGYPY^>t+8%|jBf914W6 zX#J*aYhFJ|0P_+^Op5iMEveJ0J6}t$7_U62%SDsmiPcjl@CuE_&b%4&BRxNt_53d^RV`lDLn) zgtwTv6$2X-pYvX6d-egD*hYZQBH&~@|DJclRipHedQRd@Y}vzU3N}#E6hEI$72y}? zsk60ncxaGE52s}{%{a>rwq6 znJX4%MeTj|fYtC9W`lw-@79#+4&@)VR#!nUhtoL%Z4C{_jCn-kAO2az*8r=(JV+HP7OZJGXmBtihK@rC zcBKojd0vXj7i`q*b?7?pY>ABu6~mdYb+7K2`evMC_{aa%1azBc0EF8^Z^Mo}rNn@2 zP^$FU1-920h6UaqPjLt$ZRQh8k!GS1>3DTE;bsV+>~N!`Oy&$In>dnUx}s%x&eE3_ zNS+iggw&p~8}Z`A1k?2f2kogqOcvuL=<=$QH$0y(n9qB>A>b95XKZ_Oz;aPPCZgB; zK@{5ZK79+5AUT+9?I!jmFROC)2l=8D4PHU0HU`c8HFC-9U}z~VfSStA+V&)3_f9Gy z{%Z{NsXR*Vov^2ePmR=$C*w){d>&3{Xcq!N;NuU%k}dUz{=vIIG77cgLjT{FLAsSJ z6yIVn*#7{CXR9R;g5`E{gOW7>WxM8djV!E*GW2b3?(uU!Bm>^ zP8UHGX%t8dDeNMbH9`FGdqwaRX6K4AyLpyXf=(wh`b;x&zpFi@8x8{okGNG%j9e#J zT3tv%hnQyD4X^N?o72@_3rWycS9+zYd$|nza+oFDZm;;;BQ9c-i{*v| zilp8^ktaE1xb*m-s2SMVWQ?0WbvudZ~caZem-IgT6*0g(0^Uc%7Bfm=OCAshU!izhMm<-f(#1$0!@fW_7M z^T^#;NF+y!+!e`%-4rr3s}hXdg%)IwE5#`6^t~hFkW_y4S_{1Eo!bC=@ZimUf4RS) z+l}cX^W_z5_9`m70n{fCBOZHODwE16Nn457;tHY}v&D&w4_}oE3dNP8FG4a5NCNZ` zVEgxeL$c+Zjqv2c)(G&u>ch;!B4@iBqvVTg>2L%u8Yrq(!yE~Y?{ml8g4ykoEOn8( z*t$1~04tHwu(`~qcCGja^EKPN-h1~#YJ$t<&i9LMM2nm_UZ9zo8C;#ii(P$(2pJnF z6C>lZ%@TQ0eHTy&2&OV08%v16av7^CjFyWyQ8HYS15t&fNamCnB3mUfOe@>pJMau& z!6t;43=aPGp>Q0grj4Up^(Je&j@{>1ST@*|G;3fEz*|r=P{+Jn^a$?vbXse&g60?c zC~SCF_JA)GBqSkuquTmJQ78uxx(wx!jgIJ zMA8{9K^lQi_EGKYFgkgYI2#glU_KFR@|1KuwaX|KqAH=|4j+>*n zM^X5I7$*?y(ug+B!M5=%#I9wAYrox-;8HWG8R2ie67430%%V2tR z4Ct$73w+`bXz626&Z@5c>cv{$iefCB#N*ALvYRd9KouU@3rXP>Ehqffy#nTRK7Mrp z&bJE`#o0f9p8AIHAe)}imz_^V3rnuWHS$nq45ONcKNKBP$XgqppP9UkZvja*eaY$K z(l@-fLyihrIn>aXMQCX5sIwkBXO8Ps)O0@%Qeeq^&zhIL)6$L^Lssag>Wv0d;mNOu z=mK22t%hRGy~h(a7tAE}z4_xj;(v6-BSHBOhFL+{`9iCMTS6vEul!sLKbRp2Q9wtIEFg^CRAe(U+5#9gwRk7K~N`WzL?3JU<0=CSQ`QZZ1K`~GLfDHp`#l^ zfk=^7#n*ODZ1Qk?;mq7zC+Ub!TqmCr-d3UJ=p|4xN25`3VgN`pkE7&RK7Ujk&|zL9 zB1P|u^Il5!o_P3DdJE(1yK&Hzx6m$Nw-(U_3x0C$yi$id^EEB>b266}FweG=f?;agDWo+NPf%o3fq-)JK%h<`~I~C|e zKPIO_7ZRZ*)lg%y-h`9=JiaVhPPl{;L?#?~pbYTsHWWWeyYCLsl~cV0tEEC#M1+Hs ztz4->M@8LOHN9nseVLm8g|A>lTlbY{b2M~u*J2GvRTVgP7KX$l*ds`{0q{2s9a#ln zl#~vuvm%7w>_zgp({?&HJ!7o&PGH;kRw-y%J~BZ`Do472?8?AEp0X(|Eq!JY|9D{W z_Mu{3Bceoq+1LAiS9=J-54l3tCX?ES;&vMb$H^>>)G@}D zXE2!9pbeqGBTJ_{5sv+RM(TxJrnMjB?td-}RUF@}Dxjzjyap$1K4Pw&=N-iDYVK_j zsPFtrq_9IlPp2SK@S85$BP`1+N6QpXh*hIs`3d_TC{#dAtE+lh zWX~i3p*RdFuYahhzy!G507*&}GdTf7RJY>xzE;kd#W6>0Of8TZlkrP`)t@QU^pBCs zD%pHa0D=9(IVTY%VbEW)%geA&M8oN+|4u@D0dS#Ee`vc|Aag0GG-o*+`QP>sko*_+ zpWRND;!R&(t54oY@g4*u084Mc^J%SL2kX#aX_*k3vwg~+A zXTtxk^f+4}K~`7#vTjNBZ>0Lcha1RE$1ti1=j->DW?H#NCN7MgtPIa@qcw`eHsO}k z=uUGiotY1&>+reW8>{6f_|QtcEt-N~sX%!>y!|&%#KbrmPzW+MsQ}!~gj3Wz;91ye zrD-wy83w*eyb$D|YmTT|LPJ6E6rg@AD-ZX69em@K6SFr5*{&z|_xEohzB=N6XN2LC zq=qhVljo!ji!Pc8W^!es-aCCb^}K-ABKXkL6L@Tg0W%{C;*gT|EaRY!=c|hiXX|j1 z>t>qy3KHG&NgX5QAfd&t$hfAFT)5%BR!0GB69KK9#tdkNCm7^J-tWG*-@gg6CvO5O zHbgkj^HES|Jf6P#xCfOhUSM9z$czwwC-Q4+_E%`1F&yq)4BS#P@54oGvgEz}2Vq5| zdqOG7f|3o(cV))NuTRlsWF`LM>S>=fobD-ToO+que<6+OX?u74dAE7ZB$$b; zZOk|X%7{#sbkhhfGveeKR(SKV3WXK6S4+=iy~}H&v&<)c0_-7zxNaQ`Lz*M#b)Em} z>&8lJ)|V=-Kd!INImkKyb5Mt-qpOSg(gQV4^0!|#ANWlqV1Z*XhJY)quKNvbh2d@t z>;a9a{WFxg5gN_o-=7j0X=#hL%2bf7jyn&1i)|2$rZ7PW3w3dL!0wj=ownV~B73Q> z*XxOm)pB742a(n>8Ms~|S+E5YX5A!ef*g}`%X4FYKgE`5(1C{seJCpzbi;D(_Y^g_ zlFni-vsy!7$E|BCAn)i;yGwz9TI-kkFT*6K?Hkg`@hJYh37`_Y6;4qz0vcMkl@F7k zgQA_CBt{Q@K;(>mPiG;r5*Eh#Cj-M|09N9<5f zhcUa9*xb2uhv((xE8V3mMD#dYkh^ymBn^I52CYDn zG^97~>2A;~l;F;1iSfQ-!GZ-Ni7r`{`R-`*_o+U)!_UnmU_DCA?G>;j2On zZH@HG;CB-VSWgk!Did0ggX9dhC-?5%H@m1vTkcLpy5>eECV&E)QW6LBkb&Klo8P}X zy7}v&7)P~D_rfWx%t7dy(HGb8lkV z=fc7w)4_v>=C^5_-?vzOOP1f3%P%MUJRl^n-@rni$=F;9N&G&D%Q7Hed{d0 z41Ny?2`p6tN8Z4LmL%c6eO@176G(vsl-gzpp)V)^T}C<-$HhWXco=Ac0vWL8VOXI$ zehhMt97bOJi2Dp`i`&pOp(SQE)pD&(19k5!h)|5$A@msrSG)2Z!r%tcA<(6As zYSTEq*MWV;+zh{L^;-!E*z*P~l>$rOz`dLXqQ~2{Yu7m-AaFe<3d?0sNkg#Vt1>7k zXcIoWSJ*h;($K@L>sx2|9a()D{H?$n;D!ZvbE*Xl5!`p*eO&?rgTBS=u~`P0I0c_g z#o4pxwsq{-v0IzQ*Ku{^WcTl8pRJ{?f2(ZuWpBV%-+(17u;d50MDWDD_ukvZ*Vk`_ zN|mRUK_{9RUwh_E;MxuyI&@`$Z%OcR<9x2WZ!g0ygTEDe1Khp=TSRadCsAl20@5n_ z{O;YmKhDa^PQ>AnKV=}gKdYaUqewe)!U9J` z!1V}7V(FQcD_2cON=iP7gCw;`1|W;;q`0`G9{1XB#flXZaPOaG$+)8vz_;h_%ix!Z zz%CK|s|g~oR1F>>wdIE&ez=>DkMGy$6{H&s#y@4i3MRzbD=?$K`pGAs?7`OYA7=O7 z664zf{;e|b<;zt>(9WuA@F44g5{vZg;>AnG$Hm1Tz+6GG3}8CR&o40G9v=Gav(Lx3 zX*`b0;^seSmDO)2TYUKviUh3l1I-}iDoLzyGOK!-fqT z$h!AWGy!_9wddCHW#G$KixYu$cwq4gxFG_U47gzesU(o&r(T>eVZw;x$GyK!PEI+I zlcUV{1P_5&_}pBTHYFw1-_Or~_4Mh}N3mA^e{8p6lXUTYG!J|A!2G`DzIw zu;&%nA_I$Oz|9$0yaNj%5Er;pw{G3~Y}@wToUpL4t!Ob%VRb=?rN#?JqY1<)B_*Yo z(48;9wFZziZ{50WPM0oS`ry4h$7b#=fVWtAOH6Oe(sMy?&)UntmoL!}0oN;Vh72rW z0@pj>5<&+yy7h}<3@pRgN2dmuA2`*3=C<}V0hLLT1a&*bmOzv2JcMgA}O%rCzj zT}Hm+tFM;5Prj3UH~9_rx1MHy`*C(H58DCzeKr8kweq(+0R1g8=;ceQL|`jKxY-67 z+-ipq?zAF>d#y;pnix8=Vj+k}SYSTNA&bY^WSd3)!wUEB9_N7CB9B-Bydx)Wf4~md zxpDlR4gmje2cWlh@nzu4mt=^bIb`675FC-hJ)C?(dpiX20EZ}=BM(@Cn+tF*$nUYT z?ABm+1bAESy)&SffiGW@Cj(~)!I~5t5rc&sECgX8iMy@H!dc;d_AU;<+i`x+7SOH1 z?kwPC(92h=CIfqfV2>0m#9&PhT!OHWL|YD7I3wK8+-?Wp|Ht`#F3_#P?g;QQ=;f=` zlYujYz$FD+#K0v7E4N^GT`M)z62tLrpUn= zvTzpA%>}s(cKMR879@q15c!fX`SMVbkS`Cs{vWHVi+!dh{j2~0002ovPDHLkV1f@_ B!Rr73 literal 0 HcmV?d00001 diff --git a/build/flatpak/32x32.png b/build/flatpak/32x32.png new file mode 100644 index 0000000000000000000000000000000000000000..b94978be9b9e26b10eb79c838f1c2667f8237988 GIT binary patch literal 1757 zcmV<31|s>1P)*=H&VSFj_vX*anp>Mk z$R^|{mCA))uXiy+rBW^AvBccGtZUsCELf0jGMN^QjErm_8yjoAaN$Da;>C+d1&`5O z8`~I-#zpM&pM~eopFhuLvn`It4HQjD^GSo@<7A=ljsED$K;nJ7{h@+59PN*@u0ZgSqA;-r3oC zBfY^nBEUGknd?+NbPuncUU(Yl9$F)O*q1q&i#TtZm3V7w>kZ`4&5k1uI}BT1owe{( zurG5Yg6L-M%Ze8j73ES9HI9#uW7uqh?(qkpA);Ah#S$3a-3NwxW)W_|65eah`OB6t}lUlW#Q$q;tuq`_zZ@Qeh;6l4KcqBV`Cw>&YnuMV=m@o zZq}G~tIFl_g|tl3QOeuE_H9s+<8;tGc0V*F_dvD$c7#kCjE)8~5H@Qw{FpON+^oS` zQ}wfh!Qj5p(NVb0pG$XMQv}t0OVLNaLA?U;5g)8a4v0CQrhD1|;xRuoWhEIwFgI(k zR^rh5x7F0tTu-?V$08AEHavws+EOZdOP^ATk)Q*{y}QL&z^tJ+2*4w45&gm1W1>GD z%m=;_HmT5TC``+a0B`SR7ut97>8*fS1^5Ml2S9qq$Lx*_wV6{bA1_ z%`buWy*EXFI=EWTUgAmtYp@n;CTk(v=ktFvG7^LN$d6F0D4c}7?N5r_uoh`b5*JujUMLi@ zL?clsR^FLrtbF=WL?T`xU^?`*7<2c@MBk&3h`wg`F7*HO1LQBifSzSbF8T6K+4M|i z5UcJ4Yq2J4ivTE^K-lkxy!bZs(%w#m*Ps$XINF;i)(k$@U@g{629O^J1U=zE5c0ckg`AC2pszU$LsLDJAHSbIM{lcoZ4*q@ zKf+0e5ZA)+uqO>cw>5)Le%GyFE!Jdhu>yX7Ko=g4p!bP~(L;qZBbF`^zm|qy;2+c@ z9Cl~G=d!{=Z?2`Z$T%%iIC@JDwb`?@lz-=@_M$62EsTep}O-18^pO#m)x+ra~hb|i3{x4u{{v94mzpzV1z-vSI zx>f($6E|zH7Hg(nO8K-Taw-g{%RfgKor0<8-S!3*jZ>g+$9rN-Uws%(ZLdf{axMuU ziCUFi(EfT1GD=Gq1Q_S7ScjfHAEV>JwQ2qW#L3*O!CGmTQKDVvbh@N;M8fdP&ycck z3e0WIbbQ)jSIR_R@!3x3&o@DFpb{O=mO?^7PW4H}0C6%mYp~X|e@NQfI|@A>Z_MlQ zLcRCPG=e@lfDDpW^i>_aqS#b07jrUqdwYA~<-Q$q)N0N1Wcato<%W9yK1hgw(V6(2 zE7bcd!CcJA+{vvsW6RIa&(msko2e)-kP`+@pN3@J8gwqbeNJE>_GJ#{BF;Ao3JUUO z_0KprH#bkAP?k}?!sHA)Z5{QYgXnx<4LWG~FNe-`tA(xIU}Ry=d6>DFbFSYeISmaB zw^%IJM%p&Kb>J8rg0ZCqnxj>a@1j%lovi}$T_1`uW6ODAleA~whK9yluDI-1_!zy8 zit`?`*;40lIO9q3nZPz|+tJZ+Z=%|-$;T@1+5GbIikrK;drI~CfjtI;=@PhfH?X|Ij8s&l5LUegb({`+5EkKa8h-UIX-100000NkvXXu0mjf7d>9& literal 0 HcmV?d00001 diff --git a/build/flatpak/48x48.png b/build/flatpak/48x48.png new file mode 100644 index 0000000000000000000000000000000000000000..4be79e6adebe684a6a46c29c8205e5d9981b06e6 GIT binary patch literal 2821 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 literal 0 HcmV?d00001 diff --git a/build/flatpak/org.opencomic.app.desktop b/build/flatpak/org.opencomic.app.desktop new file mode 100644 index 000000000..f1e530c47 --- /dev/null +++ b/build/flatpak/org.opencomic.app.desktop @@ -0,0 +1,10 @@ +[Desktop Entry] +Name=OpenComic +Exec=/app/bin/run.sh %U +Terminal=false +Type=Application +Icon=org.opencomic.app +StartupWMClass=OpenComic +Comment=Comic and manga reader +MimeType=application/x-cbz;application/x-cbr;application/x-cb7;application/x-cbt;application/pdf;application/x-bzpdf;application/x-gzpdf;application/epub+zip; +Categories=Graphics; \ No newline at end of file diff --git a/build/flatpak/org.opencomic.app.metainfo.xml b/build/flatpak/org.opencomic.app.metainfo.xml new file mode 100644 index 000000000..64fdfdd4a --- /dev/null +++ b/build/flatpak/org.opencomic.app.metainfo.xml @@ -0,0 +1,67 @@ + + + org.opencomic.app + org.opencomic.app.desktop + OpenComic +

Comic and Manga reader + CC0-1.0 + GPL-3.0-only + + Oleguer Llopart + + +

OpenComic is a comic/manga reader, can also open PDF files and ebooks (epub) among other features.

+
+ https://github.com/ollm/OpenComic + https://github.com/ollm/OpenComic/issues + https://github.com/ollm/OpenComic/issues + https://github.com/ollm/OpenComic/blob/master/TRANSLATE.md/ + https://github.com/ollm/OpenComic/blob/master/FUNDING.md + https://github.com/ollm/OpenComic + https://raw.githubusercontent.com/ollm/OpenComic/master/images/icon-border-transparent.png + + + OpenComic + https://raw.githubusercontent.com/ollm/OpenComic/master/images/screenshots/main.png + + + Colorize + https://raw.githubusercontent.com/ollm/OpenComic/master/images/screenshots/colorize.png + + + Colorize menu + https://raw.githubusercontent.com/ollm/OpenComic/master/images/screenshots/colorize-menu.png + + + eBook + https://raw.githubusercontent.com/ollm/OpenComic/master/images/screenshots/ebook.png + + + eBook menu + https://raw.githubusercontent.com/ollm/OpenComic/master/images/screenshots/ebook-menu.png + + + Master folders + https://raw.githubusercontent.com/ollm/OpenComic/master/images/screenshots/master-folders.png + + + Shortcuts (Keyboard and Gamepad) + https://raw.githubusercontent.com/ollm/OpenComic/master/images/screenshots/shortcuts.png + + + + + Graphics + + + #fde4e5 + #fde4e5 + + + + +

Release to Flathub.

+
+
+
+ diff --git a/build/flatpak/org.opencomic.app.yml b/build/flatpak/org.opencomic.app.yml new file mode 100644 index 000000000..378e93567 --- /dev/null +++ b/build/flatpak/org.opencomic.app.yml @@ -0,0 +1,60 @@ +app-id: org.opencomic.app +runtime: org.freedesktop.Platform +runtime-version: '22.08' +sdk: org.freedesktop.Sdk +base: org.electronjs.Electron2.BaseApp +base-version: '22.08' +command: run.sh +separate-locales: false +finish-args: + - --device=dri + - --share=ipc + - --socket=x11 + - --socket=pulseaudio + - --share=network +modules: + - name: opencomic + buildsystem: simple + build-commands: + - mkdir -p /app/main/ + - cp -r * /app/main/ + - install -D 16x16.png --target-directory=/app/share/icons/hicolor/16x16/apps/org.opencomic.app.png + - install -D 32x32.png --target-directory=/app/share/icons/hicolor/32x32/apps/org.opencomic.app.png + - install -D 48x48.png --target-directory=/app/share/icons/hicolor/48x48/apps/org.opencomic.app.png + - install -D 64x64.png --target-directory=/app/share/icons/hicolor/64x64/apps/org.opencomic.app.png + - install -D 128x128.png --target-directory=/app/share/icons/hicolor/128x128/apps/org.opencomic.app.png + - install -D 256x256.png --target-directory=/app/share/icons/hicolor/256x256/apps/org.opencomic.app.png + - install -D org.opencomic.app.metainfo.xml --target-directory=/app/share/metainfo/ + - install -D org.opencomic.app.desktop --target-directory=/app/share/applications/ + - install -D run.sh --target-directory=/app/bin/ + sources: + - type: archive + url: https://github.com/ollm/OpenComic/releases/download/v1.3.1/opencomic-1.3.1.tar.gz + sha256: 6bb0e222783cbf529ead024c7bcf30cdc0e83bdb074db38ed0ff9c21547e3a33 + only-arches: + - x86_64 + - type: archive + url: https://github.com/ollm/OpenComic/releases/download/v1.3.1/opencomic-1.3.1-arm64.tar.gz + sha256: c4bbbb8dbabc7ca4af0417dedb3dc6c7eb2888a4c55b78974555725101db4412 + only-arches: + - aarch64 + - type: file + path: org.opencomic.app.desktop + - type: file + path: org.opencomic.app.metainfo.xml + - type: file + path: 16x16.png + - type: file + path: 32x32.png + - type: file + path: 48x48.png + - type: file + path: 64x64.png + - type: file + path: 128x128.png + - type: file + path: 256x256.png + - type: script + dest-filename: run.sh + commands: + - zypak-wrapper /app/main/opencomic "$@" \ No newline at end of file diff --git a/images/logo-win-poster.png b/images/logo-win-poster.png index 6fde1147de9601ac7ea98d6e0c910c992cad52d3..e65514fb7860146e35945f9557c388e7cbeb1fd0 100755 GIT binary patch literal 33413 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%0D(1EkWe(5YhlKYwQ z;)^&%x(nDJB(12-&y(sA3c9-XcyFW!M1c8`@#(gbM#}uDdLrGTa`tFT%Vz$~t4?g5 zZMc5gWKc)%&~?)tNS!V+We`3mo$(Hi?Xy&n%>QNevxtbJB|o%CV@&CenDQ)y_A*-t zI-d=0&h;+lwUA+1JZ1@Yhh{vg0o8bz&l`eKaTKIFUI9{gPewT6uCRC2s@2&}Dd#~` ziHPrx_*WM!qH|4)OR6?}N(4{}YH9&j*Q#wz!R2%>T`ZFe$tGI@>(KeMTm#YLo7QL0 zg6c2)zwP+@f@|^w2H1r``;bo;`^<}nR>Hpl|ERN8(Z(+ZUTD9kYJ$EusqDH0qzX2Wg|e$Q-EXxTK9{Y8#G<^1RIKA15q6 z6|NbVCQk6zlR>lBEw>lYUQPzry%Cdpl%nIu$P$m6bE~&m{tVY%FUqrA1}y@whjJ38 zeGxFd;Ly6OR&qRAd}m3;`VF{Ji@x)^<*B|^$YnM<2qr}gK!9|Kz)r~b-vAX))hI+ z$CW1bgT#@a{qWDDL2r?*&Cr*@ z!0l{ZTN(8dfqo0(_fZ$;ZKKYR4NqLXF`A;Ls}G$S=NU9I0)D{zs%D^hA(-@{2Wxqr zv!ZUgw2t~Q9hWbxAwNRg5P$QigvM)|Z*+^SE-zfM#5eH@Qpz z<+Y#-+L0ex_q*Mf*f1#xU`|I;E;td*2@%G?|q?mw<9&aKK{ z`X*BOOt^*vdHfH4P($alSYeg}>oqKVLV50JV~nTz+Im=rK}Y1cZzzRkhao7ol6H)2IGN)13V$b-jil@gJ?JYLf7%^IHp8xYCQywo-sE`~9cH zvNYzG=9fo+T89g1uivcxzNc4@D@Dix0AtWF&xA+0b(N+QL>;?E>>Ohmm?i+rI>Ts9_XM%kOt|(|TUPbFLL%Tsfp3^OTCGt=t8ypA zU++y3Vj*?Me0x83ymAdoc8#Xw19+D)EEfN<)j-z;7H-6sy)_T246Mm2+N{vsRu9K8 zw-kU-qiLn5nhZtQWpb-{{UBT8n<@I0{n7gLaBw3-{di@@%=_wgC3K*(EOs`Y>M^tE zR|5xP!_SptF6TL+rcc242VnxPXr-wqy_VXGH#uX8 z{$qf`?mcYJkxXWz6HT|DNCzmf(e}DnD<=#k)Q z@qu{^ON#OQPe*$}_XX55bDKOxi_dR~!+GUe&fmjH~24W%a zBv)#Q6pNUcm<~o7OomVFe(KBJ)gy`Ik_^=ox1ZmD&;M<9uKzNfrkW7arNpqBPS(L> z2_MC&FnQCn_N!&9C{eDu52`=;yU9=a_JyY0Dmu5ESo%<7U^lS88qWiYt$Q0)?Fk1e zy@z4HuX}w~`QTebT^B5o{MGv1bs~=9VSnOOlR#f7(8G{04z=&WL*P$^$qeN1vH0Uf z(YK(=GZsm1by*L_KV9l;quWy{0xA#Lt+&$(aUTZeAqzpyO6MioMzK{nvg_QZrLX9S z4aJdk^cw~h*>zy%*v(jBwcy!=gS%WD(qvr;4?-|>$FJnOc{Wm8ghAr=v9tV&_h2EW zd~i7$uFvxNsYjA@jE|oMnY@RIfC4IUpj=<^xaCA^%HDRm!Qu8Y@ChE)^^ZwWy1R8= zsh~?hoChsr!=#`o89JsxxgvqhPS(%dCipkMqDh~!U+KrW0KKKGP*B>vmcP zu$9E?`VHGFG&gS=m*y_9{th!+D0H%yY@mwfdH5KW+0Q_-9fB1nkMFpV0#Kj0Ch`}P2iFSGQ0b|t*1J(IUed$q@ z-k+G6uzD(v4TaNg7SruLl0^VS=QAhmb|TyY#x|`M5i| zK>T!RF}g#wcNpEqmH)VcHq_Ym$-Ce60~eHlvo}q;M`X8p(5YSL1dAPqF7V|&HZ_6W zaiP$JF%Nz)H!(3syDldTyn{x2xlEogBQ!B9Ck`$z4;3nzLrAc99`OEaPZB1}+A1{a!_QjQ?X~-7{pNSFvHSw(zQnfJ_#-PZ33q ztBHB)gvx##y5M~^6Gg&eLAvuR)t(V<1cr(zolx*2e(jT-RUc5|C*ho=DAY@Hz`_GY zXa%Tvy^D_wbxFD+M*uLTbtW$B+PlW<*_eHEI*^PV2=Zn9eS zE$kN2>6d3L?%bw@R%pvYBI-J$7+rRS?x(`V=VgWJgny-taFB+Q-;^{!WL zEl=xEN$>{~FiWpw-vv@s&e3yIp;2zR-_U~h!Zn0iLls8}!GGkocna5^Lm7o#ThcE2 z0ZT~*LC~tqX7NSU3qkqNgxrejnw3|rXIU@n4s(1=2FqFDkG^W3W7~v9)8h_pvBCa2 z>HQAgyrg} zTZ+$C)fm9sRWarHJm z=w4{nk|S_*i)|VsKv^Z>!S5?HN{rAZB+||(Yz~)!&-gaKK$|v`kxUK~1 zIrr}0**CR2_~ltA@6sS|!fWz5#}<-f)@WG*n$yQ|Z-x{uh#b1S!)^XmjQ}mSJ6%o&v+vNqaJ5bK1N=>XyNL3 zer?PCPT%CUhHVaoHpXlMZ;$?yCHlel)hCVlYRph9&|!kXAgNot{F?uD=A*eG6dHnjLiNJhJ zkLN@+j#+rpn`==eXo7I&s4DC(&TQ&lu{8W~jMRzx+Zy;g*kn{KC-%%iUfHK0_kri`u7pjqIp|`C7+H zJzz+&-zM+5YBltxL@>x%wyEH=kMtL=1&d+)SGW`-3buGgFHn8)G*Mx0>ej93q42!i>8s$(KOCYA*8{o*0{s?}v8 zvC*IYcjO2nYz(VS8KpiQ`7ZhcQOPZ*Gtq9M!dycxpN=CZ@7~?^uoFxKUMjOo;DzOn z?7Bin@kgB0#;2H4by2|=Pw-J3K?ukhmGGbE!W9x4@9VA1C-0JWu>mx&b|&cxNl?-Z zv^S|-_m?#>cb=(6qg9_|+eN$y zfDNMDqV(W{{rrQ47e(%&8^#a+7#QpB4h%6!Jj-+ZAPI^EzyXo9Cz&TalOy=c{exW( z|Nhx2j=I>wf3sTE{v*nlp| z#FK<^Ta0?Wx^v+$It<^w-g}WhY~*Bau76RTHc2nqJhS!lCLVetY|IJoSptcm`g_P#T!$*o&=i%1ax8=zDX1qFePv=FKk zBT7+e(zhZc8ajc{*+>%*5RguQfYOU}LMR)RA|-?_B~&4yMhr#zUF`3ianCpIIp-Vq zp1;>W?})Be4ItSkdX{~-HMTY1J+?Iq##XoK z^8iZt9C#bfGi}r6WMe3NOtg79vFehUa0JoB3NePa>f31{hblL%zsYv%;hP}fi$vdp zdr24(Y<)A;@rL7=!2(3-H!KL`JY^@h5ecGAzYUOlSrXipX35mjNnZ5g0d@(M$XPy7;+E@1xQV$=KbAr1F9(P zs!b1~>Vc>*5FxLbHrxIJqa7ZCg@PGLr?%wfE1#daps02g0D@QX6yHt-U_=9N{(Tln zDZ35ln$wTn_mV%GUG|oeOvPX$Lt^SC02Eu7?HjD7dLKmx+``@deO!TYa`0F8*F-SCb!XriOpqh5xyZEILYYxa47!`n$-oJ8|qUT zddII_OXeaz8}sQZ3E5*C!w`z5Y9k0SPRDrH7YS&lGtkCw>w**qi$0HLY{@+hID>9G zPrUyng^Or>u6}b&ef=&mb(&vzSC#;LB9OUo)5HVaU0WMgIWKV`w8)XH4m4HBC@8zUztz zx%r56AMW!CUt^uK|E1u5-s`hk_-Re7%Px=G}hA5=?BJJ7oU}v_z+}NVM z38rX?Tg#f)(p2!%sMKP^3MnO<;;ZWAo45z39F5zI-#AgCIri-2$$DREo`NDb8?%2? z#eT3`KaPY4=3>{MAJbccF5PNwsksG^P@@ih+dup`;n}6WsBG?6@B#sD?%gImkj5+OhiVIWp24&MP61oxrOSXb(J1bn3+KlWq)};qd z6{>g;-(COY#(IYGvv+$T(phCKKbyAN+w1#%k%GTBL(6q5P#$h}7>~?B9ep5gT{Q*6 zv(KENbQ*|=ii)Niq6n;2!=WBmf+aU74Nl8;K9I$Q<-;lFo`6iJwztQ~&th%bB}CpW zJug&~&G7q4EMGp-;`j6t_Yi?bS#m*=2-!CdU1dSD_Fubrj50m5x~_DYP*%gC1z+Ok zIt|}@=CSPkwJ_?*xSNW2K2a%)nygm=(gg1rV&nKLZv9dIgy%lQx|m{7H(YP!`g3l` z=D^x%|2^WvLI@6>vLT!`l+2^{*gN~)PN{55&!x@~ehmB2MNH;WdG5>NBkHhoe>Cqo zVk#FFF0}}-(b!mZvwFN*3jX=s%(q*?KSGwd(`rG!!$&Cbi3uXCQhB6#Azpke3G(>T zwQE^J_ssR4)o=DG{4rRS*Zy#%?hlBG<>wzO@xz;OKrb3?=D2P4Cp5g8t8cz$(S1em zM9EzjbM*lSE%HcGWVRdZ@vl$rtjK}d8_;b;jf;JjT-RALG0+gI5|z$J z%DjBFHxmfgcOJ2lTnt8Diqi&qCuPG{vnU&_VRLWREsxex&%E|DjbMQCAZ*5=KbB_x zX$<$i(pPwo>8Wo^Hcb}JiCL`=JsCk@J=GcuwqCEI$c;4`;`d2d6N&5XTWlCMpq4aIiO51#ip7?=S4cl*REoZgBySk3S{j6@`@yI5KhCp&ewyh z9^&T_`PKM(Z|{7j>d~jB#}%We$@Ta`{xsjVF=Eta1Yur8PvJ*AF;M~lE>G3AMJy8N zH@-Gv%Eo-1RTsgE9HoF?^>#gNZWl4MbYql?#`$sJI=M&WFqz1nuzcvMG1GJqOsn}6 z1Kjn%G{V5*K28d$u~;FLr7Rh!qIms;Wx0IWz?h|#`CR@Y%F3aHwd6Rp2jalbFcavn zK3r#o*K;7p4@FOu@2A?F$({(Q{1Vhc{RHjkLMi z`{KmiYWT*eQ8V^stpD(gic_Z#3nwj&hAvEO*+HFt@iwI1$pyy7*0sDg6-G(eF?ZZ5 zy^31(j;aQ!M+{DG&>JPUSSrd<*Pr&M@ypgX1`nq-wOSIFt-g6XHz#@Gw*aD^;aTc^ zWG=mD-niOv4MFFx8nt&DNO)7jy)77}t#wHu4bY?kwjw{u^Ad_8ZD7b?G1P z-x(~JxN&?6ANt*xO*j?=#7CWxGfj^rnc#a-S=DkI^MT{Y%ycaXHNOD)?SPv`&iv7& zf5(w79NZNL;G!ZYw)Tt8%SOj*@tBo)ctm|Z4fkmTL9nWly-lMtrxBSUZLwjk54Rws zc>%O~3}=(I?Pj9UNvgL6>rF~E)u<%b9>p|vsC;_S6w??|qt!dA47tQDd%$h}5l*bzlyCKFRbI}r){lR__P(0??=2w!5V7Xw&n@RN@vn|88)T*rPd!Ma9gAPa4sp(Bq67 zG$*ChTbfUc?B?k&ar{bR?5w4AwxSguKwZdQ#MLY7og1I$w0JTs;Qr^vN|E-JAYKJ| z4d=tc`jpZZ*|Pcfw9AR`SP}ZFXJVY*k07eezhaqfBn(69tg`zYZCeuc1TI?!mr6j* zdr-!GJL^%3OR@tXX_s02>#eiO_?gLb=ZT%VwCLJkT(4xa|H>ev#Q8@T9OFgRj}FCc z@){qkW>*3*5Xr702P$SF2ub_rBCqQ*A?Ew1P>1s5=y#X>7*GgJ9bL@O#t{c{%qKc! zV3Jj&Zp2=ROpgvE>A)bFM>cI)0A8P5xsoS85Vgc{J2$r6>qrNbd9+8?Of-x&T&?0G z096M-PmR* z;Vqfc*?tle2-k5Y4~jtt%KC1wc){+e(Gowp=o2bA!G|L(lQPU~fPe@@_>`S7RWRcs zY>g46(-t)$Bb*p!_%Yiu-c47@zbYf7Z*3$Cw|%!fZy6>MO?Emb27AB?(yx*9Q(jwN z!$AIt{4)1~dz4Y}NZmEGa}H?Uj;jqOj6zcP7HGhO)VW+2qmyHKXY%#-riA*4jdAJb$&bZ_Eyg zbfCy0YciVw6XaWd%2a?dw7_Q~7QAVSNZ>d~oz5=*9G5Ggj#78R-5E&8VI2OX&fDH9B}tjnQ$?0|MZCBxI6VA*{5;LFy2zZ zyNn-vjsbY|!T^o6|E6P7EBDUX_`SFduw0Ro=R?yDwi+78p8II#GJz;=(=*5N1;~FZ zw=^!&U6?3lHTu9s1zY3NZtj_uYzrUJxSya>q4yTIz2rPuH=?AtD&Fs9J;XOLY-uDj zfLk_VDgwIGB*iDJWyfMYOl9w#N=4JJLc<(VsF)InYpqfKUelvUjUwT?n6me!*nPek zI#-=4RqpRy$iaCZ%5%H3^>-j;+d#(t*UCF-<~5k6^Twg zMH@Bll-60@uG-}el`4DblB@Xb9Vm6yOT=kWE{L^8_g3FW`%X%hr+=|hSjv4t1>ThI zIPiX)oItkJZIWqWAy;RK&#bKcr@yk}2e`rc6T0ViCqVYcYi{z9`R1z70HPM%^%`wq z9bA*PC7@|4l0VN7TbN)|%^cmpn{R0Fq4Y9%*W-PQ~fK9s+C=K}E}w)enH&m#BW z{n+}_R@Xe}QgR@XOlyMa`jdbz0+ls+J>|L}ro#6}8%fLlU7}6mpXVaD+6fa-zJu*;$Xa^Zc>T_zf?;4lujr!rRB}M}2AAuJDA101^;i zpGjF7L5`|h_$E$);yn%WdzwQwg?FsUMHRahsqAmD76~euZ#k6XjuHKUs-3r;uwmHq z==ib~2xCzvH^}5ajTuog}ElRCNEBhPCg9$lFFk>viky`TiyU@hGu{%NNSzJY{@ zr|TaB8q5X)bsL$9-8?5{k4#fw$1~LYk%*IxHqtT&*k)lxn@fOs%G^791Zm^g`c$Kh zSV4-nwDeJ<%hZ^T$q#uvWhEJC_q=Y3a+cqPsY~4(KNgd2T?HR((EZ*U) zUCQTZ+r6A?2BvdNIFPJx5XgJs9`(sRdtgU0#*+4H3)Jv5I@gqGxENdJ?2}Srl=u$* zoRD08(JMDb;?(d4yW!fdFQ0NPs$30s2f1IH#EzjalA91vRtWO%xYE+TtQ121f_sx& z|4z+_L8*XZb>n`S_*msU4sDnz)V=f2?ia-`0);IddJ!(SHu6lKI<5Eb#kBxN%%Xv4@>7;mV;^~Ts)kUm)!}}U0 zacMQB0H?{kCnL(4eQi4tY4T&+UWWTN@0i2RDk}PAdZ}F zRs^y=4`gA}Nf2O4qDLzAZ^+{1(7m3~R4-H8YN z1c{oaABWp%JuTT=j<9(Mhk*~L!Ryix3Rd3lWX;b894mY=g}oO$lh%(_)CQ1qo% zP_#l_ZMlk4%?4{njxKOwi#&YS9`Ag}6qQ}YY>%c_hV`-oo9f;3S7jt2)5vK8Z3t<` zTTB>j<~>gOIo?+=Ixb=C>GK!$^lI_6$;zYf2T+#-6MlyJeM*}`L&K2AndYWRrCy`^sE$iQ3GNs z&rU8SvVxM7$oUemP^9ZfTzTvt?lsE! z9%G7Tj$?ZRj9NLCjoFoTK|Xs5B6XM=xs9F?E}+@iJ~+w_87OB*R(7z`jakaF1=Vgv zf*d?jzUT~P@A?>9m)5!6^6K###~P8k5`1A{+Tx-2-M&$m18(C!+(FA@^zt;;_Rai2 zzB6c(lJ2Ek-CzQhaVl{Glhk5MP@FXixHT->=Vz5m<~qM;hKH8UFbV$>U7N#w_g3iW;D5#9=&n$13#?_PUo#) z1Ds4AB=14YrN1vy&}>4^&D-r?_n!ZplSOJAc>~ujJ|o=?aK$Fi`}cI)?a%iOA#r~b z_8?>z^`Bs!$SivOMOWtAL&iI3HvH0TWS=qD;82!)tFqsR^nOhpjh*P z>tqYWq21#~xHw;G@)w(&glqTD+>tqGRo!S6>OyPdn971~LEJ8Y3gkLm$ z_gCa|t}(y*-_z9D*;!e+hQ!MP%%7N=U?`SG+PemaM{31?kIgehY&%wHP>SWwQg^q; zpGDAeBZf^gIlZMwRn})jX$SBMq69}Eq4v-j&ihqBVYfd$;JjpR+6X^&`Y<3szjCL< z%lh*SFB=#V=pe|By`bW{QCs$!rh3H5jv0WCB;TUKqM>163r-pzeT-aPz9Yihy{uqL zDE~$3onJD&12`|;mx9EdOqZ%Kvv^OYgG^@XR;eTjBDsQyiD7Nr*?#DYAq%45NoGu_ z!x0z5FmF&f`<;TNbo5<=^EMZW_dt$Ha!a;`rh3^$2<6s4_gbfobC|=_xc-XvI$|!)IGW(o3=32j&?qBm4=k9bdoa-dY~m|DRh)V7FqElKFm5!)C`f7)ytXq z1S7VTs2REF$gtShaA=DYH_l?QamaUystxNE@Pr^RDj_6z7ki7aBXSlR>mplxsdBVr-LJM}D<9L2%fHpKM}tP`7s{!ir} zk{qpkWJ?YVIQq7p>>sX&p+vkH3JiSyz&t-N+E~50Mzv3HV`BK~;ni>FsM8q%m5A=1 zDXx>SO%_y(rpX0{rEe*KJk2m-fc4{a4T|m&qHASZLbSQNb3AkEdvDC#Jzqit@3?Jc|X6&OgGd@T)ibOk2cBN0%)}78BN=)t8Yc zZ{4>hFGt?NXc6fw)yC1M%rX&7jWVNx8&L{c8(JT8#Z}}slG0jVI%de3_L#pv2S&9> zgsdsLEU9`3LxY=k?#B+|gh4{AGNBo7I{0&=HOn>fE)(hmt6>N()T_xX7kkvc>_ zwP21Hol~rfR3fA_7w^-1Cmt{PkcaL-#>3~=G`2RLPrdAnFH>WI&}579k)3u&FV{)5 zB{M3}J;a+qOD6bm`{3)^mLnU4aP&Hc)zYi-d4pj_jOws)Cex|r7U6QLzyb6M_oOSt8Q-xnAX6%5*8- zfoHL-5_osZz@iuq!V%SJ=!;?ng4?Go;CY)7J>K zOF4WKN85HUd}PViXDmKkCB7h@UC{2xfkg}B$MHhJt*DYpm4n?6Y1gUSxI<6ZE(!HO zy`YEed{LZZ2ZEzMWed6c0Xh?79DF>xKkvIl_w;Vk^?4kx#bH2kz_MZW51^x@$>#Sv z9Uu}|FUQKi+sUv9kjhVF2-FMVdsFp!6n_mBQ*ay)1)l+ox{>^$t7w zc5d$J59OwAAsDwUr2Hw?#(K?{1|gvuSp!#zCl#^8Q zxPq1}4%Zcr2jvKM7~IGfg0Wu*CkVf}Gj%=RL0-37w|M@8-KGSevO%mHyv{TpOQ zg<#g=(`UV(&Zi?Nw+I96JD&pm9;HutEf-xT!yL&=WuFv0=rE$nktg}oGtJzufNM-; zsTAHHE{Oozqs&1grIbL{vw}1_QHR;5tk#F7KZpgX@^N<>WjTqLA9L@+%`YrFvmqWw zao{BAZXreu2QIHp%c1B%rrQkF5?nvP^N>1m#(r!blrxa=5+B2AEdomq;SA#s?1t@KV8k3PG3`gX>Of~^t zXkuD(nroUNJ=DFP9KuDxef*b+03h zbGX-QzBOSMOf+{qkz;fyp^KqCjL>Hx8CU3sd8HS+Vj%RfOFEn444Q51UZJUTxFS-KylZ&T3@* ztnbYTT1;3Dt}T2f)&>{pR$OTfCW)${o_1X4sC#RDP+|lWouvP>#Ykh2VZU}^$-=Tbhbae*L`Ku&NaXn!8O1k zL0GpYnK7S5lo7Srv2b4(Xdh`Z(@vgJ;5E9xgH^1{X+?o!ZGptFV_<6&jg}n&I)EhT zD!0bCUb2F#%xH+mD4&A&Hg2R$Y~y95?dw&HJhwl6k#1H%={4&#qJ=@Swi zMm&oB5t}n)+6~z{lex1=(B!gXY)qEmhQdKwOQxqBdn&-4-zU)V$1)dXkY)8D9>L_d z8Ef zoIkTRZMFUv+geMXjRvhTXpebicaR$q$fkxcDbj>R^Y3nhGnSNvZ$iS39H=4vXExqp zX|HSzMvxZuwaF4ziw)$p)prMquCWnnVe6+!d}C*!W2=}9A(-1b_+{#}KXAO~ z+@dyG75oDai!z(k7zL|Xnqn{=yb7t$?NydLW?iB)py@y6g3pqDA{S>tO2^-1i1Mr+ zU+a|j)A|vP3lOCF;7RR;XnuuM%EPC&J~c50>Kc@Fe4$75q>;O=?+4m@EG;FcfCs8y z?i@AMsK)pV?e#D)nrrO9qyiRw7}pw`v#z7G*v|Y^$`WNVq`@`NszL5cAk-S{$K=LJ+Itm3x#>y&O*%e;dbE3j;3;V3xFT@WaJQm)ds>+D zU+_WUoCCTUNFB4q^q*MT#f0Sp$|>l3^#GjMM?uslSaeg>HKUmL&ICdq+nQ|*HKMU6 zAzER1npj_ANd-bq*AzDo-e1M1{KB`&1!n*j@Q88xs)Atl3vuV+QuK)DCoYQCv7G;Y zP;%nn(`5rj_-%3a^kg^$mmY*$iVmuPl7j zx?(pgt#a!XX%bZOMsNcC21FaZML)XmM$`vbBQ;%)nfG``W>-=UCSggX8(8xq5c$urmC zTCuR1$TeAcbdGYx!5+^Sf$tmKj!Db840~mD1it3!_A92(k;)@jpK%%ar5&lML9T7$ zKDzpggh*$kI-KX_#topi*H($RujW}AL%&NVXPTng$gxI!4+ZaJ4k_);z2Q~9s7ly8 zyX-6Iw)IE})r2+~LbE%bf0IklI!nGc`m)(Akj>D<^7rOSMG-cBFA)$F{ZVA>VMl}H z#rdZzec74##?|uc84sz%Py<$V zQ2EY&!x_c=bdTfY5$o?tyfdJW@S?TzaFiBQRtt!s2IrhOL1n_Ig|)z z>-jZ%tbPLyi~w`CHOSrIT1GB5rTNbK+fkI19viwui?4?~%+fg2dm_;NMu=Oz886v~ z{nV8(s!WjIqf2(t;e%SIUV^r}MLpw%>h~?MVAaA_>_2BbqyvH8PT2FjCb#7ZpY)M_ zmEeqIWW&)~KUbn9&V%Y11?-RBMR>Z9kFg?%y+0r7K}50yH(0*v`30C(i0H<|{}O5G zgHWSDbXuFd)`E4bN-n*(%=^NFDNK#A^yXV?a7qDn4-8ioe=sz6jhEbQA=Fg#a&*w) zMm(9jJwl!k8^Py4MaQ>`{v>(wva6=pI9qe<%HVd+uA#DC9MCF|=A*WV`S@AhGE~!T z|J#=91X{Vknu-gIYkpq^;Ccco^})c1BZ1Kb8hU`;pS9cCY@gDENIr zLabi<1`FyO#p+V$*^)bdmhe58wNL7F(P7a>{vCf$luv?BTQ

}8;RcYU6!RpUo~= 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 TAwlyu@JCxqPqS40k5~T-_iopJ diff --git a/package.json b/package.json index 17eba91dd..0b2299153 100644 --- a/package.json +++ b/package.json @@ -30,41 +30,43 @@ "prebuild": "npm run test && npm run prebuild-start", "prebuild-start": "node scripts/build.js && node themes/material-design/colors/generate-colors.js && node languages/fill-languages.js", "prebuild-store": "node scripts/build-store.js", + "postbuild": "node scripts/test-postbuild.js", "watch": "nodemon --ignore 'dist/' --ignore scripts/builded --watch * --exec npm run start", - "build": "npm run prebuild && electron-builder build", - "build-dist": "npm run prebuild && electron-builder --x64 --linux deb rpm AppImage 7z flatpak && electron-builder --arm64 --linux deb rpm AppImage 7z flatpak", - "build-linux": "npm run prebuild && electron-builder --x64 --linux deb rpm AppImage 7z", - "build-deb": "npm run prebuild && electron-builder --x64 --linux deb", - "build-rpm": "npm run prebuild && electron-builder --x64 --linux rpm", - "build-snap": "npm run prebuild && node ./scripts/snapcraft.js && electron-builder --x64 --linux snap", - "build-snap-store": "npm run prebuild && npm run prebuild-store && node ./scripts/snapcraft.js && electron-builder --x64 --linux snap", - "build-flatpak": "npm run prebuild && electron-builder --x64 --linux flatpak", - "build-appimage": "npm run prebuild && electron-builder --x64 --linux AppImage", - "build-tar": "npm run prebuild && electron-builder --x64 --linux tar.gz", - "build-zip": "npm run prebuild && electron-builder --x64 --linux zip", - "build-7z": "npm run prebuild && electron-builder --x64 --linux 7z", - "build-win": "npm run prebuild && electron-builder --win nsis portable", - "build-nsis": "npm run prebuild && electron-builder --win nsis", - "build-appx": "npm run prebuild && electron-builder --win appx", - "build-appx-store": "npm run prebuild && npm run prebuild-store && electron-builder --win appx", - "build-portable": "npm run prebuild && electron-builder --win portable", - "build-mac": "npm run prebuild && electron-builder --mac 7z dmg pkg && electron-builder --arm64 --mac 7z dmg pkg", - "build-mac-store": "npm run prebuild && npm run prebuild-store && electron-builder --universal --mac mas", - "build-mac-tar": "npm run prebuild && electron-builder --mac tar.gz", - "build-mac-zip": "npm run prebuild && electron-builder --mac zip", - "build-mac-dmg": "npm run prebuild && electron-builder --mac dmg && electron-builder --arm64 --mac dmg", - "build-mac-pkg": "npm run prebuild && electron-builder --mac pkg && electron-builder --arm64 --mac pkg", - "build-linux-arm": "npm run prebuild && electron-builder --arm64 --linux deb rpm AppImage 7z", - "build-deb-arm": "npm run prebuild && electron-builder --arm64 --linux deb", - "build-rpm-arm": "npm run prebuild && electron-builder --arm64 --linux rpm", - "build-snap-arm": "npm run prebuild && electron-builder --arm64 --linux snap", - "build-flatpak-arm": "npm run prebuild && electron-builder --arm64 --linux flatpak", - "build-appimage-arm": "npm run prebuild && electron-builder --arm64 --linux AppImage", - "build-tar-arm": "npm run prebuild && electron-builder --arm64 --linux tar.gz", - "build-zip-arm": "npm run prebuild && electron-builder --arm64 --linux zip", - "build-7z-arm": "npm run prebuild && electron-builder --arm64 --linux 7z", - "snapcraft": "npm run prebuild && node ./scripts/snapcraft.js && cd dist/__snap-amd64/ && snapcraft", - "snapcraft-arm": "npm run prebuild && node ./scripts/snapcraft.js && cd dist/__snap-arm64/ && snapcraft --target-arch=arm64", + "build": "npm run prebuild && electron-builder build && npm run postbuild", + "build-dist": "npm run prebuild && electron-builder --x64 --linux deb rpm AppImage 7z flatpak && electron-builder --arm64 --linux deb rpm AppImage 7z flatpak && npm run postbuild", + "build-linux": "npm run prebuild && electron-builder --x64 --linux deb rpm AppImage 7z tar.gz && npm run postbuild", + "build-deb": "npm run prebuild && electron-builder --x64 --linux deb && npm run postbuild", + "build-rpm": "npm run prebuild && electron-builder --x64 --linux rpm && npm run postbuild", + "build-snap": "npm run prebuild && node ./scripts/snapcraft.js && electron-builder --x64 --linux snap && npm run postbuild", + "build-snap-store": "npm run prebuild && npm run prebuild-store && node ./scripts/snapcraft.js && electron-builder --x64 --linux snap && npm run postbuild", + "build-flatpak": "npm run prebuild && electron-builder --x64 --linux flatpak && npm run postbuild", + "build-appimage": "npm run prebuild && electron-builder --x64 --linux AppImage && npm run postbuild", + "build-tar": "npm run prebuild && electron-builder --x64 --linux tar.gz && npm run postbuild", + "build-tar-store": "npm run prebuild && npm run prebuild-store && electron-builder --x64 --linux tar.gz && electron-builder --arm64 --linux tar.gz && npm run postbuild", + "build-zip": "npm run prebuild && electron-builder --x64 --linux zip && npm run postbuild", + "build-7z": "npm run prebuild && electron-builder --x64 --linux 7z && npm run postbuild", + "build-win": "npm run prebuild && electron-builder --win nsis portable && npm run postbuild", + "build-nsis": "npm run prebuild && electron-builder --win nsis && npm run postbuild", + "build-appx": "npm run prebuild && electron-builder --win appx && npm run postbuild", + "build-appx-store": "npm run prebuild && npm run prebuild-store && electron-builder --win appx && npm run postbuild", + "build-portable": "npm run prebuild && electron-builder --win portable && npm run postbuild", + "build-mac": "npm run prebuild && electron-builder --mac 7z dmg pkg && electron-builder --arm64 --mac 7z dmg pkg && npm run postbuild", + "build-mac-store": "npm run prebuild && npm run prebuild-store && electron-builder --universal --mac mas && npm run postbuild", + "build-mac-tar": "npm run prebuild && electron-builder --mac tar.gz && npm run postbuild", + "build-mac-zip": "npm run prebuild && electron-builder --mac zip && npm run postbuild", + "build-mac-dmg": "npm run prebuild && electron-builder --mac dmg && electron-builder --arm64 --mac dmg && npm run postbuild", + "build-mac-pkg": "npm run prebuild && electron-builder --mac pkg && electron-builder --arm64 --mac pkg && npm run postbuild", + "build-linux-arm": "npm run prebuild && electron-builder --arm64 --linux deb rpm AppImage 7z && npm run postbuild", + "build-deb-arm": "npm run prebuild && electron-builder --arm64 --linux deb && npm run postbuild", + "build-rpm-arm": "npm run prebuild && electron-builder --arm64 --linux rpm && npm run postbuild", + "build-snap-arm": "npm run prebuild && electron-builder --arm64 --linux snap && npm run postbuild", + "build-flatpak-arm": "npm run prebuild && electron-builder --arm64 --linux flatpak && npm run postbuild", + "build-appimage-arm": "npm run prebuild && electron-builder --arm64 --linux AppImage && npm run postbuild", + "build-tar-arm": "npm run prebuild && electron-builder --arm64 --linux tar.gz && npm run postbuild", + "build-zip-arm": "npm run prebuild && electron-builder --arm64 --linux zip && npm run postbuild", + "build-7z-arm": "npm run prebuild && electron-builder --arm64 --linux 7z && npm run postbuild", + "snapcraft": "npm run prebuild && node ./scripts/snapcraft.js && cd dist/__snap-amd64/ && snapcraft && npm run postbuild", + "snapcraft-arm": "npm run prebuild && node ./scripts/snapcraft.js && cd dist/__snap-arm64/ && snapcraft --target-arch=arm64 && npm run postbuild", "postinstall": "electron-builder install-app-deps && node scripts/zstd-copy-native.js" }, "dependencies": { @@ -125,14 +127,13 @@ "!node_modules/ssh2/lib/protocol/crypto/build/node_gyp_bins", "!node_modules/@img/", "!node_modules/7zip-bin/+(linux|win|mac)/**", - "!node_modules/@toondepauw/", "!node_modules/pdfjs-dist/", "node_modules/@img/*${arch}*/**/*", "!node_modules/@img/*linuxmusl*/**/*", "node_modules/7zip-bin/${os}/${arch}", - "node_modules/@toondepauw/*${arch}*/**/*", "node_modules/pdfjs-dist/build/pdf.mjs", "node_modules/pdfjs-dist/build/pdf.worker.mjs", + "images/icon-border-transparent.png", "images/logo.png", "images/logo.svg", "templates/index.html", @@ -225,10 +226,7 @@ "application/pdf", "application/x-bzpdf", "application/x-gzpdf", - "application/epub+zip", - "text/directory", - "inode/directory", - "application/x-directory" + "application/epub+zip" ] }, "snap": { diff --git a/scripts/main.js b/scripts/main.js index 6d17e9241..b850e940d 100644 --- a/scripts/main.js +++ b/scripts/main.js @@ -61,7 +61,7 @@ function createWindow() { backgroundThrottling: false, nativeWindowOpen: false, }, - titleBarStyle: (process.platform == 'linux') ? 'native' : 'hidden', + titleBarStyle: (process.platform == 'linux' && !configInit.forceLinuxHiddenTitleBar) ? 'native' : 'hidden', titleBarOverlay: { color: '#242a3000', symbolColor: '#c2c7cf', @@ -69,7 +69,6 @@ function createWindow() { }, trafficLightPosition: {x: 10, y: 7}, backgroundColor: '#242a30', - //icon: __dirname + '/icon.svg', }); require("@electron/remote/main").enable(win.webContents) diff --git a/scripts/opencomic.js b/scripts/opencomic.js index 3b7bffc05..6e3ad6e3c 100644 --- a/scripts/opencomic.js +++ b/scripts/opencomic.js @@ -882,8 +882,8 @@ function showAboutWindow() var about = new electronRemote.BrowserWindow({ show: false, title: language.menu.help.about, - width: 380, - height: 260, + width: 460, + height: 320, minWidth: 380, minHeight: 260, //resizable: false, diff --git a/scripts/storage.js b/scripts/storage.js index d11f2bb00..a639d6753 100644 --- a/scripts/storage.js +++ b/scripts/storage.js @@ -1,4 +1,4 @@ -var changes = 89; // Update this if readingPagesConfig is updated +var changes = 90; // Update this if readingPagesConfig is updated var readingPagesConfig = { readingConfigName: '', @@ -191,6 +191,7 @@ var storageDefault = { }, configInit: { forceColorProfile: '', + forceLinuxHiddenTitleBar: false, }, readingShortcutPagesConfig: { wildcard: { diff --git a/scripts/test-postbuild.js b/scripts/test-postbuild.js new file mode 100755 index 000000000..958ac9688 --- /dev/null +++ b/scripts/test-postbuild.js @@ -0,0 +1,64 @@ +const fs = require('fs'); + +function exists(path, permissions = false, fix = false) +{ + if(!fs.existsSync(path)) + throw new Error('Not exists! '+path+(fix ? '\nTry "'+fix+'"' : '')+'\n'); + + if(permissions !== false) + { + try + { + fs.accessSync(path, permissions); + } + catch (err) + { + throw new Error('No access! '+path); + } + } +} + +const linux = './dist/linux-unpacked/resources/app.asar.unpacked/node_modules'; +const linuxArm = './dist/linux-arm64-unpacked/resources/app.asar.unpacked/node_modules'; + +if(process.platform == 'darwin') +{ + + +} +else if(process.platform == 'linux') +{ + if(fs.existsSync('./dist/linux-unpacked/')) + { + // Node ZSTD All + exists(linux+'/@toondepauw/node-zstd/index.js', fs.constants.R_OK); + exists(linux+'/@toondepauw/node-zstd/node_modules/@toondepauw/node-zstd-linux-x64-gnu/node-zstd.linux-x64-gnu.node', fs.constants.R_OK); + + // Sharp x64 + exists(linux+'/@img/sharp-libvips-linux-x64/lib/libvips-cpp.so.42', fs.constants.R_OK); + exists(linux+'/@img/sharp-linux-x64/lib/sharp-linux-x64.node', fs.constants.X_OK | fs.constants.R_OK); + + // 7zip + exists(linux+'/7zip-bin/linux/x64/7za', fs.constants.X_OK | fs.constants.R_OK); + } + + if(fs.existsSync('./dist/linux-arm64-unpacked/')) + { + // Node ZSTD All + exists(linuxArm+'/@toondepauw/node-zstd/index.js', fs.constants.R_OK); + exists(linuxArm+'/@toondepauw/node-zstd/node_modules/@toondepauw/node-zstd-linux-arm64-gnu/node-zstd.linux-arm64-gnu.node', fs.constants.R_OK); + + // Sharp arm64 + exists(linuxArm+'/@img/sharp-libvips-linux-arm64/lib/libvips-cpp.so.42', fs.constants.R_OK); + exists(linuxArm+'/@img/sharp-linux-arm64/lib/sharp-linux-arm64.node', fs.constants.X_OK | fs.constants.R_OK); + + // 7zip + exists(linuxArm+'/7zip-bin/linux/arm64/7za', fs.constants.X_OK | fs.constants.R_OK); + } +} +else if(process.platform == 'win32') +{ + +} + +console.log('Runed postbuild tests: Ok'); \ No newline at end of file diff --git a/scripts/test.js b/scripts/test.js index 446f7b3ec..cc8fb855d 100755 --- a/scripts/test.js +++ b/scripts/test.js @@ -39,21 +39,15 @@ if(process.platform == 'darwin') else if(process.platform == 'linux') { // Node ZSTD All - exists('./node_modules/@toondepauw/node-zstd-linux-x64-musl/node-zstd.linux-x64-musl.node', fs.constants.R_OK); exists('./node_modules/@toondepauw/node-zstd-linux-x64-gnu/node-zstd.linux-x64-gnu.node', fs.constants.R_OK); - exists('./node_modules/@toondepauw/node-zstd-linux-arm64-musl/node-zstd.linux-arm64-musl.node', fs.constants.R_OK); exists('./node_modules/@toondepauw/node-zstd-linux-arm64-gnu/node-zstd.linux-arm64-gnu.node', fs.constants.R_OK); // Sharp x64 - exists('./node_modules/@img/sharp-libvips-linuxmusl-x64/lib/libvips-cpp.so.42', fs.constants.R_OK); exists('./node_modules/@img/sharp-libvips-linux-x64/lib/libvips-cpp.so.42', fs.constants.R_OK); - exists('./node_modules/@img/sharp-linuxmusl-x64/lib/sharp-linuxmusl-x64.node', fs.constants.X_OK | fs.constants.R_OK); exists('./node_modules/@img/sharp-linux-x64/lib/sharp-linux-x64.node', fs.constants.X_OK | fs.constants.R_OK); // Sharp arm64 - exists('./node_modules/@img/sharp-libvips-linuxmusl-arm64/lib/libvips-cpp.so.42', fs.constants.R_OK); exists('./node_modules/@img/sharp-libvips-linux-arm64/lib/libvips-cpp.so.42', fs.constants.R_OK, 'npm install --cpu=arm64 --os=linux --libc=glibc sharp'); - exists('./node_modules/@img/sharp-linuxmusl-arm64/lib/sharp-linuxmusl-arm64.node', fs.constants.X_OK | fs.constants.R_OK); exists('./node_modules/@img/sharp-linux-arm64/lib/sharp-linux-arm64.node', fs.constants.X_OK | fs.constants.R_OK, 'npm install --cpu=arm64 --os=linux --libc=glibc sharp'); // 7zip diff --git a/scripts/zstd-copy-native.js b/scripts/zstd-copy-native.js index be123a07e..f8e75fffb 100644 --- a/scripts/zstd-copy-native.js +++ b/scripts/zstd-copy-native.js @@ -7,8 +7,6 @@ if(process.platform == 'darwin') } else if(process.platform == 'linux') { - fs.cpSync('./build/node-zstd-native-dependencies/node_modules/@toondepauw/node-zstd-linux-x64-musl', './node_modules/@toondepauw/node-zstd-linux-x64-musl', {recursive: true}); fs.cpSync('./build/node-zstd-native-dependencies/node_modules/@toondepauw/node-zstd-linux-x64-gnu', './node_modules/@toondepauw/node-zstd-linux-x64-gnu', {recursive: true}); - fs.cpSync('./build/node-zstd-native-dependencies/node_modules/@toondepauw/node-zstd-linux-arm64-musl', './node_modules/@toondepauw/node-zstd-linux-arm64-musl', {recursive: true}); fs.cpSync('./build/node-zstd-native-dependencies/node_modules/@toondepauw/node-zstd-linux-arm64-gnu', './node_modules/@toondepauw/node-zstd-linux-arm64-gnu', {recursive: true}); } \ No newline at end of file diff --git a/templates/about.body.html b/templates/about.body.html index c320b475b..1cca87b3b 100644 --- a/templates/about.body.html +++ b/templates/about.body.html @@ -35,19 +35,18 @@ .about-header-logo { - height: 56px; - width: 56px; + height: 96px; + width: 96px; margin-bottom: 16px; display: inline-block; - background-size: 56px; background-repeat: no-repeat; background-position: 50%; } .about-header-logo img { - height: 56px; - width: 56px; + height: 96px; + width: 96px; } .about-header-text @@ -119,7 +118,7 @@