diff --git a/configs/client.nix b/configs/client.nix index c572fce..8b501b8 100644 --- a/configs/client.nix +++ b/configs/client.nix @@ -1,9 +1,5 @@ {pkgs, ...}: { - imports = [ - ./common.nix - - ../programs/rust.nix - ]; + imports = [./common.nix]; environment.systemPackages = with pkgs; [ nil diff --git a/configs/common.nix b/configs/common.nix index 97fa3ef..09fd08d 100644 --- a/configs/common.nix +++ b/configs/common.nix @@ -7,7 +7,6 @@ nixpkgs, agenix, home-manager, - vencord, ... }: let username = "leo"; @@ -29,6 +28,7 @@ in { ../programs/fish.nix ../programs/git.nix + ../programs/rust.nix ../programs/starship ]; @@ -132,7 +132,7 @@ in { nixpkgs = { config.allowUnfree = true; - overlays = [(import ../exprs/overlay.nix vencord)]; + overlays = [(import ../exprs/overlay.nix)]; }; programs = { diff --git a/configs/desktop.nix b/configs/desktop.nix index fdce363..251c242 100644 --- a/configs/desktop.nix +++ b/configs/desktop.nix @@ -94,7 +94,7 @@ strawberry teams-for-linux thunderbird - (vesktop.override {withSystemVencord = true;}) + (vesktop.override {withSystemVencord = false;}) vscode # libreoffice stuff diff --git a/exprs/overlay.nix b/exprs/overlay.nix index 64acc39..1af7aa5 100644 --- a/exprs/overlay.nix +++ b/exprs/overlay.nix @@ -1,4 +1,4 @@ -vencord-input: final: prev: { +final: prev: { svn2git = prev.svn2git.overrideAttrs (_: rec { version = "2.4.2"; @@ -11,15 +11,4 @@ vencord-input: final: prev: { }); idea-ultimate-fixed = prev.callPackage ./idea-fixed.nix {}; - - vencord = prev.vencord.overrideAttrs (old: { - src = - vencord-input - // { - owner = "Vendicated"; - repo = "Vencord"; - }; - - patches = old.patches or [] ++ [./ventex.patch]; - }); } diff --git a/exprs/ventex.patch b/exprs/ventex.patch deleted file mode 100644 index 61e1c8f..0000000 --- a/exprs/ventex.patch +++ /dev/null @@ -1,128 +0,0 @@ -diff --git a/src/plugins/ventex/README.md b/src/plugins/ventex/README.md -new file mode 100644 -index 00000000..3a0dc43d ---- /dev/null -+++ b/src/plugins/ventex/README.md -@@ -0,0 +1,4 @@ -+# vencord katex thing -+[forum guidelines told me to link this](https://docs.vencord.dev/installing/custom-plugins/) -+ -+renders inline codeblocks starting and ending in `$` and codeblocks with the language `latex` in TeX using KaTeX -\ No newline at end of file -diff --git a/src/plugins/ventex/index.tsx b/src/plugins/ventex/index.tsx -new file mode 100644 -index 00000000..11fc0d22 ---- /dev/null -+++ b/src/plugins/ventex/index.tsx -@@ -0,0 +1,97 @@ -+import "./katex.css"; -+ -+import { Devs } from "@utils/constants"; -+import definePlugin, { ReporterTestable } from "@utils/types"; -+import { makeLazy } from "@utils/lazy"; -+import { React, useEffect, useMemo, useState } from "@webpack/common"; -+ -+// @ts-expect-error -+export const getKatex = /* #__PURE__*/ makeLazy(async () => (await import("https://unpkg.com/katex@0.16.9/dist/katex.mjs")).default); -+ -+export function useKatex() { -+ const [katex, setKatex] = useState(); -+ useEffect(() => { -+ if (katex === undefined) -+ getKatex().then(setKatex); -+ }); -+ return katex; -+} -+ -+// @ts-expect-error -+export const getDomPurify = /* #__PURE__*/ makeLazy(async () => (await import("https://unpkg.com/dompurify@3.1.7/dist/purify.es.mjs")).default); -+ -+export function useDomPurify() { -+ const [domPurify, setDomPurify] = useState(); -+ useEffect(() => { -+ if (domPurify === undefined) -+ getDomPurify().then(setDomPurify); -+ }); -+ return domPurify; -+} -+ -+export interface HighlighterProps { -+ lang?: string; -+ content: string; -+ isPreview: boolean; -+ tempSettings?: Record; -+} -+ -+export default definePlugin({ -+ name: "KaTeX", -+ description: "TeX typesetting in discord", -+ authors: [Devs.skyevg], -+ reporterTestable: ReporterTestable.Patches, -+ -+ patches: [ -+ { -+ find: "codeBlock:{react(", -+ replacement: { -+ match: /codeBlock:\{react\((\i),(\i),(\i)\)\{/, -+ replace: "$&if($1.lang == 'latex') return $self.createBlock($1,$2,$3);" -+ } -+ }, -+ { -+ find: "inlineCode:{react:(", -+ replacement: { -+ match: /inlineCode:\{react:\((\i),(\i),(\i)\)=>/, -+ replace: "$&($1.content.startsWith('$$') && $1.content.endsWith('$$'))?$self.createInline($1,$2,$3):" -+ } -+ } -+ ], -+ start: async () => { -+ useKatex(); -+ useDomPurify(); -+ }, -+ stop: () => { -+ }, -+ -+ createBlock: (props: HighlighterProps) => ( -+ -+ ), -+ createInline: (props: HighlighterProps) => ( -+ -+ ), -+}); -+ -+function LazyLatex(props) { -+ const { formula } = props; -+ const katex = useKatex(); -+ const domPurify = useDomPurify(); -+ return katex && domPurify -+ ? -+ : {formula}; -+} -+ -+function Latex({ katex, formula, displayMode, domPurify }) { -+ const result = useMemo(() => { -+ const html = katex.renderToString(formula, { -+ displayMode, -+ throwOnError: false -+ }); -+ return domPurify.sanitize(html); -+ }, [formula, displayMode]); -+ -+ return displayMode -+ ?
-+ : ; -+} -\ No newline at end of file -diff --git a/src/plugins/ventex/katex.css b/src/plugins/ventex/katex.css -new file mode 100644 -index 00000000..fbc06b44 ---- /dev/null -+++ b/src/plugins/ventex/katex.css -@@ -0,0 +1,6 @@ -+@import url("https://unpkg.com/katex@0.16.9/dist/katex.min.css"); -+ -+.katex-display { -+ width: min-content; -+ margin: 1em; -+} -\ No newline at end of file diff --git a/flake.lock b/flake.lock index 2e67ec7..ba6b255 100644 --- a/flake.lock +++ b/flake.lock @@ -333,7 +333,6 @@ "nixpkgs": "nixpkgs", "systems": "systems_2", "ukubot-rs": "ukubot-rs", - "vencord": "vencord", "vscode-extensions": "vscode-extensions" } }, @@ -411,22 +410,6 @@ "type": "github" } }, - "vencord": { - "flake": false, - "locked": { - "lastModified": 1729849691, - "narHash": "sha256-3bCw0ocP8Z5hLPC7dEwz0ckSUCKwHHLMY7BSMXpd/iA=", - "owner": "Vendicated", - "repo": "Vencord", - "rev": "88e8fa7e904e525c4c1110d057f0812e4008ff7c", - "type": "github" - }, - "original": { - "owner": "Vendicated", - "repo": "Vencord", - "type": "github" - } - }, "vscode-extensions": { "inputs": { "flake-compat": [], diff --git a/flake.nix b/flake.nix index 207e58e..2c8bb2c 100644 --- a/flake.nix +++ b/flake.nix @@ -127,11 +127,5 @@ inputs.nixpkgs.follows = "nixpkgs"; inputs.flake-parts.follows = "flake-parts"; }; - - # ==== vencord ==== - vencord = { - url = "github:Vendicated/Vencord"; - flake = false; - }; }; }