From f525b0cca700fc8bcca90fd5b25bc4bf95d31b10 Mon Sep 17 00:00:00 2001 From: Nuckyz <61953774+Nuckyz@users.noreply.github.com> Date: Tue, 15 Sep 2026 16:59:16 -0300 Subject: [PATCH 1/4] BetterSettings: Fix disable fade not working --- src/webpack/common/components.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/webpack/common/components.ts b/src/webpack/common/components.ts index 7cda74590..449106f87 100644 --- a/src/webpack/common/components.ts +++ b/src/webpack/common/components.ts @@ -107,7 +107,7 @@ export const ScrollerAuto = LazyComponent(() => createScroller?.(scrollerClasses export const ListScrollerThin = LazyComponent(() => createListScroller(listScrollerClasses.thin, listScrollerClasses.fade, "", ResizeObserver)); export const ListScrollerAuto = LazyComponent(() => createListScroller(listScrollerClasses.auto, listScrollerClasses.fade, "", ResizeObserver)); -export const FocusLock = waitForComponent("FocusLock", filters.componentByCode(".containerRef,{keyboardModeEnabled:")); +export const FocusLock = waitForComponent("FocusLock", filters.componentByCode(".containerRef,{disableReturn:")); export let useToken: t.useToken; waitFor(m => { From 27c459312a7edece761eb9a64a467652b7784094 Mon Sep 17 00:00:00 2001 From: Nuckyz <61953774+Nuckyz@users.noreply.github.com> Date: Tue, 15 Sep 2026 21:57:07 -0300 Subject: [PATCH 2/4] GifPaste: Fix plugin not working --- src/plugins/gifPaste/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plugins/gifPaste/index.ts b/src/plugins/gifPaste/index.ts index 70b53f4e2..81cec5897 100644 --- a/src/plugins/gifPaste/index.ts +++ b/src/plugins/gifPaste/index.ts @@ -30,7 +30,7 @@ export default definePlugin({ patches: [{ find: "handleSelectGIF=", replacement: { - match: /handleSelectGIF=(\i)=>\{/, + match: /handleSelectGIF=\((\i),\i\)=>\{/, replace: "$&if (!this?.props?.className) return $self.handleSelect($1);" } }], From 59a54286542651fff5ea53f0ce6cadf2a6aa7521 Mon Sep 17 00:00:00 2001 From: Nuckyz <61953774+Nuckyz@users.noreply.github.com> Date: Tue, 15 Sep 2026 22:09:39 -0300 Subject: [PATCH 3/4] SuperReactionTweaks: Fix Super reacting by default --- src/plugins/superReactionTweaks/index.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/plugins/superReactionTweaks/index.ts b/src/plugins/superReactionTweaks/index.ts index 8bd86e0d6..41221ca3d 100644 --- a/src/plugins/superReactionTweaks/index.ts +++ b/src/plugins/superReactionTweaks/index.ts @@ -53,8 +53,8 @@ export default definePlugin({ { find: ".EMOJI_PICKER_CONSTANTS_EMOJI_CONTAINER_PADDING_HORIZONTAL)", replacement: { - match: /(openPopoutType:void 0(?=.+?isBurstReaction:(\i).+?;(\i===\i\.\i\.REACTION)&&\i\.push\().+?\[\2,\i\]=\i\.useState\()!1\)/, - replace: (_, rest, _isBurstReactionVariable, isReactionIntention) => `${rest}$self.shouldSuperReactByDefault&&${isReactionIntention})` + match: /(openPopoutType:void 0(?=.+?isBurstReaction:(\i).+?\.intention===(\i\.\i\.REACTION)).+?\[\2,\i\]=\i\.useState\()!1\)(?<=pickerIntention:(\i).+?)/, + replace: (_, rest, _isBurstReactionVariable, REACTION_INTENTION, pickerIntention) => `${rest}$self.shouldSuperReactByDefault&&${pickerIntention}===${REACTION_INTENTION})` } } ], From 420177ff04a4885ed39c7754a4ebb228b72b83a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=20=F0=9F=8C=B1?= Date: Fri, 18 Sep 2026 09:48:34 -0700 Subject: [PATCH 4/4] fix `pnpm inject` on macos (#4605) --- scripts/runInstaller.mjs | 45 +++++++--------------------------------- 1 file changed, 8 insertions(+), 37 deletions(-) diff --git a/scripts/runInstaller.mjs b/scripts/runInstaller.mjs index 3151ca5b3..32ddc80ba 100644 --- a/scripts/runInstaller.mjs +++ b/scripts/runInstaller.mjs @@ -19,14 +19,13 @@ import "./checkNodeVersion.js"; import { execFileSync, execSync } from "child_process"; -import { createWriteStream, existsSync, mkdirSync, readFileSync, writeFileSync } from "fs"; +import { createWriteStream, existsSync, mkdirSync, readFileSync, writeFileSync, cpSync, rmSync } from "fs"; import { dirname, join } from "path"; import { Readable } from "stream"; import { finished } from "stream/promises"; import { fileURLToPath } from "url"; const BASE_URL = "https://github.com/Vencord/Installer/releases/latest/download/"; -const INSTALLER_PATH_DARWIN = "VencordInstaller.app/Contents/MacOS/VencordInstaller"; const BASE_DIR = join(dirname(fileURLToPath(import.meta.url)), ".."); const FILE_DIR = join(BASE_DIR, "dist", "Installer"); @@ -37,7 +36,7 @@ function getFilename() { case "win32": return "VencordInstallerCli.exe"; case "darwin": - return "VencordInstaller.MacOS.zip"; + return "VencordInstallerCli-darwin"; case "linux": return "VencordInstallerCli-linux"; default: @@ -51,10 +50,7 @@ async function ensureBinary() { mkdirSync(FILE_DIR, { recursive: true }); - const downloadName = join(FILE_DIR, filename); - const outputFile = process.platform === "darwin" - ? join(FILE_DIR, "VencordInstaller") - : downloadName; + const outputFile = join(FILE_DIR, filename); const etag = existsSync(outputFile) && existsSync(ETAG_FILE) ? readFileSync(ETAG_FILE, "utf-8") @@ -76,36 +72,11 @@ async function ensureBinary() { writeFileSync(ETAG_FILE, res.headers.get("etag")); - if (process.platform === "darwin") { - console.log("Unzipping..."); - const zip = new Uint8Array(await res.arrayBuffer()); - - const ff = await import("fflate"); - const bytes = ff.unzipSync(zip, { - filter: f => f.name === INSTALLER_PATH_DARWIN - })[INSTALLER_PATH_DARWIN]; - - writeFileSync(outputFile, bytes, { mode: 0o755 }); - - console.log("Overriding security policy for installer binary (this is required to run it)"); - console.log("xattr might error, that's okay"); - - const logAndRun = cmd => { - console.log("Running", cmd); - try { - execSync(cmd); - } catch { } - }; - logAndRun(`sudo spctl --add '${outputFile}' --label "Vencord Installer"`); - logAndRun(`sudo xattr -d com.apple.quarantine '${outputFile}'`); - } else { - // WHY DOES NODE FETCH RETURN A WEB STREAM OH MY GOD - const body = Readable.fromWeb(res.body); - await finished(body.pipe(createWriteStream(outputFile, { - mode: 0o755, - autoClose: true - }))); - } + const body = Readable.fromWeb(res.body); + await finished(body.pipe(createWriteStream(outputFile, { + mode: 0o755, + autoClose: true + }))); console.log("Finished downloading!");