Merge branch 'main' into tray-icon

This commit is contained in:
Oleh Polisan 2024-12-25 13:37:47 +02:00 committed by GitHub
commit 10c3f112a5
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
10 changed files with 968 additions and 592 deletions

View file

@ -33,6 +33,6 @@ jobs:
git add meta/dev.vencord.Vesktop.metainfo.xml git add meta/dev.vencord.Vesktop.metainfo.xml
git commit -m "Insert release changes for ${{ github.event.release.tag_name }}" git commit -m "Insert release changes for ${{ github.event.release.tag_name }}"
git push origin ci/meta-update git push origin ci/meta-update
gh pr create -B main -H ci/meta-update -t "Metainfo for ${{ github.event.release.tag_name }}" -b "This PR updates the metainfo for release ${{ github.event.release.tag_name }}. @lewisakura @Vendicated" gh pr create -B main -H ci/meta-update -t "Metainfo for ${{ github.event.release.tag_name }}" -b "This PR updates the metainfo for release ${{ github.event.release.tag_name }}."
env: env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

View file

@ -28,6 +28,19 @@
</screenshot> </screenshot>
</screenshots> </screenshots>
<releases> <releases>
<release version="1.5.4" date="2024-12-05" type="stable">
<url>https://github.com/Vencord/Vesktop/releases/tag/v1.5.4</url>
<description>
<p>What's Changed</p>
<ul>
<li>Upgraded electron to version 33 which brings many improvements and bug fixes</li>
<li>AudioShare: add even more granular selection, Allow device sharing by @Curve</li>
<li>Enable speech-dispatcher support for TTS on linux by @adryd325</li>
<li>fixed screenshare picker window subtitle alignment by @ryawaa</li>
<li>fixed splash corners by @Covkie</li>
</ul>
</description>
</release>
<release version="1.5.3" date="2024-07-04" type="stable"> <release version="1.5.3" date="2024-07-04" type="stable">
<url>https://github.com/Vencord/Vesktop/releases/tag/v1.5.3</url> <url>https://github.com/Vencord/Vesktop/releases/tag/v1.5.3</url>
<description> <description>

View file

@ -1,6 +1,6 @@
{ {
"name": "vesktop", "name": "vesktop",
"version": "1.5.3", "version": "1.5.4",
"private": true, "private": true,
"description": "Vesktop is a custom Discord desktop app", "description": "Vesktop is a custom Discord desktop app",
"keywords": [], "keywords": [],
@ -25,7 +25,7 @@
}, },
"dependencies": { "dependencies": {
"arrpc": "github:OpenAsar/arrpc#5aadc307cb9bf4479f0a12364a253b07a77ace22", "arrpc": "github:OpenAsar/arrpc#5aadc307cb9bf4479f0a12364a253b07a77ace22",
"electron-updater": "^6.3.4" "electron-updater": "^6.3.9"
}, },
"optionalDependencies": { "optionalDependencies": {
"@vencord/venmic": "^6.1.0", "@vencord/venmic": "^6.1.0",
@ -33,27 +33,27 @@
}, },
"devDependencies": { "devDependencies": {
"@fal-works/esbuild-plugin-global-externals": "^2.1.2", "@fal-works/esbuild-plugin-global-externals": "^2.1.2",
"@stylistic/eslint-plugin": "^2.8.0", "@stylistic/eslint-plugin": "^2.11.0",
"@types/node": "^22.5.5", "@types/node": "^22.10.1",
"@types/react": "^18.3.8", "@types/react": "^18.3.12",
"@vencord/types": "^1.8.4", "@vencord/types": "^1.8.4",
"dotenv": "^16.4.5", "dotenv": "^16.4.6",
"electron": "^32.1.2", "electron": "^33.2.1",
"electron-builder": "^25.0.5", "electron-builder": "^25.1.8",
"esbuild": "^0.23.1", "esbuild": "^0.24.0",
"eslint": "^9.11.0", "eslint": "^9.16.0",
"eslint-import-resolver-alias": "^1.1.2", "eslint-import-resolver-alias": "^1.1.2",
"eslint-plugin-path-alias": "^2.1.0", "eslint-plugin-path-alias": "^2.1.0",
"eslint-plugin-prettier": "^5.2.1", "eslint-plugin-prettier": "^5.2.1",
"eslint-plugin-simple-header": "^1.2.1", "eslint-plugin-simple-header": "^1.2.1",
"eslint-plugin-simple-import-sort": "^12.1.1", "eslint-plugin-simple-import-sort": "^12.1.1",
"eslint-plugin-unused-imports": "^4.1.4", "eslint-plugin-unused-imports": "^4.1.4",
"prettier": "^3.3.3", "prettier": "^3.4.1",
"source-map-support": "^0.5.21", "source-map-support": "^0.5.21",
"tsx": "^4.19.1", "tsx": "^4.19.2",
"type-fest": "^4.26.1", "type-fest": "^4.30.0",
"typescript": "^5.6.2", "typescript": "^5.7.2",
"typescript-eslint": "^8.6.0", "typescript-eslint": "^8.17.0",
"xml-formatter": "^3.6.3" "xml-formatter": "^3.6.3"
}, },
"packageManager": "pnpm@9.1.0", "packageManager": "pnpm@9.1.0",

1483
pnpm-lock.yaml generated

File diff suppressed because it is too large Load diff

View file

@ -506,18 +506,6 @@ export async function createWindows() {
}); });
}); });
// evil hack to fix electron 32 regression that makes devtools always light theme
// https://github.com/electron/electron/issues/43367
// TODO: remove once fixed
mainWin.webContents.on("devtools-opened", () => {
if (!nativeTheme.shouldUseDarkColors) return;
nativeTheme.themeSource = "light";
setTimeout(() => {
nativeTheme.themeSource = "dark";
}, 100);
});
initArRPC(); initArRPC();
} }

View file

@ -49,8 +49,8 @@ export function registerScreenShareHandler() {
if (isWayland) { if (isWayland) {
const video = data[0]; const video = data[0];
if (video) { if (video) {
const stream = await request.frame const stream = await request
.executeJavaScript( .frame!.executeJavaScript(
`Vesktop.Components.ScreenShare.openScreenSharePicker(${JSON.stringify([video])},true)` `Vesktop.Components.ScreenShare.openScreenSharePicker(${JSON.stringify([video])},true)`
) )
.catch(() => null); .catch(() => null);
@ -61,8 +61,8 @@ export function registerScreenShareHandler() {
return; return;
} }
const choice = await request.frame const choice = await request
.executeJavaScript(`Vesktop.Components.ScreenShare.openScreenSharePicker(${JSON.stringify(data)})`) .frame!.executeJavaScript(`Vesktop.Components.ScreenShare.openScreenSharePicker(${JSON.stringify(data)})`)
.then(e => e as StreamPick) .then(e => e as StreamPick)
.catch(e => { .catch(e => {
console.error("Error during screenshare picker", e); console.error("Error during screenshare picker", e);

View file

@ -8,7 +8,9 @@ import { ipcMain, IpcMainEvent, IpcMainInvokeEvent, WebFrameMain } from "electro
import { DISCORD_HOSTNAMES } from "main/constants"; import { DISCORD_HOSTNAMES } from "main/constants";
import { IpcEvents } from "shared/IpcEvents"; import { IpcEvents } from "shared/IpcEvents";
export function validateSender(frame: WebFrameMain) { export function validateSender(frame: WebFrameMain | null) {
if (!frame) throw new Error("ipc: No sender frame");
const { hostname, protocol } = new URL(frame.url); const { hostname, protocol } = new URL(frame.url);
if (protocol === "file:") return; if (protocol === "file:") return;

View file

@ -110,7 +110,7 @@ const SettingsOptions: Record<string, Array<BooleanSetting | SettingsComponent>>
} }
], ],
Notifications: [NotificationBadgeToggle], Notifications: [NotificationBadgeToggle],
Miscelleanous: [ Miscellaneous: [
{ {
key: "arRPC", key: "arRPC",
title: "Rich Presence", title: "Rich Presence",

View file

@ -26,11 +26,11 @@ export class SettingsStore<T extends object> {
/** /**
* The store object. Making changes to this object will trigger the applicable change listeners * The store object. Making changes to this object will trigger the applicable change listeners
*/ */
public declare store: T; declare public store: T;
/** /**
* The plain data. Changes to this object will not trigger any change listeners * The plain data. Changes to this object will not trigger any change listeners
*/ */
public declare plain: T; declare public plain: T;
public constructor(plain: T) { public constructor(plain: T) {
this.plain = plain; this.plain = plain;

View file

@ -3,6 +3,7 @@
<style> <style>
body { body {
background: none;
user-select: none; user-select: none;
-webkit-app-region: drag; -webkit-app-region: drag;
} }
@ -16,6 +17,7 @@
align-items: center; align-items: center;
border-radius: 8px; border-radius: 8px;
border: 1px solid var(--fg-semi-trans); border: 1px solid var(--fg-semi-trans);
background: var(--bg);
} }
p { p {