From f2bd846e2238ef907f8ae644ec1d172ba0305ce2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Thu, 22 Jan 2026 21:18:32 +0100 Subject: [PATCH 1/3] overlays/iosevka: refactor iosevka overlay now uses iosevka config build plans in extesible forms! --- nix/configurations/vanadium.nix | 2 +- nix/overlays/iosevka-term.nix | 191 ---------------------- nix/overlays/iosevka/default.nix | 59 +++++++ nix/overlays/iosevka/privateBuildPlan.nix | 147 +++++++++++++++++ nix/overlays/iosevka/spacings.nix | 24 +++ nix/overlays/iosevka/variants.nix | 93 +++++++++++ nix/packages/default.nix | 2 +- 7 files changed, 325 insertions(+), 193 deletions(-) delete mode 100644 nix/overlays/iosevka-term.nix create mode 100644 nix/overlays/iosevka/default.nix create mode 100644 nix/overlays/iosevka/privateBuildPlan.nix create mode 100644 nix/overlays/iosevka/spacings.nix create mode 100644 nix/overlays/iosevka/variants.nix diff --git a/nix/configurations/vanadium.nix b/nix/configurations/vanadium.nix index 99d9c96d..415bda60 100644 --- a/nix/configurations/vanadium.nix +++ b/nix/configurations/vanadium.nix @@ -57,7 +57,7 @@ in ../overlays/ghostty-dev.nix ../overlays/npins.nix - ../overlays/iosevka-term.nix + ../overlays/iosevka ../packages/overlay.nix ./vanadium/overlay.nix diff --git a/nix/overlays/iosevka-term.nix b/nix/overlays/iosevka-term.nix deleted file mode 100644 index 1a1b26a8..00000000 --- a/nix/overlays/iosevka-term.nix +++ /dev/null @@ -1,191 +0,0 @@ -final: prev: -let - inherit (final) lib; - - iosevka-term = prev.iosevka.override { - # This changes pname which changes what the outputted buildPlan name is. - # Stupid API - set = ""; - - # Guide: https://github.com/be5invis/Iosevka/blob/main/doc/custom-build.md - privateBuildPlan = { - family = "Iosevka"; - serifs = "sans"; - - # Iosevka + Ghostty makes "…" display in a odd way. - # We use "term" width to avoid this. - # https://github.com/ghostty-org/ghostty/discussions/10335 - spacing = "term"; - - # Otherwise kitty behaves funny with ligature - # noLigation = true; - exportGlyphNames = true; - - variants.design = { - ampersand = "et-tailed"; - capital-q = "crossing"; - capital-z = "straight-serifless-with-crossbar"; - cent = "open"; - dollar = "open"; - lig-double-arrow-bar = "with-notch"; - lig-equal-chain = "with-notch"; - lig-hyphen-chain = "with-notch"; - lig-plus-chain = "with-notch"; - lig-single-arrow-bar = "with-notch"; - lower-lambda = "tailed-turn"; - # number-sign = "slanted"; - percent = "rings-continuous-slash-also-connected"; - seven = "straight-serifless-crossbar"; - }; - variants.italic = { - v = "cursive-serifless"; - w = "cursive-serifless"; - }; - - weights = { - # Build 580, but indicate 400 in output - Regular.shape = 580; - Regular.menu = 400; - Regular.css = 400; - Bold.shape = 700; - Bold.menu = 700; - Bold.css = 700; - }; - - widths = { - Normal.shape = 500; - Normal.menu = 5; - Normal.css = "normal"; - Extended.shape = 600; - Extended.menu = 7; - Extended.css = "expanded"; - }; - - slopes = { - Upright.angle = 0; - Upright.css = "normal"; - Upright.menu = "upright"; - Upright.shape = "upright"; - Italic.angle = 9.4; - Italic.shape = "italic"; - Italic.menu = "italic"; - Italic.css = "italic"; - }; - - # The ligatures are defined based on Haskell and Nix usages. - # - # Follow: for more details - ligations.enables = [ - "arrow-l" # Left-pointing arrows - # "arrow-l-hyphen" # Left-pointing arrows with hyphen-minus (-) being the rod - # "arrow-l-equal" # Left-pointing arrows with equal sign (=) being the rod - # "arrow-l-wave" # Left-pointing arrows with tilde (~) being the rod - - "arrow-r" # Right-pointing arrows - # "arrow-r-hyphen" # Right-pointing arrows with hyphen-minus (-) being the rod - # "arrow-r-equal" # Right-pointing arrows with equal sign (=) being the rod - # "arrow-r-wave" # Right-pointing arrows with tilde (~) being the rod - - "arrow-lr" # Dual-pointing arrows - # "arrow-lr-hyphen" # Dual-pointing arrows with hyphen-minus (-) being the rod - # "arrow-lr-equal" # Dual-pointing arrows with equal sign (=) being the rod - # "arrow-lr-wave" # Dual-pointing arrows with tilde (~) being the rod - - "counter-arrow-l" # Left-pointing counter-arrows - # "counter-arrow-l-hyphen" # Left-pointing counter-arrows with hyphen-minus (-) being the rod - # "counter-arrow-l-equal" # Left-pointing counter-arrows with equal sign (=) being the rod - # "counter-arrow-l-wave" # Left-pointing counter-arrows with tilde (~) being the rod - - "counter-arrow-r" # Right-pointing counter-arrows - # "counter-arrow-r-hyphen" # Right-pointing counter-arrows with hyphen-minus (-) being the rod - # "counter-arrow-r-equal" # Right-pointing counter-arrows with equal sign (=) being the rod - # "counter-arrow-r-wave" # Right-pointing counter-arrows with tilde (~) being the rod - - # "eqeqeq" # Enable special ligation for === with triple lines - "eqeq" # Enable ligation for == and === - "lteq" # Enable ligation for <= as less-than-or-equal sign - # "eqlt" # Enable ligation for =< as less-than-or-equal sign - "gteq" # Enable ligation for >= as greater-than-or-equal sign - # "lteq-separate" # Display <= as separate shape - # "eqlt-separate" # Display =< as separate shape - # "gteq-separate" # Display >= as separate shape - - # "exeqeqeq" # Enable special ligation for !=== with triple lines - # "exeqeq" # Enable special ligation for !== with triple lines - # "eqexeq" # Enable special ligation for =!= with triple lines - # "eqexeq-dl" # Enable special ligation for =!= with double lines - # "exeq" # Enable ligation for != and !== - # "tildeeq" # Enable ligation for ~= as inequality - # "eqslasheq" # Enable special triple-line ligation for =/= as inequality - "slasheq" # Enable ligation for /= and =/= as inequality - "trig" # Enable ligation for <|, |> , <||, and other bar-and-angle-bracket symbols - # "ltgt-ne" # Enable ligation for <> as inequality - "ltgt-diamond" # Enable ligation for <> as diamond - # "ltgt-diamond-tag" # Enable ligation for <> as diamond-shaped empty HTML/XML tag - # "ltgt-slash-tag" # Enable ligation for and - # "brst" # Center asterisk in (* and *) - "slash-asterisk" # Shift asterisk in /* and */ - "kern-dotty" # Move connecting dotty punctuations closer, like for ::, :: # and ... - # "kern-bars" # Move consecutive bars closer, like for ||, ||| and // - "center-ops" # Vertically align some of the operators (like *) to the center position it is before or after a "center" operator (like +) - - # These put -. to the same height - # "center-op-trigger-plus-minus-l" # Plus (+) and Minus (-) will trigger other operator characters at left to be centered - # "center-op-trigger-plus-minus-r" # Plus (+) and Minus (-) will trigger other operator characters at right to be centered - - # These put *= to the same height - # "center-op-trigger-equal-l" # Equal (=) will trigger other operator characters at left to be centered - # "center-op-trigger-equal-r" # Equal (=) will trigger other operator characters at right to be centered - - "center-op-trigger-bar-l" # Bars (|) will trigger other operator characters at left to be centered - "center-op-trigger-bar-r" # Bars (|) will trigger other operator characters at right to be centered - "center-op-trigger-angle-inside" # Less (<) and Greater (>) will trigger other operator characters at inside to be centered - "center-op-trigger-angle-outside" # Less (<) and Greater (>) will trigger other operator characters at outside to be centered - # "center-op-influence-dot" # Treat dot (.) as operator and perform chained centering - "center-op-influence-colon" # Treat colon (:) as operator and perform chained centering - "tilde-tilde" # Make 2 or more contiguous ASCII tildes (like ~~, ~~~ and ~~~~) connected as a wave line - # "tilde-tilde-tilde" # Make 3 or more contiguous ASCII tildes (like ~~~ and ~~~~) connected as a wave line - # "minus-minus" # Make 2 or more contiguous hyphen-minuses (like --, --- and ----) connected as a straight solid line - # "minus-minus-minus" # Make 3 or more contiguous hyphen-minuses (like --- and ----) connected as a straight solid line - # "plus-plus" # Make 2 or more contiguous plus signs (like ++, +++ and ++++) connected. - # "plus-plus-plus" # Make 3 or more contiguous plus signs (like +++ and ++++) connected. - # "underscore-underscore" # Make 2 or more contiguous underscores (like __, ___ and ____) connected - # "underscore-underscore-underscore" # Make 3 or more contiguous underscores (like ___ and ____) connected - # "hash-hash" # Make 2 or more contiguous hash signs (number signs) (like ##, ### and ####) connected - # "hash-hash-hash" # Make 3 or more contiguous hash signs (number signs) (like ## and ###) connected - # "logic" # Enable ligation for /\ and \/ - # "llgg" # Enable ligation for <<, >> and other angle-bracket chaining - # "llggeq" # Enable ligation for <<=, >>= as shift operator - # "html-comment" # Enable ligation for