Open zd-dalibor opened 7 months ago
This seems to be a platform-specific issue, because macOS recognizes the fonts as fixed width, and they can be used in Xcode and other developer tools.
They can be used with Xcode, but as mentioned in issue #23 most of the fancy font features don't work.
@jbehrens94 have you dug around the typography settings? I found them helpful in Monterey, where they even showed the texture healing as an option by name. Ventura, less so, but I'll post some screen shots so people know where to look after they open the Fonts dialog:
These work in Terminal.app. I have not checked them in XCode.app.
@garthk They don't work in Xcode. You can open and change typography settings but @jbehrens94 is correct, they have no effect.
I have to agree - these fonts, as-is, are nearly useless on Windows. Only those very few applications that have a convenient configuration file AND are willing to use variable-pitch fonts (iow: VS Code and very little else) can use Monaspace; everything else doesn't recognize it as a valid monospace font.
The PANOSE "Proportion" field in all the fonts is currently unset (or set to "Any", same net effect) whereas it needs to be set to "Monospace" to be visible in most editors/terminal emulators.
I'm unsure how to change this in the Monaspace build, but in FontForge at least, the setting can be found at Element->Font Info->OS/2->Panose->Proportion. I'm just not willing to manually edit 100+ files...
Ah, someone beat me to it, on #17.
Nerd Font automatically fixes the Panose flags on patching. The patched font seems to be working on Windows, at least it shows.
Resources:
The results on Windows are kind of mixed. While it shows in bold (i.e. monospaced
) in Visual Studio it does not in Windows Terminal.
Maybe you can try things out and report.
Screenshots:
Visual Studio 2022
Windiows Terminal 1.18.2822
P.S.: The archive is tar.xz
for good compression and gz
because Github does not support xz
, sorry for the incenvenience
Hi @Finii
The patched font is visible in windows terminal.
In IntelliJ ligatures are missing, and it is only visible if it is installed for all users (required admin rights). I think this is because it is OTF type. It will be nice if we can get TTF type version for windows, this will work for current user install (This is wrong statement, I do not know why but for some reason some fonts installed only for current user under windows 10/11 are visible in IntelliJ and some fonts do not and require installation for all users - https://youtrack.jetbrains.com/issue/JBR-2567 The bug is marked as fixed).
The other font wights are missing (Extra Light, Light, Semi Light, Medium, Semi Bold...).
Also, other flavors are missing (Argon, Xenon, Radon, Krypton). This is only Neon.
@zd-dalibor
Well, for Nerd Fonts you just need to add --ext ttf
to get a ttf font out of the patcher. But the problem is the hints. Postscript fonts (.otf
) have far less advanced hinting, just by 'blue zones', while Truetype fonts (.ttf
) use instructions that can differ glyph by glyph. There is no way to automatically convert otf to ttf hints and it is impossible to convert ttf to otf hints at all.
So usually you need to stay in the realm that the original font manufacturer choose, because the look will be different (in small details).
As font designer I also would not want to support both, because usually the look will be different. But I would choose ttf over otf nowadays, because specifically of the hinting. Both (ttf and otf) are OpenType fonts and the other capabilities are comparable.
Some weights I did not include [1] in the Nerd Font set, because I deemed them 'not useful' for terminal use. But Medium is there:
If you think other weights are useful, let me know. I just want to limit the number of sub-fonts in Nerd Fonts.
Also, other flavors are missing (Argon, Xenon, Radon, Krypton). This is only Neon.
Correct. I just put one style here, as that should be sufficient to check if this threads problem (not usable in IDEs) would be fixed with the Nerd Fonts versions, because then we specifically know what needs to change in the original (this repo's) font to make them work. The Nerd Fonts patcher tells users what quirks it fixes in to-be-patched fonts to make them usable ;-)
For example, as mentioned already in a lot places, Panose:
$ fontforge font-patcher --debug 2 --dry src/unpatched-fonts/Monaspace/Krypton/MonaspaceKrypton-MediumItalic.otf --makegroups 4
Nerd Fonts Patcher v3.0.2-167 (4.7.1) (ff 20230101)
DEBUG: Naming mode 4
DEBUG: Monospace check: Panose is invalid ([0, 0, 0, 0, 0, 0, 0, 0, 0, 0]); glyph-width-mono True
INFO: Setting Panose 'Family Kind' to 'Latin Text and Display' (was 'Any')
INFO: Setting Panose 'Proportion' to 'Monospaced' (was 'Any')
INFO: Redistributing line gap of 400 (200 top and 200 bottom)
DEBUG: Extended glyphs wider bounding box than basic glyphs
DEBUG: Font has negative right side bearing in extended glyphs
DEBUG: Final font cell dimensions 1240 w x 2400 h
...
So the aim here was not to provide people with a Nerd Fonts version but to help Githubnext fix bugs.
Addendum:
You note this:
These ligatures (I guess you expected them there) are not active by default but are extended typographic features [2], like stylistic set (SS), that you need to activate in your IDE (I have no clue about IntelliJ). If that can not be done you can also 'burn them in' (make them default) for example with https://github.com/MuTsunTsai/fontfreeze or similar tools
[1] https://github.com/ryanoasis/nerd-fonts/pull/1405/commits/05c751441d9be98bab3ad9f9f4c49a25be496338 [2] https://github.com/githubnext/monaspace#coding-ligatures
Edit: Add missing word 'Panose' :-D Edit: Add addendum
Hi @Finii thanks for the response.
For me the normal/400 weight is too thick for my taste, it will be nice that patched fonts keep all weights from original font. But this is only my opinion. Nevertheless, nerd font patcher is available to everyone, so anyone can build their own version.
That means SemiLight combined with SemiBold? Or SemiLight combined with Medium?
@Finii In my current setup I am combining Cascadia Code light/300 and semi-light/300 (windows terminal does not have option to select font weight for bolded text).
And only to mention, Cascadia font is installed for current user only and it is accessible from all below apps.
Windows Terminal
Visual Studio Code
IntelliJ IDEA
Visual Studio
windows terminal does not have option to select font weight for bolded text
If you self patch I can show you how you create a RIBBI font group of whatever weights you want.
With renaming the weights...
Thin
-> Regular
ThinItalic
-> Italic
Light
-> Bold
LightItalic
-> BoldItalic
@Finii ,
I am using docker nerd font patcher image to quickly patch all fonts in the folder:
docker run --rm -v /path/to/fonts:/in:Z -v /path/for/output:/out:Z nerdfonts/patcher [OPTIONS]
Maybe, I can use --name
option to create separately Regular, Italic, Bold and Bold Italic from specific originals font I want. But, maybe I am wrong, because the font patcher always appends internal font weight to the name of patched font. But again, this will require to patch each font separately.
It will be nice if you can share some easy way for this. Some applications, especially on windows, does not understand these in the middle font weights.
share some easy way for this
There is a new feature in font-patcher
since this commit
Make sure you have the latest docker image.
The in-parens version of the patcher needs to be >= 4.7.0
my_dir
, that will be later used for -v ..."/in
my_dir
:
MonaspaceNeon-Thin.otf
-> MonaspaceNeon-Regular.otf
MonaspaceNeon-ThinItalic.otf
-> MonaspaceNeon-Italic.otf
MonaspaceNeon-Light.otf
-> MonaspaceNeon-Bold.otf
MonaspaceNeon-LightItalic.otf
-> MonaspaceNeon-BoldItalic.otf
font-patcher
to detect the font name/weight/style based on filename instead of internal data:
Add --name filename
font-patcher
usually 'heals' source fonts, so that now it will set all the needed flags for the patched fonts to be detected as RIBBI set.MonaspecialNeon-Regular.otf
etc, so that you can distinguish it from the 'original' NF[1] https://github.com/ryanoasis/nerd-fonts/wiki/ScriptOptions
Installed the TTF flavors from release version 1.000 in Windows 11, and there are a number of immediate issues trying to use them with Terminal:
Seems like Windows support just didn't get much attention, which is ironic.
fonts are rendered in italics for some reason
I guess this is #117. Maybe try the static versions.
Seems like that would sacrifice a lot of the novelty of these fonts though.
@HunterZ That Monaspace is a variable font is the novelty for you? :thinking: I thought VF is the new normal :grimacing:
For me the novelty is the texture healing - and as that works via calt
is also possible in static fonts.
Maybe misunderstanding?
Whoops, GH auto closed this when I merged #125
We'll produce a new build soon and check that this (and related issues) are solved.
Apparently the font still has this issue, it doesnt really work with gnome terminal (not detected) or any jetbrains ide (no ligatures or texture healing), when will a build be made with that fixed?
Hi, there is only two issues here for me:
All other features like ligatures, texture healing, variable width... are specific open type font standard features, which are relatively new, are only supported with small number of editors and terminals (I think under windows those features are fully supported in vscode and wizterm, but need to be explicitly enabled, e.g. for vscode "editor.fontLigatures": "'ss02' on"
, other application will ignore those features).
In general, those open type standard features only work for web-based rendering engines, native apps still do not support them (maybe because need to be implemented on OS level). And by me, this is disappointing because this gives advantage to electron-like instead of native applications.
All other features like ligatures, texture healing, variable width... are specific open type font standard features, which are relatively new
While "texture healing" is a novel concept it uses the very old contextual alternatives calt
iirc. A lot programming fonts have these since ... at least 2010 I guess. Like Fira Code
s arrays arrows for example. calt
is supported in almost all terminals if I'm not mistaken.
I believe we have found out why the font is not detected by Gnome Terminal
, but the actual fixing will probably take some time.
Meanwhile you could check if the Nerd Font Mono
(NFM
) variants in https://github.com/ryanoasis/nerd-fonts/releases/download/v3.1.1/Monaspace.tar.xz do work as you expect, because some issues are autocorrected there.
Maybe you can try MonaspiceNe NFM Regular
or some other NFM
and report back, that would help finding the underlying issue.
Why JetBrains does not show the "texture healing" is beyond me. This is technically no "advanced" feature like ligatures or variable fonts.
With this electron versus 'native', I have no clue, I work only in terminals with real native (i.e. textmode) applications :-D
but need to be explicitly enabled, e.g. for vscode "editor.fontLigatures": "'ss02' on"
If you like a stylistic set (for example SS02: Special rendering of <= and >=) and your IDE does not support stylistic sets, I believe you can just "turn it on as default" in the font file with for example https://github.com/MuTsunTsai/fontfreeze.
Thanks, the NFM version works on gnome terminal, but on jetbrains, it still doesnt work properly, I can't really be sure if texture healing is working, but ligatures definitely aren't
It shouldn't be a problem with jetbrains because it works with other fonts, like Fira Code
Thanks for reporting back!
Ligatures are indeed a problem as I pointed out in https://github.com/githubnext/monaspace/issues/132. The reason is that the ligatures here are really ligatures, while other font's ligatures are not technically ligatures but contextual alternatives. This can not be easily changed but needs a lot of manual editing. I do not know why Githubnext implemented the ligatures as ligatures, though.
But that the NFM works in principle is good, because a) Nerd Fonts' fonts work, which is my responsibility, and b) all necessary steps of change here at Monaspace are already layed out (I mentioned them in for example 132). I mentioned all I know of, which is all that Nerd Font does, which seems to be sufficient ;-)
This is from your upper image...
Texture healing is active, at least in the preview on your image's right side.
To make this more obvious I copied ini
from the word maximize
and put it just below pme
of development
.
Very visible the wider m
next to two small i
and a smaller m
next to non-small p
and e
.
Also look at the word maximize
itself in the first row, the m
next to the a
is smaller than the m
next to the i
within that one word.
So it does work (as expected ;-) Ligs are a different thing, maybe. But the technology behind texture healing is very old, but noone ever came up with this concept of texture healing (as far as I know).
Edit: Typo
I just discovered Monaspace and as many other I'm excited to give it a try but to discover that the ecosystem might not have caught up yet to use it properly. Seeing all issues open asking to help use it or people saying it doesn't work in "X", what do you think of improving the support section in the README to list the support in various terminals or other IDE so we know were it stands at a glance?
Whoops, GH auto closed this when I merged #125
We'll produce a new build soon and check that this (and related issues) are solved.
Hi @idan , any ETA on the new version? Cheers. :blush:
What's the status on the font being recognized as monospaced? Right now, I can't use this font with the Kitty terminal because it is an absolute requirement that the font be recognizable as monospaced.
Wait a minute, that's what #125 is about! :facepalm: Nevermind. Unfortunate that such a crucial feature isn't on release yet, but I can handle cloning + building.
Waiting for the new release!
Whoops, GH auto closed this when I merged #125
We'll produce a new build soon and check that this (and related issues) are solved.
3 months later, and this project is looking kind of abandoned. Oh well :(
It's still not fixed and it's really sad, I would've hoped that GitHub would be more professional and responsible than this.
Has this really been abandoned? :confused: I mean, the radio silence is not exactly reassuring but I'm still hoping that they are just fixing all of the issues reported. Can @idan or somebody else from the GH team shed some light on this?
Has this really been abandoned? 😕 I mean, the radio silence is not exactly reassuring but I'm still hoping that they are just fixing all of the issues reported. Can @idan or somebody else from the GH team shed some light on this?
There have been no updates to any registered branches in five months. This thing is toast
However, I installed the 42 individual fonts for the two faces that I liked in particular, and that almost worked out? There is some odd behavior with the semi-wide fonts showing up as a separate face:
But... not as odd as some of my code in Eclipse...
Parentheses gone wild:
And in these comments, the numbers were somehow displaced to the beginning? And that blue blurb at the bottom is supposed to be @Test:
Not toast! Work is happening, just not in the public eye. Stay tuned, I know it's frustrating!
Thanks for the reassurance. I look forward to whatever you have cooking.
I am really happy to see I was wrong. Huge thanks to all at Github and Lettermatic for the update. It's awesome to see that this typeface is still being worked on and improved.
However, I installed the 42 individual fonts for the two faces that I liked in particular, and that almost worked out? There is some odd behavior with the semi-wide fonts showing up as a separate face:
But... not as odd as some of my code in Eclipse...
Is your screenshot from Eclipse? And on what operating system?
In the new v1.100 release there are still name issues and settings which will certainly cause problems in Windows applications (e.g. LibreOffice, Word, etc.) and may also affect some of the code editors. So I am trying get a bit more info to be able to test potential solutions, and then post a bug here. Or it may just require making a LibreOffice/Windows-friendly version. Because it is not going to work like this.
Is your screenshot from Eclipse? And on what operating system?
Yup, these are from Eclipse 2024-03 on Windows 11 Home version 10.0.22631.
Is your screenshot from Eclipse? And on what operating system?
Yup, these are from Eclipse 2024-03 on Windows 11 Home version 10.0.22631.
OK. Thanks.
Panose flags were fixed in version 1.1, which will resolve a lot of the issues in this thread regarding programs not recognizing the fonts. The 1.2 update will also include static fonts with all ligatures enabled by default, which will make the fonts compatible with programs that do not support enabling stylistic sets, like IntelliJ IDEA.
Not sure how much this is related, but I didn't mange to make it work on PHP Storm. Tried installing both OTF and TTF versions. IDE just wouldn't pick up the fonts. While searching, I found multiple posts saying, that for IntelliJ to pick up fonts, they need to have at least 4 versions:
I noticed, Normal is not in the package, but Regular is. Could this be the reason? Or is it still something that was discussed here? I tried latest v1.101
Edit: Ah.. Installed for all users and fonts appeared. Still no ligatures, but that's another issue
Edit: Ah.. Installed for all users and fonts appeared. Still no ligatures, but that's another issue
Maybe https://github.com/githubnext/monaspace/issues/111#issuecomment-1813979425 helps?
I'm on IntelliJ and ligatures are enabled. Unless I'm missing something more.
Hello, I'm using Jetbrains IDE (PHPStorm) and can't see ANY of the LOTs of Monaspace fonts I installed. They aren't listed at ALL in the IDE. Neither monospace nor proportional. No monaspace font is listed in my IDE.
ANy news on this? Any new release with this fix is planned or anything? Thanks in advance.
Hi, Thanks for this grate work, but this is not usable at all.