diff --git a/nix/configurations/vanadium.nix b/nix/configurations/vanadium.nix index 415bda60..99d9c96d 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 + ../overlays/iosevka-term.nix ../packages/overlay.nix ./vanadium/overlay.nix diff --git a/nix/configurations/vanadium/home/misc.nix b/nix/configurations/vanadium/home/misc.nix index 2e75755e..2e3c2719 100644 --- a/nix/configurations/vanadium/home/misc.nix +++ b/nix/configurations/vanadium/home/misc.nix @@ -14,7 +14,7 @@ "Noto Sans CJK TC" ]; serif = [ "Noto Serif CJK TC" ]; - monospace = [ "Iosevka-Normal-PT-Mono" ]; + monospace = [ "Iosevka" ]; emoji = [ "Noto Color Emoji" ]; }; }; @@ -26,7 +26,7 @@ pkgs.noto-fonts-color-emoji pkgs.noto-fonts-emoji-blob-bin pkgs.ubuntu-classic - pkgs.iosevka-normal-pt-mono + pkgs.iosevka ]; home.file = { diff --git a/nix/configurations/vanadium/home/xmobar/xmobar.hs b/nix/configurations/vanadium/home/xmobar/xmobar.hs index 38f83c6b..76b011e3 100644 --- a/nix/configurations/vanadium/home/xmobar/xmobar.hs +++ b/nix/configurations/vanadium/home/xmobar/xmobar.hs @@ -54,7 +54,7 @@ config = -- For framework 13 , dpi = 150 - , font = "Iosevka-Normal-PT-Mono 8" + , font = "Iosevka 8" , fgColor = "#FFFFFF" , bgColor = "#000000" , position = BottomH 24 diff --git a/nix/configurations/vanadium/home/xmonad/xmonad.hs b/nix/configurations/vanadium/home/xmonad/xmonad.hs index 52d4279c..a49abdff 100644 --- a/nix/configurations/vanadium/home/xmonad/xmonad.hs +++ b/nix/configurations/vanadium/home/xmonad/xmonad.hs @@ -351,9 +351,7 @@ keybinds = -- Launcher ++ (let launchFirefox = "zen" - -- dmenu doesn't find the right font, but it falls back to the right one - -- https://bbs.archlinux.org/viewtopic.php?id=139829 - launchDmenu = "dmenu_run -i -nb \"#36363a\" -nf \"#e2e2e4\" -sb \"#f7f7f8\" -sf \"#36363a\" -l 10" + launchDmenu = "dmenu_run -i -fn \"Iosevka-14\" -nb \"#36363a\" -nf \"#e2e2e4\" -sb \"#f7f7f8\" -sf \"#36363a\" -l 10" lock = "xscreensaver-command -lock" in [ ((controlMask .|. altMask, xK_m), namedScratchpadAction myScratchpads "cmus" ) , ((controlMask .|. altMask, xK_t), namedScratchpadAction myScratchpads "btop" ) diff --git a/nix/configurations/vanadium/nixos/remote-builders.nix b/nix/configurations/vanadium/nixos/remote-builders.nix index 48195f91..87a21592 100644 --- a/nix/configurations/vanadium/nixos/remote-builders.nix +++ b/nix/configurations/vanadium/nixos/remote-builders.nix @@ -16,7 +16,6 @@ in sshUser = "remotebuild"; speedFactor = 2; system = pkgs.stdenv.hostPlatform.system; - maxJobs = 1; inherit supportedFeatures; } { @@ -24,7 +23,6 @@ in sshUser = "remotebuild"; speedFactor = 12; system = pkgs.stdenv.hostPlatform.system; - maxJobs = 3; inherit supportedFeatures; } ]; diff --git a/nix/homeModules/common/ghostty.nix b/nix/homeModules/common/ghostty.nix index 766f1ff3..99caab23 100644 --- a/nix/homeModules/common/ghostty.nix +++ b/nix/homeModules/common/ghostty.nix @@ -10,7 +10,7 @@ in { config = lib.mkIf cfg.enable { home.packages = [ - pkgs.nerd-fonts.iosevka-term-pt-mono + pkgs.nerd-fonts.iosevka ]; programs.ghostty.settings = { @@ -21,7 +21,7 @@ in resize-overlay = "never"; # Fonts - font-family = "Iosevka Term PT Mono NFM"; + font-family = "Iosevka NFM"; adjust-cursor-thickness = 2; keybind = [ "ctrl+shift+==increase_font_size:1" diff --git a/nix/homeModules/common/wired/default.nix b/nix/homeModules/common/wired/default.nix index a0841691..2b3a7d2f 100644 --- a/nix/homeModules/common/wired/default.nix +++ b/nix/homeModules/common/wired/default.nix @@ -1,6 +1,6 @@ { pkgs, ... }: { - home.packages = [ pkgs.iosevka-normal-pt-mono ]; + home.packages = [ pkgs.iosevka ]; services.wired = { config = "${./wired.ron}"; }; diff --git a/nix/homeModules/common/wired/wired.ron b/nix/homeModules/common/wired/wired.ron index 065abc89..bbaff072 100644 --- a/nix/homeModules/common/wired/wired.ron +++ b/nix/homeModules/common/wired/wired.ron @@ -122,7 +122,7 @@ offset: Vec2(x: 0.0, y: 0.0), params: ScrollingTextBlock(( text: "%s", - font: "Iosevka-Normal-PT-Mono 24", + font: "Iosevka 24", color: Color(hex: "#fafafa"), padding: Padding(left: 7.0, right: 7.0, top: 1.0, bottom: 0.0), width: (min: 400, max: 400), @@ -140,7 +140,7 @@ offset: Vec2(x: 0.0, y: -3.0), params: ScrollingTextBlock(( text: "%b", - font: "Iosevka-Normal-PT-Mono 18", + font: "Iosevka 18", color: Color(hex: "#fafafa"), padding: Padding(left: 7.0, right: 7.0, top: 3.0, bottom: 7.0), width: (min: 400, max: 400), diff --git a/nix/overlays/iosevka-term.nix b/nix/overlays/iosevka-term.nix new file mode 100644 index 00000000..1a1b26a8 --- /dev/null +++ b/nix/overlays/iosevka-term.nix @@ -0,0 +1,191 @@ +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