diff --git a/nix/configurations/vanadium/home/misc.nix b/nix/configurations/vanadium/home/misc.nix index 24c1aa1c..2e75755e 100644 --- a/nix/configurations/vanadium/home/misc.nix +++ b/nix/configurations/vanadium/home/misc.nix @@ -14,49 +14,9 @@ "Noto Sans CJK TC" ]; serif = [ "Noto Serif CJK TC" ]; - monospace = [ "IosevkaPTMono" ]; + monospace = [ "Iosevka-Normal-PT-Mono" ]; emoji = [ "Noto Color Emoji" ]; }; - - configFile = { - thick-iosevka = { - enable = true; - # https://www.freedesktop.org/software/fontconfig/fontconfig-user.html - # https://gist.github.com/yuttie/adb22a6c07ef8e75d82e48d5484b7ad8 - # https://github.com/N1k3YB/CS2FontChanger_ru/blob/5f1d8189220f42286d773c536ff83a49b2556da2/app.py#L227 - # - # Use the following script to test - # for size in (seq 9 15) - # echo - # echo - # for weight in {regular,medium,bold} - # echo "weight=$weight:size=$size" - # fc-match "mono:weight=$weight:size=$size" - # end - # end | less - text = /* xml */ '' - - - - - Iosevka - - weightbold bold - weightmedium medium - - size15 regular - size10 medium - bold - - - - - - - - ''; - }; - }; }; home.packages = [ pkgs.noto-fonts @@ -66,7 +26,7 @@ pkgs.noto-fonts-color-emoji pkgs.noto-fonts-emoji-blob-bin pkgs.ubuntu-classic - pkgs.IosevkaPTMono + pkgs.iosevka-normal-pt-mono ]; home.file = { diff --git a/nix/configurations/vanadium/home/xmobar/xmobar.hs b/nix/configurations/vanadium/home/xmobar/xmobar.hs index 0157b8bd..38f83c6b 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 = "IosevkaPTMono 8" + , font = "Iosevka-Normal-PT-Mono 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 905f640d..52d4279c 100644 --- a/nix/configurations/vanadium/home/xmonad/xmonad.hs +++ b/nix/configurations/vanadium/home/xmonad/xmonad.hs @@ -351,7 +351,9 @@ keybinds = -- Launcher ++ (let launchFirefox = "zen" - launchDmenu = "dmenu_run -i -fn \"IosevkaPTMono-18\" -nb \"#36363a\" -nf \"#e2e2e4\" -sb \"#f7f7f8\" -sf \"#36363a\" -l 10" + -- 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" lock = "xscreensaver-command -lock" in [ ((controlMask .|. altMask, xK_m), namedScratchpadAction myScratchpads "cmus" ) , ((controlMask .|. altMask, xK_t), namedScratchpadAction myScratchpads "btop" ) diff --git a/nix/homeModules/common/ghostty.nix b/nix/homeModules/common/ghostty.nix index 3dfd6338..766f1ff3 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.IosevkaTermPTMono + pkgs.nerd-fonts.iosevka-term-pt-mono ]; programs.ghostty.settings = { @@ -21,7 +21,7 @@ in resize-overlay = "never"; # Fonts - font-family = "IosevkaTermPTMono NFM"; + font-family = "Iosevka Term PT Mono 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 6e253037..a0841691 100644 --- a/nix/homeModules/common/wired/default.nix +++ b/nix/homeModules/common/wired/default.nix @@ -1,6 +1,6 @@ { pkgs, ... }: { - home.packages = [ pkgs.IosevkaPTMono ]; + home.packages = [ pkgs.iosevka-normal-pt-mono ]; services.wired = { config = "${./wired.ron}"; }; diff --git a/nix/homeModules/common/wired/wired.ron b/nix/homeModules/common/wired/wired.ron index 05b4f76e..065abc89 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: "IosevkaPTMono 24", + font: "Iosevka-Normal-PT-Mono 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: "IosevkaPTMono 18", + font: "Iosevka-Normal-PT-Mono 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/default.nix b/nix/overlays/iosevka/default.nix index 236e7059..bd107471 100644 --- a/nix/overlays/iosevka/default.nix +++ b/nix/overlays/iosevka/default.nix @@ -38,7 +38,7 @@ let ] ) [ - (import ./spacings.nix) + (import ./spacings.nix { inherit lib; }) ([ identityOverlay ] ++ import ./variants.nix) ]; @@ -46,8 +46,9 @@ let overlay: let mergedConfig = lib.fix (lib.extends overlay iosevkaConfig); + toKebabCase = x: builtins.replaceStrings [ " " ] [ "-" ] (lib.toLower x); in - lib.nameValuePair mergedConfig.family (mkIosevka mergedConfig) + lib.nameValuePair (toKebabCase mergedConfig.family) (mkIosevka mergedConfig) ); iosevka-nerds = builtins.mapAttrs (_: mkNerdFont) iosevkas; diff --git a/nix/overlays/iosevka/privateBuildPlan.nix b/nix/overlays/iosevka/privateBuildPlan.nix index d4677f26..3ae300fb 100644 --- a/nix/overlays/iosevka/privateBuildPlan.nix +++ b/nix/overlays/iosevka/privateBuildPlan.nix @@ -26,12 +26,10 @@ }; weights = { - Regular.shape = 400; + # Build 580, but indicate 400 in output + Regular.shape = 580; Regular.menu = 400; Regular.css = 400; - Medium.shape = 500; - Medium.menu = 500; - Medium.css = 500; Bold.shape = 700; Bold.menu = 700; Bold.css = 700; @@ -41,6 +39,9 @@ Normal.shape = 500; Normal.menu = 5; Normal.css = "normal"; + Extended.shape = 600; + Extended.menu = 7; + Extended.css = "expanded"; }; slopes = { diff --git a/nix/overlays/iosevka/spacings.nix b/nix/overlays/iosevka/spacings.nix index 3a70de9b..2f454a5a 100644 --- a/nix/overlays/iosevka/spacings.nix +++ b/nix/overlays/iosevka/spacings.nix @@ -1,24 +1,24 @@ +{ lib }: + let list = [ - { - adjustFamily = old: old; - spacing = "normal"; - } + { spacing = "normal"; } # Iosevka + Ghostty makes "…" display in a odd way. # We use "term" width to avoid this. # https://github.com/ghostty-org/ghostty/discussions/10335 - { - adjustFamily = old: old + "Term"; - spacing = "term"; - } + { spacing = "term"; } ]; in map ( - { adjustFamily, spacing }: - final: prev: { - family = adjustFamily prev.family; - inherit spacing; + { spacing }@cfg: + let + name = lib.toSentenceCase spacing; + in + final: prev: + cfg + // { + family = prev.family + "-${name}"; } ) list diff --git a/nix/overlays/iosevka/variants.nix b/nix/overlays/iosevka/variants.nix index fce85d4a..883d63da 100644 --- a/nix/overlays/iosevka/variants.nix +++ b/nix/overlays/iosevka/variants.nix @@ -82,10 +82,10 @@ in map ( { name, code }: let - shortName = builtins.replaceStrings [ " " ] [ "" ] name; + kebabName = builtins.replaceStrings [ " " ] [ "-" ] name; in final: prev: { - family = prev.family + "${shortName}"; + family = prev.family + "-${kebabName}"; variants = prev.variants // { inherits = code; };