Compare commits

..

1 Commits

Author SHA1 Message Date
Mihai 2a48059186 fix: skip maximise if starting to tray
Signed-off-by: Mihai <cristian@mihaimuresan.com>
2026-03-06 14:48:17 +01:00
10 changed files with 67 additions and 170 deletions
-3
View File
@@ -1,6 +1,3 @@
# DO NOT EDIT DIRECTLY IN REPOSITORY
# Managed in Terraform templates
name: Release Webhook name: Release Webhook
on: on:
+1 -4
View File
@@ -1,6 +1,3 @@
# DO NOT EDIT DIRECTLY IN REPOSITORY
# Managed in Terraform templates
name: "Lint PR" name: "Lint PR"
on: on:
@@ -18,6 +15,6 @@ jobs:
permissions: permissions:
pull-requests: read pull-requests: read
steps: steps:
- uses: amannn/action-semantic-pull-request@48f256284bd46cdaab1048c3721360e808335d50 # v6.1.1 - uses: amannn/action-semantic-pull-request@v6
env: env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+1 -1
View File
@@ -1,3 +1,3 @@
{ {
".": "1.4.0" ".": "1.3.0"
} }
-12
View File
@@ -1,17 +1,5 @@
# Changelog # Changelog
## [1.4.0](https://github.com/stoatchat/for-desktop/compare/v1.3.0...v1.4.0) (2026-05-30)
### Features
* enable screen sharing and integrate screen picker ([#207](https://github.com/stoatchat/for-desktop/issues/207)) ([c9d59ee](https://github.com/stoatchat/for-desktop/commit/c9d59ee044724cec86bc6a286ef1e34accf8c560))
### Bug Fixes
* **flatpak:** change screenshot path into an url in the metainfo file ([#195](https://github.com/stoatchat/for-desktop/issues/195)) ([74c941e](https://github.com/stoatchat/for-desktop/commit/74c941e5b83cd14ddecb74150d5a1d08c143278b))
## [1.3.0](https://github.com/stoatchat/for-desktop/compare/v1.2.0...v1.3.0) (2026-02-18) ## [1.3.0](https://github.com/stoatchat/for-desktop/compare/v1.2.0...v1.3.0) (2026-02-18)
+1 -1
View File
@@ -19,7 +19,7 @@
<screenshots> <screenshots>
<screenshot type="default"> <screenshot type="default">
<caption>Main window</caption> <caption>Main window</caption>
<image>https://raw.githubusercontent.com/stoatchat/for-desktop/b57faa2c59865fea15a879c9a9304271067d0020/screenshot.png</image> <image>screenshot.png</image>
</screenshot> </screenshot>
</screenshots> </screenshots>
<releases> <releases>
+22 -14
View File
@@ -85,29 +85,37 @@ if (!process.env.PLATFORM) {
// default arguments found by running // default arguments found by running
// DEBUG=electron-installer-flatpak* pnpm make // DEBUG=electron-installer-flatpak* pnpm make
"--socket=fallback-x11", "--socket=fallback-x11",
"--socket=wayland",
"--share=ipc", "--share=ipc",
"--share=network",
"--device=dri", "--device=dri",
"--device=all",
"--socket=pulseaudio", "--socket=pulseaudio",
"--filesystem=home", "--filesystem=home",
"--filesystem=xdg-run/pipewire-0", "--env=TMPDIR=/var/tmp",
"--filesystem=xdg-videos:ro", "--share=network",
"--filesystem=xdg-pictures:ro",
"--filesystem=xdg-run/speech-dispatcher",
"--talk-name=org.freedesktop.ScreenSaver",
"--talk-name=org.freedesktop.Notifications", "--talk-name=org.freedesktop.Notifications",
"--talk-name=org.kde.StatusNotifierWatcher", // add Unity talk name for badges
"--talk-name=com.canonical.AppMenu.Registrar",
"--talk-name=com.canonical.indicator.application",
"--talk-name=com.canonical.Unity", "--talk-name=com.canonical.Unity",
"--env=XCURSOR_PATH=/run/host/user-share/icons:/run/host/share/icons",
"--env=ELECTRON_TRASH=gio",
"--env=TMPDIR=xdg-run/app/chat.stoat.stoat-desktop",
], ],
// files: [
// // is this necessary?
// // https://stackoverflow.com/q/79745700
// ...[16, 32, 64, 128, 256, 512].map(
// (size) =>
// [
// `assets/desktop/hicolor/${size}x${size}.png`,
// `/app/share/icons/hicolor/${size}x${size}/apps/chat.stoat.stoat-desktop.png`,
// ] as [string, string],
// ),
// [
// `assets/desktop/icon.svg`,
// `/app/share/icons/hicolor/scalable/apps/chat.stoat.stoat-desktop.svg`,
// ] as [string, string],
// ],
files: [], files: [],
} as MakerFlatpakOptionsConfig, } as MakerFlatpakOptionsConfig,
/* as Omit<
MakerFlatpakOptionsConfig,
"files"
> */
}), }),
// testing purposes // testing purposes
new MakerDeb({ new MakerDeb({
+3 -3
View File
@@ -1,11 +1,11 @@
{ {
"name": "stoat-desktop", "name": "stoat-desktop",
"productName": "stoat-desktop", "productName": "stoat-desktop",
"version": "1.4.0", "version": "1.3.0",
"main": ".vite/build/main.js", "main": ".vite/build/main.js",
"repository": "stoatchat/desktop", "repository": "stoatchat/desktop",
"scripts": { "scripts": {
"start": "electron-forge start -- --no-sandbox", "start": "electron-forge start",
"package": "electron-forge package", "package": "electron-forge package",
"make": "electron-forge make", "make": "electron-forge make",
"publish": "electron-forge publish", "publish": "electron-forge publish",
@@ -36,7 +36,7 @@
"@types/electron-squirrel-startup": "^1.0.2", "@types/electron-squirrel-startup": "^1.0.2",
"@typescript-eslint/eslint-plugin": "^5.62.0", "@typescript-eslint/eslint-plugin": "^5.62.0",
"@typescript-eslint/parser": "^5.62.0", "@typescript-eslint/parser": "^5.62.0",
"electron": "^40.8.3", "electron": "38.1.2",
"eslint": "^8.57.1", "eslint": "^8.57.1",
"eslint-plugin-import": "^2.32.0", "eslint-plugin-import": "^2.32.0",
"json-schema-typed": "^8.0.1", "json-schema-typed": "^8.0.1",
+37 -58
View File
@@ -85,8 +85,8 @@ importers:
specifier: ^5.62.0 specifier: ^5.62.0
version: 5.62.0(eslint@8.57.1)(typescript@4.5.5) version: 5.62.0(eslint@8.57.1)(typescript@4.5.5)
electron: electron:
specifier: ^40.8.3 specifier: 38.1.2
version: 40.8.3 version: 38.1.2
eslint: eslint:
specifier: ^8.57.1 specifier: ^8.57.1
version: 8.57.1 version: 8.57.1
@@ -104,7 +104,7 @@ importers:
version: 4.5.5 version: 4.5.5
vite: vite:
specifier: ^5.4.20 specifier: ^5.4.20
version: 5.4.20(@types/node@24.10.13) version: 5.4.20(@types/node@24.5.2)
packages: packages:
@@ -825,9 +825,6 @@ packages:
'@types/node@22.18.6': '@types/node@22.18.6':
resolution: {integrity: sha512-r8uszLPpeIWbNKtvWRt/DbVi5zbqZyj1PTmhRMqBMvDnaz1QpmSKujUtJLrqGZeoM8v72MfYggDceY4K1itzWQ==} resolution: {integrity: sha512-r8uszLPpeIWbNKtvWRt/DbVi5zbqZyj1PTmhRMqBMvDnaz1QpmSKujUtJLrqGZeoM8v72MfYggDceY4K1itzWQ==}
'@types/node@24.10.13':
resolution: {integrity: sha512-oH72nZRfDv9lADUBSo104Aq7gPHpQZc4BTx38r9xf9pg5LfP6EzSyH2n7qFmmxRQXh7YlUXODcYsg6PuTDSxGg==}
'@types/node@24.5.2': '@types/node@24.5.2':
resolution: {integrity: sha512-FYxk1I7wPv3K2XBaoyH2cTnocQEu8AOZ60hPbsyukMPLv5/5qr7V1i8PLHdl6Zf87I+xZXFvPCXYjiTFq+YSDQ==} resolution: {integrity: sha512-FYxk1I7wPv3K2XBaoyH2cTnocQEu8AOZ60hPbsyukMPLv5/5qr7V1i8PLHdl6Zf87I+xZXFvPCXYjiTFq+YSDQ==}
@@ -910,7 +907,6 @@ packages:
'@xmldom/xmldom@0.8.11': '@xmldom/xmldom@0.8.11':
resolution: {integrity: sha512-cQzWCtO6C8TQiYl1ruKNn2U6Ao4o4WBBcbL61yJl84x+j5sOWWFU9X7DpND8XZG3daDppSsigMdfAIl2upQBRw==} resolution: {integrity: sha512-cQzWCtO6C8TQiYl1ruKNn2U6Ao4o4WBBcbL61yJl84x+j5sOWWFU9X7DpND8XZG3daDppSsigMdfAIl2upQBRw==}
engines: {node: '>=10.0.0'} engines: {node: '>=10.0.0'}
deprecated: this version has critical issues, please update to the latest version
abbrev@1.1.1: abbrev@1.1.1:
resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==} resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==}
@@ -1079,9 +1075,6 @@ packages:
brace-expansion@2.0.2: brace-expansion@2.0.2:
resolution: {integrity: sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==} resolution: {integrity: sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==}
brace-expansion@2.1.0:
resolution: {integrity: sha512-TN1kCZAgdgweJhWWpgKYrQaMNHcDULHkWwQIspdtjV4Y5aurRdZpjAqn6yX3FPqTA9ngHCc4hJxMAMgGfve85w==}
braces@3.0.3: braces@3.0.3:
resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==}
engines: {node: '>=8'} engines: {node: '>=8'}
@@ -1379,8 +1372,8 @@ packages:
resolution: {integrity: sha512-bO3y10YikuUwUuDUQRM4KfwNkKhnpVO7IPdbsrejwN9/AABJzzTQ4GeHwyzNSrVO+tEH3/Np255a3sVZpZDjvg==} resolution: {integrity: sha512-bO3y10YikuUwUuDUQRM4KfwNkKhnpVO7IPdbsrejwN9/AABJzzTQ4GeHwyzNSrVO+tEH3/Np255a3sVZpZDjvg==}
engines: {node: '>=8.0.0'} engines: {node: '>=8.0.0'}
electron@40.8.3: electron@38.1.2:
resolution: {integrity: sha512-MH6LK4xM6VVmmtz0nRE0Fe8l2jTKSYTvH1t0ZfbNLw3o6dlBCVTRqQha6uL8ZQVoMy74JyLguGwK7dU7rCKIhw==} resolution: {integrity: sha512-WXUcN3W8h8NTTZViA3KNX0rV2YBU0X0mEUM3ubupXTDY4QtIN7tmiqYVOKSKpR2LckTmBWGuEeY4D6xVoffwKQ==}
engines: {node: '>= 12.20.55'} engines: {node: '>= 12.20.55'}
hasBin: true hasBin: true
@@ -1544,8 +1537,8 @@ packages:
resolution: {integrity: sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==} resolution: {integrity: sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==}
engines: {node: '>=6'} engines: {node: '>=6'}
exponential-backoff@3.1.3: exponential-backoff@3.1.2:
resolution: {integrity: sha512-ZgEeZXj30q+I0EN+CbSSpIyPaJ5HVQD18Z1m+u1FXbAeT94mr1zw50q4q6jiiC447Nl/YTcIYSAftiGqetwXCA==} resolution: {integrity: sha512-8QxYTVXUkuy7fIIoitQkPwGonB8F3Zj8eEO8Sqg9Zv/bkI7RJAzowee4gr81Hak/dUTpA2Z7VfQgoijjPNlUZA==}
external-editor@3.1.0: external-editor@3.1.0:
resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==}
@@ -1722,12 +1715,12 @@ packages:
glob@7.2.3: glob@7.2.3:
resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==}
deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me deprecated: Glob versions prior to v9 are no longer supported
glob@8.1.0: glob@8.1.0:
resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==}
engines: {node: '>=12'} engines: {node: '>=12'}
deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me deprecated: Glob versions prior to v9 are no longer supported
global-agent@3.0.0: global-agent@3.0.0:
resolution: {integrity: sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q==} resolution: {integrity: sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q==}
@@ -1873,8 +1866,8 @@ packages:
resolution: {integrity: sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==} resolution: {integrity: sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==}
engines: {node: '>=10.13.0'} engines: {node: '>=10.13.0'}
ip-address@10.1.0: ip-address@10.0.1:
resolution: {integrity: sha512-XXADHxXmvT9+CRxhXg56LJovE+bmWnEWB78LB83VZTprKTmaC5QfruXocxzTZ2Kl0DNwKuBdlIhjL8LeY8Sf8Q==} resolution: {integrity: sha512-NWv9YLW4PoW2B7xtzaS3NCot75m6nK7Icdv0o3lfMceJVRfSoQwqD4wEH5rLwoKJwUiZ/rfpiVBhnaF0FK4HoA==}
engines: {node: '>= 12'} engines: {node: '>= 12'}
is-array-buffer@3.0.5: is-array-buffer@3.0.5:
@@ -2192,8 +2185,8 @@ packages:
minimatch@3.1.2: minimatch@3.1.2:
resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
minimatch@5.1.9: minimatch@5.1.6:
resolution: {integrity: sha512-7o1wEA2RyMP7Iu7GNba9vc0RWWGACJOCZBJX2GJWip0ikV+wcOsgVuY9uE8CPiyQhkGFSlhuSkZPavN7u1c2Fw==} resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==}
engines: {node: '>=10'} engines: {node: '>=10'}
minimatch@9.0.5: minimatch@9.0.5:
@@ -2211,8 +2204,8 @@ packages:
resolution: {integrity: sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA==} resolution: {integrity: sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA==}
engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
minipass-flush@1.0.7: minipass-flush@1.0.5:
resolution: {integrity: sha512-TbqTz9cUwWyHS2Dy89P3ocAGUGxKjjLuR9z8w4WUTGAVgEj17/4nhgo2Du56i0Fm3Pm30g4iA8Lcqctc76jCzA==} resolution: {integrity: sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==}
engines: {node: '>= 8'} engines: {node: '>= 8'}
minipass-pipeline@1.2.4: minipass-pipeline@1.2.4:
@@ -2280,8 +2273,8 @@ packages:
nice-try@1.0.5: nice-try@1.0.5:
resolution: {integrity: sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==} resolution: {integrity: sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==}
node-abi@3.89.0: node-abi@3.77.0:
resolution: {integrity: sha512-6u9UwL0HlAl21+agMN3YAMXcKByMqwGx+pq+P76vii5f7hTPtKDp08/H9py6DY+cfDw7kQNTGEj/rly3IgbNQA==} resolution: {integrity: sha512-DSmt0OEcLoK4i3NuscSbGjOf3bqiDEutejqENSplMSFA/gmB8mkED9G4pKWnPl7MDU4rSHebKPHeitpDfyH0cQ==}
engines: {node: '>=10'} engines: {node: '>=10'}
node-addon-api@1.7.2: node-addon-api@1.7.2:
@@ -2883,7 +2876,6 @@ packages:
tar@6.2.1: tar@6.2.1:
resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==} resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==}
engines: {node: '>=10'} engines: {node: '>=10'}
deprecated: Old versions of tar are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me
temp@0.9.4: temp@0.9.4:
resolution: {integrity: sha512-yYrrsWnrXMcdsnu/7YMYAofM1ktpL5By7vZhf15CrXijWWrEYZks5AXBudalfSWJLlnen/QUJUB5aoB0kqZUGA==} resolution: {integrity: sha512-yYrrsWnrXMcdsnu/7YMYAofM1ktpL5By7vZhf15CrXijWWrEYZks5AXBudalfSWJLlnen/QUJUB5aoB0kqZUGA==}
@@ -2991,9 +2983,6 @@ packages:
undici-types@7.12.0: undici-types@7.12.0:
resolution: {integrity: sha512-goOacqME2GYyOZZfb5Lgtu+1IDmAlAEu5xnD3+xTzS10hT0vzpf0SPjkXwAw9Jm+4n/mQGDP3LO8CPbYROeBfQ==} resolution: {integrity: sha512-goOacqME2GYyOZZfb5Lgtu+1IDmAlAEu5xnD3+xTzS10hT0vzpf0SPjkXwAw9Jm+4n/mQGDP3LO8CPbYROeBfQ==}
undici-types@7.16.0:
resolution: {integrity: sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==}
unique-filename@2.0.1: unique-filename@2.0.1:
resolution: {integrity: sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A==} resolution: {integrity: sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A==}
engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
@@ -3542,7 +3531,7 @@ snapshots:
'@electron/node-gyp@https://codeload.github.com/electron/node-gyp/tar.gz/06b29aafb7708acef8b3669835c8a7857ebc92d2': '@electron/node-gyp@https://codeload.github.com/electron/node-gyp/tar.gz/06b29aafb7708acef8b3669835c8a7857ebc92d2':
dependencies: dependencies:
env-paths: 2.2.1 env-paths: 2.2.1
exponential-backoff: 3.1.3 exponential-backoff: 3.1.2
glob: 8.1.0 glob: 8.1.0
graceful-fs: 4.2.11 graceful-fs: 4.2.11
make-fetch-happen: 10.2.1 make-fetch-happen: 10.2.1
@@ -3609,7 +3598,7 @@ snapshots:
detect-libc: 2.1.1 detect-libc: 2.1.1
fs-extra: 10.1.0 fs-extra: 10.1.0
got: 11.8.6 got: 11.8.6
node-abi: 3.89.0 node-abi: 3.77.0
node-api-version: 0.2.1 node-api-version: 0.2.1
ora: 5.4.1 ora: 5.4.1
read-binary-file-arch: 1.0.6 read-binary-file-arch: 1.0.6
@@ -4114,7 +4103,7 @@ snapshots:
'@types/fs-extra@9.0.13': '@types/fs-extra@9.0.13':
dependencies: dependencies:
'@types/node': 24.10.13 '@types/node': 24.5.2
optional: true optional: true
'@types/http-cache-semantics@4.0.4': {} '@types/http-cache-semantics@4.0.4': {}
@@ -4125,20 +4114,16 @@ snapshots:
'@types/keyv@3.1.4': '@types/keyv@3.1.4':
dependencies: dependencies:
'@types/node': 24.10.13 '@types/node': 24.5.2
'@types/mute-stream@0.0.4': '@types/mute-stream@0.0.4':
dependencies: dependencies:
'@types/node': 24.10.13 '@types/node': 22.18.6
'@types/node@22.18.6': '@types/node@22.18.6':
dependencies: dependencies:
undici-types: 6.21.0 undici-types: 6.21.0
'@types/node@24.10.13':
dependencies:
undici-types: 7.16.0
'@types/node@24.5.2': '@types/node@24.5.2':
dependencies: dependencies:
undici-types: 7.12.0 undici-types: 7.12.0
@@ -4153,7 +4138,7 @@ snapshots:
'@types/yauzl@2.10.3': '@types/yauzl@2.10.3':
dependencies: dependencies:
'@types/node': 24.10.13 '@types/node': 22.18.6
optional: true optional: true
'@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@4.5.5))(eslint@8.57.1)(typescript@4.5.5)': '@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@4.5.5))(eslint@8.57.1)(typescript@4.5.5)':
@@ -4431,10 +4416,6 @@ snapshots:
dependencies: dependencies:
balanced-match: 1.0.2 balanced-match: 1.0.2
brace-expansion@2.1.0:
dependencies:
balanced-match: 1.0.2
braces@3.0.3: braces@3.0.3:
dependencies: dependencies:
fill-range: 7.1.1 fill-range: 7.1.1
@@ -4463,7 +4444,7 @@ snapshots:
lru-cache: 7.18.3 lru-cache: 7.18.3
minipass: 3.3.6 minipass: 3.3.6
minipass-collect: 1.0.2 minipass-collect: 1.0.2
minipass-flush: 1.0.7 minipass-flush: 1.0.5
minipass-pipeline: 1.2.4 minipass-pipeline: 1.2.4
mkdirp: 1.0.4 mkdirp: 1.0.4
p-map: 4.0.0 p-map: 4.0.0
@@ -4806,10 +4787,10 @@ snapshots:
- supports-color - supports-color
optional: true optional: true
electron@40.8.3: electron@38.1.2:
dependencies: dependencies:
'@electron/get': 2.0.3 '@electron/get': 2.0.3
'@types/node': 24.10.13 '@types/node': 22.18.6
extract-zip: 2.0.1 extract-zip: 2.0.1
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
@@ -5098,7 +5079,7 @@ snapshots:
signal-exit: 3.0.7 signal-exit: 3.0.7
strip-eof: 1.0.0 strip-eof: 1.0.0
exponential-backoff@3.1.3: {} exponential-backoff@3.1.2: {}
external-editor@3.1.0: external-editor@3.1.0:
dependencies: dependencies:
@@ -5334,7 +5315,7 @@ snapshots:
fs.realpath: 1.0.0 fs.realpath: 1.0.0
inflight: 1.0.6 inflight: 1.0.6
inherits: 2.0.4 inherits: 2.0.4
minimatch: 5.1.9 minimatch: 5.1.6
once: 1.4.0 once: 1.4.0
global-agent@3.0.0: global-agent@3.0.0:
@@ -5502,7 +5483,7 @@ snapshots:
interpret@3.1.1: {} interpret@3.1.1: {}
ip-address@10.1.0: {} ip-address@10.0.1: {}
is-array-buffer@3.0.5: is-array-buffer@3.0.5:
dependencies: dependencies:
@@ -5753,7 +5734,7 @@ snapshots:
minipass: 3.3.6 minipass: 3.3.6
minipass-collect: 1.0.2 minipass-collect: 1.0.2
minipass-fetch: 2.1.2 minipass-fetch: 2.1.2
minipass-flush: 1.0.7 minipass-flush: 1.0.5
minipass-pipeline: 1.2.4 minipass-pipeline: 1.2.4
negotiator: 0.6.4 negotiator: 0.6.4
promise-retry: 2.0.1 promise-retry: 2.0.1
@@ -5810,9 +5791,9 @@ snapshots:
dependencies: dependencies:
brace-expansion: 1.1.12 brace-expansion: 1.1.12
minimatch@5.1.9: minimatch@5.1.6:
dependencies: dependencies:
brace-expansion: 2.1.0 brace-expansion: 2.0.2
minimatch@9.0.5: minimatch@9.0.5:
dependencies: dependencies:
@@ -5832,7 +5813,7 @@ snapshots:
optionalDependencies: optionalDependencies:
encoding: 0.1.13 encoding: 0.1.13
minipass-flush@1.0.7: minipass-flush@1.0.5:
dependencies: dependencies:
minipass: 3.3.6 minipass: 3.3.6
@@ -5885,7 +5866,7 @@ snapshots:
nice-try@1.0.5: {} nice-try@1.0.5: {}
node-abi@3.89.0: node-abi@3.77.0:
dependencies: dependencies:
semver: 7.7.2 semver: 7.7.2
@@ -6394,7 +6375,7 @@ snapshots:
socks@2.8.7: socks@2.8.7:
dependencies: dependencies:
ip-address: 10.1.0 ip-address: 10.0.1
smart-buffer: 4.2.0 smart-buffer: 4.2.0
source-map-js@1.2.1: {} source-map-js@1.2.1: {}
@@ -6657,8 +6638,6 @@ snapshots:
undici-types@7.12.0: {} undici-types@7.12.0: {}
undici-types@7.16.0: {}
unique-filename@2.0.1: unique-filename@2.0.1:
dependencies: dependencies:
unique-slug: 3.0.0 unique-slug: 3.0.0
@@ -6700,13 +6679,13 @@ snapshots:
spdx-correct: 3.2.0 spdx-correct: 3.2.0
spdx-expression-parse: 3.0.1 spdx-expression-parse: 3.0.1
vite@5.4.20(@types/node@24.10.13): vite@5.4.20(@types/node@24.5.2):
dependencies: dependencies:
esbuild: 0.21.5 esbuild: 0.21.5
postcss: 8.5.6 postcss: 8.5.6
rollup: 4.52.2 rollup: 4.52.2
optionalDependencies: optionalDependencies:
'@types/node': 24.10.13 '@types/node': 24.5.2
fsevents: 2.3.3 fsevents: 2.3.3
wcwidth@1.0.1: wcwidth@1.0.1:
+2 -57
View File
@@ -5,10 +5,8 @@ import {
Menu, Menu,
MenuItem, MenuItem,
app, app,
desktopCapturer,
ipcMain, ipcMain,
nativeImage, nativeImage,
session,
} from "electron"; } from "electron";
import windowIconAsset from "../../assets/desktop/icon.png?asset"; import windowIconAsset from "../../assets/desktop/icon.png?asset";
@@ -23,7 +21,7 @@ export let mainWindow: BrowserWindow;
export const BUILD_URL = new URL( export const BUILD_URL = new URL(
app.commandLine.hasSwitch("force-server") app.commandLine.hasSwitch("force-server")
? app.commandLine.getSwitchValue("force-server") ? app.commandLine.getSwitchValue("force-server")
: /*MAIN_WINDOW_VITE_DEV_SERVER_URL ??*/ "https://stoat.chat/app", : /*MAIN_WINDOW_VITE_DEV_SERVER_URL ??*/ "https://beta.revolt.chat",
); );
// internal window state // internal window state
@@ -81,7 +79,7 @@ export function createMainWindow() {
} }
// maximise the window if it was maximised before // maximise the window if it was maximised before
if (config.windowState.isMaximised) { if (config.windowState.isMaximised && !startHidden) {
mainWindow.maximize(); mainWindow.maximize();
} }
@@ -189,59 +187,6 @@ export function createMainWindow() {
} }
}); });
// Create display media request handler
session.defaultSession.setDisplayMediaRequestHandler(
(request, callback) => {
desktopCapturer
.getSources({ types: ["screen", "window"], fetchWindowIcons: true })
.then((sources) => {
// Shortcut for linux wayland.
if (sources.length == 1) {
// TODO: Get audio to work with wayland
// See vencord for an implementation using a virtual microphone.
callback({
video: sources[0],
audio: request.audioRequested ? "loopbackWithMute" : undefined,
});
return;
}
ipcMain.once(
"screenPickerCallback",
(_, idx: number, audio: boolean) => {
if (idx < 0 || idx > sources.length) {
callback({});
} else {
callback({
video: sources[idx],
audio: audio ? "loopbackWithMute" : undefined,
});
}
},
);
mainWindow.webContents.send(
"screenPicker",
sources.map((source, idx) => {
const image = source.appIcon;
if (image) {
if (image.getAspectRatio() > 1) {
image.resize({ width: 256 });
} else {
image.resize({ height: 256 });
}
}
return {
idx: idx,
name: source.name,
isFullScreen: source.id.startsWith("screen"),
image: image?.toDataURL(),
};
}),
);
});
},
{ useSystemPicker: true },
);
// push world events to the window // push world events to the window
ipcMain.on("minimise", () => mainWindow.minimize()); ipcMain.on("minimise", () => mainWindow.minimize());
ipcMain.on("maximise", () => ipcMain.on("maximise", () =>
-17
View File
@@ -15,21 +15,4 @@ contextBridge.exposeInMainWorld("native", {
close: () => ipcRenderer.send("close"), close: () => ipcRenderer.send("close"),
setBadgeCount: (count: number) => ipcRenderer.send("setBadgeCount", count), setBadgeCount: (count: number) => ipcRenderer.send("setBadgeCount", count),
onceScreenPicker: (
onScreenPick: (
sources: {
idx: number;
name: string;
isFullScreen: boolean;
image?: string;
}[],
) => void,
) => {
const eventName = "screenPicker";
ipcRenderer.removeAllListeners(eventName);
ipcRenderer.once(eventName, (_, sources) => onScreenPick(sources));
},
screenPickerCallback: (idx: number, audio: boolean) =>
ipcRenderer.send("screenPickerCallback", idx, audio),
}); });