diff --git a/src/main/events/index.ts b/src/main/events/index.ts
index 0de70377..5eaceff5 100644
--- a/src/main/events/index.ts
+++ b/src/main/events/index.ts
@@ -18,7 +18,7 @@ import "./library/open-game";
import "./library/open-game-installer";
import "./library/remove-game";
import "./misc/get-or-cache-image";
-import "./misc/open-external-url";
+import "./misc/open-external";
import "./misc/show-open-dialog";
import "./torrenting/cancel-game-download";
import "./torrenting/pause-game-download";
diff --git a/src/main/events/misc/open-external-url.ts b/src/main/events/misc/open-external-url.ts
deleted file mode 100644
index 748e580a..00000000
--- a/src/main/events/misc/open-external-url.ts
+++ /dev/null
@@ -1,19 +0,0 @@
-import { BrowserWindow, app, shell } from "electron";
-import { registerEvent } from "../register-event";
-
-let mainWindow: BrowserWindow | null = null;
-
-app.on("ready", () => {
- mainWindow = new BrowserWindow({});
-
- mainWindow.loadURL("file://" + __dirname + "/index.html");
-});
-
-const openExternalUrl = async (
- _event: Electron.IpcMainInvokeEvent,
- url: string
-) => shell.openExternal(url);
-
-registerEvent(openExternalUrl, {
- name: "openExternalUrl",
-});
\ No newline at end of file
diff --git a/src/main/events/misc/open-external.ts b/src/main/events/misc/open-external.ts
new file mode 100644
index 00000000..3d693c23
--- /dev/null
+++ b/src/main/events/misc/open-external.ts
@@ -0,0 +1,9 @@
+import { shell } from "electron";
+import { registerEvent } from "../register-event";
+
+const openExternal = async (_event: Electron.IpcMainInvokeEvent, src: string) =>
+ shell.openExternal(src);
+
+registerEvent(openExternal, {
+ name: "openExternal",
+});
diff --git a/src/preload.ts b/src/preload.ts
index 9d1202d0..93acde24 100644
--- a/src/preload.ts
+++ b/src/preload.ts
@@ -86,7 +86,7 @@ contextBridge.exposeInMainWorld("electron", {
ping: () => ipcRenderer.invoke("ping"),
getVersion: () => ipcRenderer.invoke("getVersion"),
getDefaultDownloadsPath: () => ipcRenderer.invoke("getDefaultDownloadsPath"),
- openExternalUrl: (url: string) => ipcRenderer.invoke("openExternalUrl", url),
+ openExternal: (src: string) => ipcRenderer.invoke("openExternal", src),
showOpenDialog: (options: Electron.OpenDialogOptions) =>
ipcRenderer.invoke("showOpenDialog", options),
platform: process.platform,
diff --git a/src/renderer/components/sidebar/sidebar.tsx b/src/renderer/components/sidebar/sidebar.tsx
index 8c58b78f..4c8ed0e1 100644
--- a/src/renderer/components/sidebar/sidebar.tsx
+++ b/src/renderer/components/sidebar/sidebar.tsx
@@ -8,12 +8,28 @@ import { AsyncImage, TextField } from "@renderer/components";
import { useDownload, useLibrary } from "@renderer/hooks";
import { SPACING_UNIT } from "@renderer/theme.css";
-import { MarkGithubIcon } from "@primer/octicons-react";
-import DiscordLogo from "../../assets/discord-icon.svg";
-import XLogo from "../../assets/x-icon.svg";
import { routes } from "./routes";
+
+import { MarkGithubIcon } from "@primer/octicons-react";
+import DiscordLogo from "@renderer/assets/discord-icon.svg";
+import XLogo from "@renderer/assets/x-icon.svg";
import * as styles from "./sidebar.css";
+const socials = [
+ {
+ url: "https://discord.gg/hydralauncher",
+ icon: