Skip to content

Commit

Permalink
Support discord uri scheme
Browse files Browse the repository at this point in the history
closes: Vencord#769
  • Loading branch information
Covkie committed Aug 13, 2024
1 parent af9ed58 commit 60d6c84
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 6 deletions.
9 changes: 8 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,12 @@
"package.json",
"LICENSE"
],
"protocols": {
"name": "Discord",
"schemes": [
"discord"
]
},
"beforePack": "scripts/build/sandboxFix.js",
"linux": {
"icon": "build/icon.icns",
Expand Down Expand Up @@ -112,7 +118,8 @@
"GenericName": "Internet Messenger",
"Type": "Application",
"Categories": "Network;InstantMessaging;Chat;",
"Keywords": "discord;vencord;electron;chat;"
"Keywords": "discord;vencord;electron;chat;",
"MimeType": "x-scheme-handler/discord"
}
},
"mac": {
Expand Down
2 changes: 2 additions & 0 deletions src/main/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,8 @@ if (IS_DEV) {
process.env.VENCORD_USER_DATA_DIR = DATA_DIR;

function init() {
app.setAsDefaultProtocolClient("discord");

const { disableSmoothScroll, hardwareAcceleration } = Settings.store;

const enabledFeatures = app.commandLine.getSwitchValue("enable-features").split(",");
Expand Down
18 changes: 13 additions & 5 deletions src/main/mainWindow.ts
Original file line number Diff line number Diff line change
Expand Up @@ -455,12 +455,20 @@ function createMainWindow() {

win.webContents.setUserAgent(BrowserUserAgent);

const subdomain =
Settings.store.discordBranch === "canary" || Settings.store.discordBranch === "ptb"
? `${Settings.store.discordBranch}.`
: "";
const branch = Settings.store.discordBranch;
const subdomain = branch === "canary" || branch === "ptb" ? `${branch}.` : "";
const uri = process.argv.find(arg => arg.startsWith("discord://"));

win.loadURL(`https://${subdomain}discord.com/app`);
const loadUrl = (url: string | undefined) => {
win.loadURL(`https://${subdomain}discord.com${url?.substring("discord://".length) || "/app"}`);
};

let uriFiredDarwin = false;
app.on("open-url", (_, url) => {
uriFiredDarwin = true;
loadUrl(url);
});
uriFiredDarwin || loadUrl(uri);

return win;
}
Expand Down

0 comments on commit 60d6c84

Please sign in to comment.