Commit 838371f57556

Vincent Demeester <vincent@sbr.pm>
2026-05-18 14:47:22
feat(fonts): switch to Monaspace font family
Replaced JetBrains Mono with Monaspace Neon as primary monospace font across Kitty, Emacs, and Waybar. Added Monaspace Radon (handwriting variant) for italic faces to leverage Monaspace's texture mixing. Enabled OpenType features including texture healing, ligatures, and all stylistic sets.
1 parent 60194f7
Changed files (3)
dots
config
emacs
home
common
dots/config/emacs/init.el
@@ -120,7 +120,9 @@ Otherwise, call `backward-kill-word'."
     "Default font-height to use.")
   ;; 2024-10-05: Switching from Ubuntu Mono to Cascadia Mono
   ;; 2024-96-06: Switching from Cascadia Mono to JetBrains Mono
-  (defconst font-family-mono "JetBrains Mono"
+  (defconst font-family-mono
+    (font-spec :family "Monaspace Neon" :features '(calt liga ss01 ss02 ss03 ss04 ss05 ss06 ss07 ss08))
+    ;; "JetBrains Mono"
     "Default monospace font-family to use.")
   (defconst font-family-sans "Ubuntu Sans"
     "Default sans font-family to use.")
@@ -145,6 +147,17 @@ Otherwise, call `backward-kill-word'."
   (set-face-attribute 'variable-pitch nil
 		      :family font-family-sans
 		      :weight 'regular)
+  ;; Use Monaspace Radon (handwriting) for italic faces — matches Kitty config
+  (defconst font-family-mono-italic
+    (font-spec :family "Monaspace Radon" :features '(calt liga ss01 ss02 ss03 ss04 ss05 ss06 ss07 ss08))
+    "Italic monospace font-family (Monaspace Radon handwriting variant).")
+  (set-face-attribute 'italic nil
+		      :font font-family-mono-italic
+		      :slant 'italic)
+  (set-face-attribute 'bold-italic nil
+		      :font font-family-mono-italic
+		      :weight 'bold
+		      :slant 'italic)
 
   (when (fboundp 'set-fontset-font)
     (set-fontset-font t 'symbol "Apple Color Emoji")
home/common/desktop/niri/waybar.nix
@@ -130,7 +130,8 @@
     style = ''
       * {
         font-size: 16px;
-        font-family: "JetBrainsMono Nerd Font Mono";
+        /* font-family: "JetBrainsMono Nerd Font Mono"; */
+        font-family: "Monaspace Neon";
         border: none;
         border-radius: 0;
         min-height: 0px;
home/common/desktop/kitty.nix
@@ -5,7 +5,12 @@
     shellIntegration.enableZshIntegration = false; # handled in dots/config/zsh/tools/kitty.zsh
     settings = {
       close_on_child_death = "yes";
-      font_family = "JetBrainsMono Nerd Font Mono";
+      # font_family = "JetBrainsMono Nerd Font Mono";
+      font_family = "Monaspace Neon";
+      disable_ligatures = "cursor";
+      italic_font = "Monaspace Radon";
+      bold_italic_font = "Monaspace Radon";
+      # font_features set in extraConfig for multi-line support
       tab_bar_edge = "top";
       allow_remote_control = "socket-only";
       listen_on = "unix:/tmp/my-kitty";
@@ -22,8 +27,9 @@
       inactive_tab_background = "#0c0c0c";
     };
     font = {
-      name = "JetBrainsMono Nerd Font Mono";
-      size = 12;
+      # name = "JetBrainsMono Nerd Font Mono";
+      name = "Monaspace Neon";
+      size = 13;
     };
     keybindings = {
       "shift+left" = "neighboring_window left";
@@ -41,6 +47,12 @@
     # Using Alt key to avoid conflicts with Niri window manager
     # Compatible with Emacs workflow (using Ctrl-B prefix instead of Ctrl-Space)
     extraConfig = ''
+      # Monaspace Neon OpenType features (texture healing + ligatures + all stylistic sets)
+      font_features MonaspaceNeon-Regular +calt +liga +ss01 +ss02 +ss03 +ss04 +ss05 +ss06 +ss07 +ss08
+      font_features MonaspaceNeon-SemiBold +calt +liga +ss01 +ss02 +ss03 +ss04 +ss05 +ss06 +ss07 +ss08
+      font_features MonaspaceRadon-Italic +calt +liga +ss01 +ss02 +ss03 +ss04 +ss05 +ss06 +ss07 +ss08
+      font_features MonaspaceRadon-SemiBoldItalic +calt +liga +ss01 +ss02 +ss03 +ss04 +ss05 +ss06 +ss07 +ss08
+
       # ============================================================================
       # BÉPO-OPTIMIZED KITTY TMUX BINDINGS (Alt-based, Emacs-compatible)
       # ============================================================================