Skip to content

Status of the project and support in editors, themes and ecosystem #402

Open

Description

@geroldmeisinger
Image

The original goal was:

  1. a super-family of monospaced fonts which all share the same width
  2. texture-healing which makes monospaced font more visually pleasing
  3. ligatures which make common letter pairs more visually pleasing

I really liked the main idea (1) of Monaspace to have different fonts used for semantically different code parts. Although it seems that most of that falls flat because of missing support in code editors, and we fall back on 2 and 3.

Image

What is the current status of the project?
Are there any known editors which support all of the original goals?
Are there any reference themes which make use the super-family feature?

Vscode, Jetbrains etc. don't work because they only support one font for everything.

Neovim
The only full implementation I found is: jackplus-xyz - monaspace.nvim for the Neovim text editor.

Image

Activity

  1. geroldmeisinger commented on Sep 14, 2026

    @geroldmeisinger
    Author

    Vscode
    according to issue #36512 this was implemented in PR #263403 - Adding font info in colorTokenCustomization and editor.tokenColorCustomizations now supports fontFamily (but not yet in editor.semanticTokenColorCustomizations !).

    Image

    I had to set editor.allowVariableFontsInAccessibilityMode" : true for this to work!

    	"editor.accessibilitySupport"                 	: "off",
    	"editor.allowVariableFontsInAccessibilityMode"	: true,
    	"editor.allowVariableFonts"                   	: true,
    
    	"editor.fontFamily"              	: "'Monaspace Neon', 'Monaspace Argon', 'Droid Sans Mono', monospace",
    	"editor.inlineSuggest.fontFamily"	: "'Monaspace Krypton', monospace",
    	"editor.codeLensFontFamily"      	: "'Monaspace Krypton', monospace",
    	"chat.editor.fontFamily"         	: "",
    	"debug.console.fontFamily"       	: "",
    	"scm.inputFontFamily"            	: "",
    	"terminal.integrated.fontFamily" 	: "",
    	"notebook.markup.fontFamily"     	: "",
    	"notebook.output.fontFamily"     	: "",
    	"markdown.preview.fontFamily"    	: "",
    	"editor.fontLigatures"           	: "'calt', 'liga', 'ss01', 'ss02', 'ss03', 'ss04', 'ss05', 'ss06', 'ss07', 'ss08', 'ss09'",
    
    	// Ctrl+Shift+P => "Developer: Inspect Editor Tokens and Scopes" to see which token is what
    	"editor.tokenColorCustomizations": {
    		"textMateRules": [
    			{
    				"name"    	: "Documentations",
    				"scope"   	: ["string.quoted.multi"],
    				"settings"	: { "fontFamily": "'Monaspace Krypton'" }
    			},
    			{
    				"name"    	: "Comments",
    				"scope"   	: ["comment"],
    				"settings"	: { "fontFamily": "'Monaspace Radon'" }
    			},
    		]
    	},
    	// "editor.semanticTokenColorCustomizations": {
    

    you can press Ctrl+Shift+P => "Developer: Inspect Editor Tokens and Scopes" to see which token is what

    Image

    there also exists a hacky workaround using the Custom CSS and JS Loader extension.

  2. geroldmeisinger commented on Sep 15, 2026

    @geroldmeisinger
    Author

    So, apparently I implemented fontFamily support to semanticTokenColorCustomizations by accident with the help of some LLM 😄

    Image

    To make this work checkout my vscode fork. To build vscode follow this guide: https://github.com/microsoft/vscode/wiki/How-to-Contribute#prerequisites (it's actually quite easy).

    Requires Nodejs
    and sudo apt install build-essential g++ libx11-dev libxkbfile-dev libsecret-1-dev libkrb5-dev python-is-python3

    git clone https://github.com/geroldmeisinger/vscode
    cd vscode
    npm install
    npm audit fix
    # npm audit fix --force
    npm run compile
    ./scripts/code.sh

    In order for editor.semanticTokenColorCustomizations to provide their semantics you need a corresponding language extension. Typescript is provided by default. For each other language you need to build the CLI first and install the extension via CLI.

    Update: I just tried python extension and as it turns out Pylance is proprietary software, only available in the official release, and refuses to work on purpose. Thus you have to find an open language server provider for which ever language you are using. For python use this language server instead: https://github.com/DetachHead/basedpyright/releases

    Update2: draft pull request to official vscode. please contribute bug reports and comments!

    Deprecated:
    https://github.com/microsoft/vscode/wiki/How-to-Contribute#extensions

    In product.json add:

        "extensionsGallery": {
            "serviceUrl": "https://marketplace.visualstudio.com/_apis/public/gallery",
            "cacheUrl": "https://vscode.blob.core.windows.net/gallery/index",
            "itemUrl": "https://marketplace.visualstudio.com/items"
        },

    or install via CLI (needs cli build):

    curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

    npm run build-cli
    ./scripts/code-cli.sh --install-extension <

    prompt was:

    checkout https://github.com/microsoft/vscode/pull/263403/changes
    
    this pullrequest for visual studio code added "fontFamily" property to setting "editor.tokenColorCustomizations": { "textMateRules": [] }" which allows overriding font per syntactic token type.
    
    please implement "fontFamily" support for "editor.semanticTokenColorCustomizations": { "rules": {"!
    

    TODO (not-me): provide a theme

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions