From 3966e3110b5dd9b298dfa1834e5eb2f49cd487f6 Mon Sep 17 00:00:00 2001 From: Ethan Reece Date: Sun, 20 Jul 2025 05:08:03 -0500 Subject: [PATCH] Allow custom fonts --- flake.nix | 7 ++++++- languages/typst/default.nix | 26 ++++++++++++++++++++++---- 2 files changed, 28 insertions(+), 5 deletions(-) diff --git a/flake.nix b/flake.nix index d010c26..5d84de1 100644 --- a/flake.nix +++ b/flake.nix @@ -41,6 +41,7 @@ dictionary = [ "Asahi" "Catppuccin" + "GmbH" "Haug" "Laurenz" "LLMs" @@ -58,12 +59,16 @@ typst = { enable = true; entrypoint = "scratch/typst.typ"; + fonts = [ pkgs.inter ]; }; }; # https://flake.parts/options/devshell.html # reuse annotate -c "Ethan Reece " -l LGPL-3.0-or-later -y 2025 devshells.default = { - packages = [ pkgs.forgejo-cli ]; + packages = [ + pkgs.forgejo-cli + pkgs.typst + ]; devshell = { motd = '' {202}󱄅 Nix Flake base{reset} diff --git a/languages/typst/default.nix b/languages/typst/default.nix index 2faf40c..fb2ba3f 100644 --- a/languages/typst/default.nix +++ b/languages/typst/default.nix @@ -22,10 +22,21 @@ type = lib.types.string; default = "main.typ"; }; + fonts = lib.mkOption { + description = '' + Fonts for Typst. + ''; + type = lib.types.listOf lib.types.package; + default = [ ]; + }; }; config = lib.mkIf config.languages.typst.enable ( let tinymistURL = "127.0.0.1:23635"; + fonts = pkgs.buildEnv { + name = "fonts"; + paths = config.languages.typst.fonts; + }; in { languages.en-us.dictionary = [ @@ -56,10 +67,17 @@ language-server.tinymist = { command = "${pkgs.tinymist}/bin/tinymist"; config = { - preview.background.enabled = true; - preview.background.args = [ - "--data-plane-host=${tinymistURL}" - "--invert-colors=never" + preview.background = { + enabled = true; + args = [ + "--data-plane-host=${tinymistURL}" + "--invert-colors=never" + ]; + }; + typstExtraArgs = [ + "--ignore-system-fonts" + "--font-path" + "${fonts}/share/fonts" ]; }; };