From 52883d335df53b3de8ea649ed3cd7ce0bf0c512e Mon Sep 17 00:00:00 2001 From: oxmc <67136658+oxmc@users.noreply.github.com> Date: Fri, 20 Dec 2024 02:29:02 -0800 Subject: [PATCH 1/8] Add new builds, and update ext --- .github/workflows/build-and-release.yml | 12 +- package.json | 4 + src/app/main.js | 8 +- src/app/utils/auto-update.js | 60 ++++++++-- src/app/utils/sysInfo.js | 33 +++++- src/ui/rend/bsky-ext.js | 142 +++++++++++++++++++++++- 6 files changed, 235 insertions(+), 24 deletions(-) diff --git a/.github/workflows/build-and-release.yml b/.github/workflows/build-and-release.yml index b05c1d8..93e058e 100644 --- a/.github/workflows/build-and-release.yml +++ b/.github/workflows/build-and-release.yml @@ -163,7 +163,7 @@ jobs: - name: Merge latest .ymls uses: mikefarah/yq@v4.44.6 with: - cmd: yq ea '. as $item ireduce ({}; . * $item )' dist/*/*.yml > dist/combined.yml + cmd: yq eval-all '. as $item ireduce ({}; . * $item )' dist/*/*.yml > merged.yml - name: Upload Release id: create_release @@ -176,7 +176,7 @@ jobs: dist/linux/*.AppImage dist/windows/*.exe dist/macos/*.dmg - dist/combined.yml + merged.yml aur: name: Publish to AUR @@ -184,24 +184,20 @@ jobs: needs: release env: AUR_TOKEN: ${{ secrets.AUR_TOKEN }} - steps: - name: Checkout git repo uses: actions/checkout@v3 - - name: Download checksums uses: actions/download-artifact@v4 with: name: checksums path: ./sha256sum.txt - - name: Extract checksum from sha256sum.txt run: | new_checksum=$(awk 'NR==1 { print $1 }' ./sha256sum.txt) sed -i "s|sha256sums=('SKIP' 'SKIP')|sha256sums=('$new_checksum' 'SKIP')|" ./build/PKGBUILD - - name: Publish AUR package - uses: KSXGitHub/github-actions-deploy-aur@3.0.1 + uses: KSXGitHub/github-actions-deploy-aur@v3.0.1 with: pkgname: bskydesktop pkgbuild: ./build/PKGBUILD @@ -209,4 +205,4 @@ jobs: commit_email: ${{ secrets.AUR_EMAIL }} ssh_private_key: ${{ secrets.AUR_SSH_PRIVATE_KEY }} commit_message: New Version - ssh_keyscan_types: rsa,ecdsa,ed25519 + ssh_keyscan_types: rsa,ecdsa,ed25519 \ No newline at end of file diff --git a/package.json b/package.json index 7f1b874..1454e5b 100644 --- a/package.json +++ b/package.json @@ -38,6 +38,10 @@ ], "artifactName": "bsky-desktop.${ext}", "mac": { + "target": [ + "dmg", + "pkg" + ], "icon": "src/ui/images/logo.icns", "category": "Network" }, diff --git a/src/app/main.js b/src/app/main.js index fdce1b5..2dbad0d 100644 --- a/src/app/main.js +++ b/src/app/main.js @@ -44,11 +44,11 @@ global.urls = { // Settings urls: global.settings = { - general: `${global.urls.main}/settings`, - account: `${global.urls.main}/settings/account`, - appearance: `${global.urls.main}/settings/appearance`, - privacy: `${global.urls.main}/settings/privacy-and-security`, + general: `${global.urls.main}/settings` }; +global.settings.account = `${global.settings.general}/account`; +global.settings.appearance = `${global.settings.general}/appearance`; +global.settings.privacy = `${global.settings.general}/privacy-and-security`; // Badge options: const badgeOptions = { diff --git a/src/app/utils/auto-update.js b/src/app/utils/auto-update.js index a0d817e..87f00bb 100644 --- a/src/app/utils/auto-update.js +++ b/src/app/utils/auto-update.js @@ -79,33 +79,75 @@ function asarUpdate() { } function checkForUpdates() { + // Current system information + logger.log('Current system information:', sys.platform, sys.getVersion()); + // Check if the current system is Windows if (sys.isWin()) { // Check if the system is before Windows 10 - if (sys.laterThan('10.0.0')) { - // Check for updates, and if there are updates, download and install them - logger.log('Checking for updates (win)...'); - } else { + if (sys.earlierThan('10.0.0')) { // Windows 10 and above are supported, but windows 7 and 8 are not supported logger.error('Windows 7 and 8 are not supported, please upgrade to Windows 10 or above, not updating...'); + } else { + // Check for updates, and if there are updates, download and install them + logger.log('Checking for updates (win)...'); } } // Check if the current system is macOS if (sys.isMac()) { - // Check if the current version is later than macOS 10.15.0 - if (sys.laterThan('10.15.0')) { + let macArch = ''; + // Check the current version of macOS, and whether we can use the pkg installer + if (sys.laterThan('10.0.0')) { + // Check if system is after macOS 10 (11, 12, etc.) + if (sys.laterThan('11.0.0')) { + // macOS 11 and above support ARM64, check if system is ARM64 + logger.log('Checkking system architecture...'); + if (sys.isARM64()) { + // System is ARM64 (mac-arm64) + macArch = 'arm64'; + } else { + // System is Intel (mac-x64) + macArch = 'intel'; + } + } else { + // macOS 10 is mostly Intel, but some versions are ARM64 + macArch = 'intel'; + } // Check for updates, and if there are updates, download and install them - logger.log('Checking for updates (macOS)...'); + logger.log('Checking for updates (mac)...'); + + // Run the .pkg installer + const pkgPath = path.join(global.paths.updateDir, 'bsky-desktop.pkg'); + const command = `sudo installer -pkg ${pkgPath} -target /`; + + // Spawn a new shell + const shellProcess = spawn('sh', ['-c', command], { + stdio: 'inherit', // Pipe input/output to/from the shell + }); + + shellProcess.on('error', (err) => { + console.error('Failed to spawn shell:', err); + }); + + shellProcess.on('close', (code) => { + if (code === 0) { + console.log('Update installed successfully.'); + } else { + console.error(`Shell process exited with code ${code}.`); + } + }); } else { - // macOS 10.15 and above are supported, but macOS 10.14 and below are not supported - logger.error('macOS 10.14 and below are not supported, please upgrade to macOS 10.15 or above, not updating...'); + // macOS versions before 10 are not supported + logger.error('macOS versions before 10 are not supported, not updating...'); } } // Check if the current system is Linux if (sys.isLinux()) { // Check for updates, and if there are updates, download and install them (no system version check) + // Linux versions use AppImage, so we instead need to check for a new asar file so that the app can + // load the new asar instead of the packaged one (or even just delete the old appimage and download a new one) logger.log('Checking for updates (linux)...'); asarUpdate(); } diff --git a/src/app/utils/sysInfo.js b/src/app/utils/sysInfo.js index 62658ee..66f9bf7 100644 --- a/src/app/utils/sysInfo.js +++ b/src/app/utils/sysInfo.js @@ -5,6 +5,7 @@ class SystemInfo { constructor() { this.platform = os.platform(); // 'win32', 'darwin', 'linux' this.release = os.release(); // OS version + this.arch = os.arch(); // 'arm', 'arm64', 'x64', 'x86' this.versionInfo = this._getVersionInfo(); // Parsed version } @@ -23,6 +24,26 @@ class SystemInfo { return this.platform === 'linux'; } + // Check if current system architecture is ARM + isARM() { + return this.arch === 'arm'; + } + + // Check if current system architecture is ARM64 + isARM64() { + return this.arch === 'arm64'; + } + + // Check if current system architecture is x64 + isX64() { + return this.arch === 'x64'; + } + + // Check if current system architecture is x86 + isX86() { + return this.arch === 'x86'; + } + // Compare if current version is later than the given version laterThan(compareVersion) { const current = this.versionInfo; @@ -35,6 +56,11 @@ class SystemInfo { return false; } + // Compare if current version is earlier than the given version + earlierThan(compareVersion) { + return !this.laterThan(compareVersion); + } + // Private: Parse version strings (e.g., "10.0.19045" -> [10, 0, 19045]) _parseVersion(version) { return version.split('.').map((num) => parseInt(num, 10) || 0); @@ -57,6 +83,11 @@ class SystemInfo { return [0, 0, 0]; // Unknown system } } + + // Get current version as a string (e.g., "10.15.7") + getVersion() { + return this.versionInfo.join('.'); + } } module.exports = SystemInfo; @@ -66,6 +97,6 @@ module.exports = SystemInfo; //console.log(`Is Windows: ${sys.isWin()}`); //console.log(`Is macOS: ${sys.isMac()}`); //console.log(`Is Linux: ${sys.isLinux()}`); -//console.log(`Current Version Info: ${sys.versionInfo.join('.')}`); +//console.log(`Current Version Info: ${sys.getVersion()}`); //console.log(`Later than 10.0.19044: ${sys.laterThan('10.0.19044')}`); //console.log(`Later than 5.15.0 (Linux Kernel): ${sys.laterThan('5.15.0')}`); \ No newline at end of file diff --git a/src/ui/rend/bsky-ext.js b/src/ui/rend/bsky-ext.js index b635a1d..4e5492d 100644 --- a/src/ui/rend/bsky-ext.js +++ b/src/ui/rend/bsky-ext.js @@ -374,6 +374,15 @@ const BskyExt = { }, "regex": /discord\.com\/invite\/([a-zA-Z0-9_]+)/ }, + "discord_profile": { + "name": "Discord", + "type": "social", + "icon": "fab fa-discord", + "brand": { + "color": "#7289DA", + }, + "regex": /discord\.com\/users\/([a-zA-Z0-9_]+)/ + }, "discord.gg": { "name": "Discord", "type": "messaging", @@ -473,6 +482,33 @@ const BskyExt = { }, "regex": /irc:\/\/([a-zA-Z0-9_]+)/ }, + "itchio": { + "name": "Itch.io", + "type": "content", + "icon": "fab fa-itch-io", + "brand": { + "color": "#FA5C5C", + }, + "regex": /([a-zA-Z0-9_]+)\.itch\.io/ + }, + "etsy_shop": { + "name": "Etsy", + "type": "content", + "icon": "fab fa-etsy", + "brand": { + "color": "#D5641C", + }, + "regex": /etsy\.com\/shop\/([a-zA-Z0-9_]+)/ + }, + "etsy_user": { + "name": "Etsy", + "type": "content", + "icon": "fab fa-etsy", + "brand": { + "color": "#D5641C", + }, + "regex": /([a-zA-Z0-9_]+)\.etsy\.com/ + }, "email": { "name": "Email", "type": "messaging", @@ -498,7 +534,43 @@ const BskyExt = { "brand": { "color": "#1DA1F2", }, - "regex": /twitter\.com\/([a-zA-Z0-9_]+)/ + "regex": /(twitter\.com|x\.com)\/([a-zA-Z0-9_]+)\/?$/ + }, + "xbox": { + "name": "Xbox", + "type": "social", + "icon": "fab fa-xbox", + "brand": { + "color": "#107C10", + }, + "regex": /xbox\.com\/([a-zA-Z0-9_]+)/ + }, + "playstation": { + "name": "PlayStation", + "type": "social", + "icon": "fab fa-playstation", + "brand": { + "color": "#003087", + }, + "regex": /playstation\.com\/([a-zA-Z0-9_]+)/ + }, + "steam": { + "name": "Steam", + "type": "content", + "icon": "fab fa-steam", + "brand": { + "color": "#000000", + }, + "regex": /steamcommunity\.com\/id\/([a-zA-Z0-9_]+)/ + }, + "tiktok": { + "name": "TikTok", + "type": "social", + "icon": "fab fa-tiktok", + "brand": { + "color": "#000000", + }, + "regex": /tiktok\.com\/@([a-zA-Z0-9_]+)/ }, "instagram": { "name": "Instagram", @@ -729,6 +801,72 @@ const BskyExt = { } }, + /** + * @constant {Object} linkStylesOverrides - Style overrides for specific link types + */ + linkStylesOverrides: { + "bluesky": { + "default": { + "color": "rgb(0, 133, 255)", + "background": "#0000", + "border": "#0000", + }, + "hover": { + "color": "#fff", + "background": "#0000", + "border": "#0000" + } + }, + "discord": { + "default": { + "color": "#FFFFFF", + "background": "#7289DA", + "border": "#7289DA", + }, + "hover": { + "color": "#7289DA", + "background": "#FFFFFF", + "border": "#7289DA" + } + }, + "linktree": { + "default": { + "color": "#FFFFFF", + "background": "#39e09b", + "border": "#39e09b", + }, + "hover": { + "color": "#39e09b", + "background": "#FFFFFF", + "border": "#39e09b" + } + }, + "carrd": { + "default": { + "color": "#FFFFFF", + "background": "#2C2F33", + "border": "#2C2F33", + }, + "hover": { + "color": "#2C2F33", + "background": "#FFFFFF", + "border": "#2C2F33" + } + }, + "dribbble": { + "default": { + "color": "#FFFFFF", + "background": "#EA4C89", + "border": "#EA4C89", + }, + "hover": { + "color": "#EA4C89", + "background": "#FFFFFF", + "border": "#EA4C89" + } + }, + }, + /** * @constant {Object} buttonStyles - The button styles for the supported messaging apps * @@ -1109,7 +1247,7 @@ const BskyExt = { let header = bio.closest("[data-testid='profileView']"); // Get the profile header button group element - let buttonGroup = header.querySelector('[role="button"]').parentElement; + let buttonGroup = header.querySelector("div.css-175oi2r.r-2llsf > div:nth-child(1) > div > div:nth-child(2) > div.css-175oi2r.r-12vffkv"); // Check if the profile header button group element exists if (!buttonGroup) { From a82d5d67e25959988529ee085f1f18eed3dce13e Mon Sep 17 00:00:00 2001 From: oxmc <67136658+oxmc@users.noreply.github.com> Date: Fri, 20 Dec 2024 02:52:25 -0800 Subject: [PATCH 2/8] Add jq install and debug --- .github/workflows/build-and-release.yml | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/.github/workflows/build-and-release.yml b/.github/workflows/build-and-release.yml index 93e058e..71b50b5 100644 --- a/.github/workflows/build-and-release.yml +++ b/.github/workflows/build-and-release.yml @@ -184,18 +184,31 @@ jobs: needs: release env: AUR_TOKEN: ${{ secrets.AUR_TOKEN }} + steps: - name: Checkout git repo uses: actions/checkout@v3 + + - name: Install jq + run: sudo apt-get update && sudo apt-get install jq -y + - name: Download checksums uses: actions/download-artifact@v4 with: name: checksums path: ./sha256sum.txt + + - name: List downloaded files + run: ls -R + + - name: Show content of sha256sum.txt + run: cat sha256sum.txt + - name: Extract checksum from sha256sum.txt run: | new_checksum=$(awk 'NR==1 { print $1 }' ./sha256sum.txt) sed -i "s|sha256sums=('SKIP' 'SKIP')|sha256sums=('$new_checksum' 'SKIP')|" ./build/PKGBUILD + - name: Publish AUR package uses: KSXGitHub/github-actions-deploy-aur@v3.0.1 with: From 08fbe470ad045775e107276c316313bc340f8eb1 Mon Sep 17 00:00:00 2001 From: oxmc <67136658+oxmc@users.noreply.github.com> Date: Fri, 20 Dec 2024 02:57:11 -0800 Subject: [PATCH 3/8] Change path in checksum download --- .github/workflows/build-and-release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-and-release.yml b/.github/workflows/build-and-release.yml index 71b50b5..1c3b68d 100644 --- a/.github/workflows/build-and-release.yml +++ b/.github/workflows/build-and-release.yml @@ -196,7 +196,7 @@ jobs: uses: actions/download-artifact@v4 with: name: checksums - path: ./sha256sum.txt + path: . - name: List downloaded files run: ls -R From d26d82121c4adf0d10c235cd62cd907c2badecc6 Mon Sep 17 00:00:00 2001 From: PlOszukiwacz <87446593+PlOszukiwaczDEV@users.noreply.github.com> Date: Fri, 20 Dec 2024 13:09:05 +0100 Subject: [PATCH 4/8] fixed an issue with the appimage --- package.json | 2 +- src/ui/images/icons/128x128.png | Bin 0 -> 2915 bytes src/ui/images/icons/16x16.png | Bin 0 -> 538 bytes src/ui/images/icons/256x256.png | Bin 0 -> 5966 bytes src/ui/images/icons/32x32.png | Bin 0 -> 939 bytes src/ui/images/icons/48x48.png | Bin 0 -> 1427 bytes src/ui/images/icons/64x64.png | Bin 0 -> 1733 bytes 7 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 src/ui/images/icons/128x128.png create mode 100644 src/ui/images/icons/16x16.png create mode 100644 src/ui/images/icons/256x256.png create mode 100644 src/ui/images/icons/32x32.png create mode 100644 src/ui/images/icons/48x48.png create mode 100644 src/ui/images/icons/64x64.png diff --git a/package.json b/package.json index 1454e5b..2b3b25d 100644 --- a/package.json +++ b/package.json @@ -49,7 +49,7 @@ "target": [ "appimage" ], - "icon": "src/ui/images/logo.png", + "icon": "src/ui/images/icons", "category": "Network" }, "win": { diff --git a/src/ui/images/icons/128x128.png b/src/ui/images/icons/128x128.png new file mode 100644 index 0000000000000000000000000000000000000000..78cd3d7746cd9a5b81418fa133d3e2bd372987be GIT binary patch literal 2915 zcmeH}`8O2$8^=Fm8T(q<*DR%EyGF*|*elZ5E)m(vmSW5xU1Lv%tb>RtOC!Ws>MA5- zUs^;=n2{wT$-YjwI_G=N{TsgL+;g7y^E%IYetVziocEJtV{OjEDaHu^;IXtYK^_wO zTkOn-eSI>0=Maz(q&WgY=~0e495`-SIE4Vfb>z1o;9-FX08G_37wt?BmmvP&zxvOC z{|g5w_P%_F7dwkWTH6ACJ4|{p?xwYjtW8Q9`ZBNL(6_Z;%U?g%1t_ztGz_lJeoB-- z+kVh_N`2sE>Rzdk1S#gow6r0o)p zmQ+YR-`uG_Uc1r<`^;LVbovpaqo$tY@4}4;2vhvE?UpP%Ozlpr> zCf22uIcDJg@Yy)0WsXKs!SIqF9UD7(;*vv<oLyMK z;=?<3R!$OKTRt1X;t^rr6g8#1Pm2Dm!fD8PPY5}8c(s=drdgUQq?aM3X5lF$?w+*u z+`MC*xQs6D$0Fo@H9SXOojpg2kb+n_Y6*U4iS|4nc2KZnxJ9K=8C#6;kWC8X<(7fS z-upH|EQ<`p0{jc3+6KBW8|!?`La5({8$7a|)%};t77tTPaVQF|vJ_tg)9ed+GKst--3|~b4hGw;S*&*rWDKd z?DLT|DJv7|E$7wv24X>(;Ok~sC#^xLWuy;!IWcJHo&>x5uIUqU;Ky zL)18s@F6m_O>}&PNAJQ(g@_y(tW!r;8E3(Ot|ntjY&F!RTb+kVZP7a93QRO-1!cNb z@oHAFzU`Gbf9tp#v9LmlLJ44=9^+exe1&)3b=kggA0%iLhUGuK`!WWssSELH`2}0X zgP1kZcgM^WoxHkcswmV``+fFAi`sG??w6mDlk3 z1N+fVSDjVW?g9K??@`#a>w?8LG^QJi+3XNy;nZw|RW$+Ae(b~&Q&sb{3|2MntR;~{ z|2C{q+JtU*{W2TYXQ$l=a3ZFNO4%G&&6F)pEoAb-3XiZt`j39Q=&^H6;+)!@FKz~` zu&Vpc+>lYnXh2-R>D|8Xbu{@6^vZ52H357mJEQiNNkX}{bZX!hIqgE5lrmI=a9Sft zeks_@F_kUJm2_a z);~_!T)WGr9@V&PodiLX6vbgmy^%g=qbBaYh)$0sS_V0XYOvRwh~@)uYRlj{CgVN) z7EUsycJrZ)%#|yg{OxcF^YqoX1o* z&j8$7u)?27pm$}u177rklS7x@#)Zw$$kf?Yqz_jL^B_>5ev#rRDQ?&yGsQ&0qOYnA z&Ngj|&sHJJ-V=RrCD?KU7#o1Agt|&b-L5fZNo9E0r@t2{%ySHClS*9P z-cD%kDQn!9F`$(@t>9UsK2yxr41`xp`s+>o=YmVodSJEYs#AM227iigWZvqlOai2- z8Cn=#K3b2TvNT3EXiV_m$`fa!q0zTpqdy9+jG%TDz`kfokn ze~(&HFww7^&oPP8ImZ}3DQr&C+HnFMyh)Pj`Lk%}HW_zFuJk4yyUng|;4`cOo{C1H z`n}{a6BniVML=u}JVVeei`Oy3o*l#12==A?IT=#KaW2R2Vut0CAi5>QeWd%>s_rd? zj@rc`^K{k4wuJGZp8oA8a{OYQ@(pvtUQXOTZRkz9<{dsIB0Ec@?~_13w(0YVUb} z&72TBauq`h?-y9;v)sou<-#S|%u=p37G_cFsV_I&^^+RV{h1bMM8;4)33EUnc{@Nm z{)kK;Hsg^iBHe}%{43&@_L|b&aO9P5)!}=3>oZjd^~7Ht(aDAypODKuc4LjsKJT=@25G}xN7&F=8bpcKI7*d zzTGB<1IDEF!YN-wdT}@p!r{wGQwVv-x;#9n;W-gGAz$^1CVAXeS66aQQAg|p6gDW3G_fHG?3_fAj2r>9#C=(DgA*%i2Kv_b+T|YHjiy;U4o3y5o1= literal 0 HcmV?d00001 diff --git a/src/ui/images/icons/16x16.png b/src/ui/images/icons/16x16.png new file mode 100644 index 0000000000000000000000000000000000000000..3fe3edf365a61f25596a65a2495302314b58311d GIT binary patch literal 538 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 O1IGFmdW|}m*#7}X!NZ~e literal 0 HcmV?d00001 diff --git a/src/ui/images/icons/32x32.png b/src/ui/images/icons/32x32.png new file mode 100644 index 0000000000000000000000000000000000000000..fd4ba9651c1790ad51b87c29ac7419577151e0d8 GIT binary patch literal 939 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabR7dyjKx9jPK-BC>eK@{oCO|{#S9GG z!XV7ZFl&wkP(fILPlzi}lA-ngD57o%$k!On0tReRNswPKgZ_j%L*shglmAz1>8v~S z_0L&#jdLG<-f{J~`|ZtDahaP>ukVpnJkrwtYv-!JPK->x|K?8KFRyy4DZO=4wCTOK z@AE%ru|I#D$;#pVeT5s_t4k+BfBSoVY5OGg%-;FsZtcdN2SK;D3yK}|<4l{K#3PWA z5~ZvW4~*XePZ!6KiaE(C3JenL-Arx@KbqAJp8C=LRo#b?UD@MexJstn1h#Ab2CRSf zOGw<1l)QiNX{+RahSJY_+B5}z^C}{Z1 zD8J0%rKQVqk;k$MD}Q}5Z#n&!ZJEPcLzkBD4{8&xB-AiG)QW4?ys(dbYmDTR#ADI{ z^PXAGV0xTw@I0IOss2HWU+M{5I_v+pNFF?1!KZe9T`|kD1Jgd5_+07vsM4ePkKBg>HBruFFeVWlq@$eP)NEw`QwJWfit{stZmG@%aV9lWQCn* zRriwnZ{I&{*WhZ&EngJ*u<)tbrY41BxdLr1TvrU8re#kMZ86GYyDatQ({=^Mm-Qbk zH#MEO9e%Jx;Xai0W zTjBYaJQ-XPn;Zl!IZvEmSGz8KThc(}0YkGRBg4r{k&074?WzRjDNk2Fmvv4FO#llH BsmK5T literal 0 HcmV?d00001 diff --git a/src/ui/images/icons/48x48.png b/src/ui/images/icons/48x48.png new file mode 100644 index 0000000000000000000000000000000000000000..74d770a400d5406ba9f64ed06a5c6f5a6de6fb28 GIT binary patch literal 1427 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA3?vioaBc-sjKx9jPK-BC>eK@{oCO|{#S9GG z!XV7ZFl&wkP{I2EpAc7|Btz@}Q8YqAV3)h*K46S5EeY}qW?*v*@l;{uGWXSHc7FKh z`5ZZggv0MwC@CKM|L%kn6HC*n@138&O%O5Iee>V%eae^q{s^8XtntfdGvDo(t}PN* zZrCnl=UjHwg;wtI!fE`FB%*wXKs4*%Ers`F+} z{FEZP_roIHoONM|TVBkv68PzTg!|Qg_lu3?Vrs|N@0wx1Gmyjjb)_9o+oS7A57zig zM=bDQy!~}50|Qf!r;B4q#hm061wn(p7~Y`%q#aPaHTEd337}iCH{Qo-$hS~94 z7C2VI;d*Rd;ah*Uwv1!78jE<&btg(Kn)!W!*Ges&lmw3(f8|53)Y|zlJ73}p(PV4= zf4rG>+v2W5+aJu=6RO31nVYZYRhvXNCYo`tbDSX?+syrZ-}(%vx}M7qr8b3aUUZV{ z=6ZK?<&0PLJJ{Gv!(wK#^Bu`+V3u5^IK7Zpk$0i67 zlx`Ytv_ARfa%=evsabM)$5%=57)fRum}Jx)St~a~=(d50$3l%0@6w$gW*?Yj71R7V zbIOC0iF0}uJv@JX{R^`aAE&Sh@!H?`XT}G#JzVmN-{WNO#sycduxY*$W!;vP@gi{! zKfiU`Bqg@Ce|Z++YO5L;ott9}li7RLR*B5msU~mD@wDhhO>Fnd#>PZ1Vf!QLOgB>< z+G@T@dF;7<#q60u!sP=2YcBDG&A-m)muW01`MNRW@;+sct87`a;?MRSp2)m{XO@w; q(Yl|tDN>J{rPyMmIvA9Lm>G_V&oSgSk2nP?J3U?fT-G@yGywoo<%`S! literal 0 HcmV?d00001 diff --git a/src/ui/images/icons/64x64.png b/src/ui/images/icons/64x64.png new file mode 100644 index 0000000000000000000000000000000000000000..0caa05c3bc54ebada0c8b950733b91b4d8060fea GIT binary patch literal 1733 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I3?%1nZ+ru!7>k44ofvPP)Tsw@I14-?iy0WW zg+Z8+Vb&Z81_mbc0G|+7pd>@<|4}p=0wjfixkP#{Fy-tm3GxeOkai34G?O%UmEvfB z_~-e-HXD9H+m6Hcn^=>7{eQN@iDmbXLzx0uM;5>MeXEX_uilwD6tLw?H3hpmY;Y#F!ttw^T)S- z4PH}!vid^)Uv7!gcmG}&h+j+Cv@SZdWWoC)rL>h#m&IGYIcqr2>%@dlOEq*B)s**7 zbG(tx#VImlwyNd|9<96IPFG&)wa_g*_Tgx!skiTzSL<#vFfhk?x;TbZ%y~Pl+T(Jd z$np1$F$t!IQ|GL)6rHLdzr>?yiGo_ntjAKgs^WNe#$@_VyjpZdFF4FCIMwz9}AtZBTjaJ}@^fd<+4ntQvSsXk>t$nbQx z?E!}GnqCSKi$e?VB)nMsea#kOW~W~-RBz|!#1=Wtlz)7)hcQtve4l zpVA(e_Gr_zhz9dei!%&frCJ+j`I;-S{ncBVwuWIxgv*)PD~{_dSd!9OjNV8)3sX4{lciO()zN@(>d6vq_Mm-PTZqwjW9-LRUukFeK zPOY#V^Wy|~S6mK!wPo{Tm6gx6%~Ps%?#VR7v~D^Y>@$OXW7~1wvzL~OrY~8@EfUOa zX*d7e`F^!WQ?C`@k6tzX$Ly-mM-C-Cmo{Hr@ne%_@w-U2z3)D+&fU Date: Fri, 20 Dec 2024 13:33:28 +0100 Subject: [PATCH 5/8] appimagelint test 1 --- .github/workflows/build-and-release.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.github/workflows/build-and-release.yml b/.github/workflows/build-and-release.yml index 972f375..12241f1 100644 --- a/.github/workflows/build-and-release.yml +++ b/.github/workflows/build-and-release.yml @@ -36,6 +36,14 @@ jobs: - name: Build (arm64) run: npm run build -- --arch arm64 + + - name: Download appimagelint + run: | + wget https://github.com/TheAssassin/appimagelint/releases/download/continuous/appimagelint-x86_64.AppImage + chmod +x appimagelint-x86_64.AppImage + + - name: Check the appimage(s) + run: ./appimagelint-x86_64.AppImage dist/*.AppImage - name: Upload Linux Artifacts uses: actions/upload-artifact@v4 From 04ec30066d1ba5d34bc2a9575b7ad8538dec473b Mon Sep 17 00:00:00 2001 From: PlOszukiwacz <87446593+PlOszukiwaczDEV@users.noreply.github.com> Date: Fri, 20 Dec 2024 13:36:57 +0100 Subject: [PATCH 6/8] appimagelint test 2 --- .github/workflows/build-and-release.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build-and-release.yml b/.github/workflows/build-and-release.yml index 12241f1..79c1fac 100644 --- a/.github/workflows/build-and-release.yml +++ b/.github/workflows/build-and-release.yml @@ -37,8 +37,9 @@ jobs: - name: Build (arm64) run: npm run build -- --arch arm64 - - name: Download appimagelint + - name: Download appimagelint and its deps run: | + sudo apt install fuse -y wget https://github.com/TheAssassin/appimagelint/releases/download/continuous/appimagelint-x86_64.AppImage chmod +x appimagelint-x86_64.AppImage From 53bf782ddcc5ad5e0f1e4f5b14162486a7eebf7f Mon Sep 17 00:00:00 2001 From: PlOszukiwacz <87446593+PlOszukiwaczDEV@users.noreply.github.com> Date: Fri, 20 Dec 2024 13:43:35 +0100 Subject: [PATCH 7/8] appimagelint test 3 (libfuse) --- .github/workflows/build-and-release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-and-release.yml b/.github/workflows/build-and-release.yml index 79c1fac..e8b2496 100644 --- a/.github/workflows/build-and-release.yml +++ b/.github/workflows/build-and-release.yml @@ -39,7 +39,7 @@ jobs: - name: Download appimagelint and its deps run: | - sudo apt install fuse -y + sudo apt install libfuse -y wget https://github.com/TheAssassin/appimagelint/releases/download/continuous/appimagelint-x86_64.AppImage chmod +x appimagelint-x86_64.AppImage From def3cd312de49c0304d1cdc39e0bcc0663aa800f Mon Sep 17 00:00:00 2001 From: PlOszukiwacz <87446593+PlOszukiwaczDEV@users.noreply.github.com> Date: Fri, 20 Dec 2024 13:45:49 +0100 Subject: [PATCH 8/8] libfuse dosent exist ig --- .github/workflows/build-and-release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-and-release.yml b/.github/workflows/build-and-release.yml index e8b2496..79c1fac 100644 --- a/.github/workflows/build-and-release.yml +++ b/.github/workflows/build-and-release.yml @@ -39,7 +39,7 @@ jobs: - name: Download appimagelint and its deps run: | - sudo apt install libfuse -y + sudo apt install fuse -y wget https://github.com/TheAssassin/appimagelint/releases/download/continuous/appimagelint-x86_64.AppImage chmod +x appimagelint-x86_64.AppImage