ryanoasis / nerd-fonts

Iconic font aggregator, collection, & patcher. 3,600+ icons, 50+ patched fonts: Hack, Source Code Pro, more. Glyph collections: Font Awesome, Material Design Icons, Octicons, & more
https://NerdFonts.com
Other
54.57k stars 3.65k forks source link

Add font Monaspace #1403

Closed Finii closed 11 months ago

Finii commented 11 months ago

https://github.com/githubnext/monaspace

Version 1.0.0 just released.

It has an interesting idea to change the cell size visibly to make more room (if possible) for wide letters like m if they are next to small letters like i while keeping the cell grit intact.

image

julien-blanchon commented 11 months ago

Is someone doing this issue ? Is it hard to do ?

kraklin commented 11 months ago

There is a part of contributing.md that says how to do it: https://github.com/ryanoasis/nerd-fonts/blob/master/contributing.md#steps-for-adding-a-new-font-or-removing-an-existing-font

julien-blanchon commented 11 months ago

@kraklin I made a PR

redactedscribe commented 11 months ago

PR: #1405

Finii commented 11 months ago

Monaspace is a RFN.

The PR is filled in with false. Which is easy to correct, but

-=> We need a substitute name

As Monaspace is already a funny version of Monospace this is not so easy maybe. Any ideas anyone?

cyklee commented 11 months ago

Any ideas anyone?

Nonaspace, Nanospace, Momaspace, Moonspace, Monaspice, Polyspace...

kraklin commented 11 months ago

Moonspace, LisaSpace, ManoSpace...

julien-blanchon commented 11 months ago

I like MoonSpace

loraderon commented 11 months ago

Monabase or Monasbase

redactedscribe commented 11 months ago
pradyunsg commented 11 months ago

Given how "Mononoki" (another RFN font with a similar license) is handled, can we not do the same here and use "Monaspace Nerd Font"?

Finii commented 11 months ago

Given how "Mononoki" (another RFN font with a similar license) is handled, can we not do the same here and use "Monaspace Nerd Font"?

Well, Nerd Fonts got an exemption from Mononoki's RFN license clause [1]. To keep the name we would need that also from Githubnext. I know the pain but license conditions are license conditions unfortunately.

[1] https://github.com/ryanoasis/nerd-fonts/issues/575#issuecomment-1384689447

pradyunsg commented 11 months ago

Oh, 100% -- I don't know enough to know what the right thing to do is. :)

In that case, should we @-mention one of the people on Githubnext's end to see if this is something that they'd grant an exception for?

Finii commented 11 months ago

Dear @idan!

There is a overwhelming demand for your great new font Monaspace. We here at Nerd Fonts take terminal fonts and add some useful-for-developer glyphs (icons) to it for a better developer experience. Command line tools like exa show on directory listings the icon for the file type for example.

We do not touch the existing glyphs (except is some rare cases we drop one-cell-wide fi ligatures etc), but only add glyphs in the PUA codepoint blocks.

Because Monaspace has the RFN in place we will of course rename the fonts after extending, for example Monaspace Xenon might become MonispaceXe Nerd Font. Of course it would be nicer if we would get the permission to republish the changed font with a changed name but with the RFN'ed parts still intact, like MonaspaceXenon Nerd Font or in places where that is too long MonaspaceXenon NF. Never will a modified font be published under the original name, we always append Nerd Font or NF (and remove the blank).

Maybe you and your team can consider this RFN exception with the additional condition that we will always add our name to the font names to make the distinction clear for users.

Any answer (negative or positive) is appreciated.

Thank you!

Fini

This is how the naming would come out, also note some warnings.

Nerd Fonts Patcher v3.0.2-115 (4.6.1) (ff 20230101)
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: Final font cell dimensions 1240 w x 2400 h
DEBUG: =====> Family (ID 1)      ok       (25 <=31): MonaspaceXenon NFM Medium
DEBUG: =====> SubFamily (ID 2)   ok       ( 6 <=31): Italic
DEBUG: =====> Fullname (ID 4)    ok       (32 <=63): MonaspaceXenon NFM Medium Italic
DEBUG: =====> PSN (ID 6)         ok       (30 <=63): MonaspaceXenonNFM-MediumItalic
DEBUG: =====> PrefFamily (ID 16) ok       (29 <=31): MonaspaceXenon Nerd Font Mono
DEBUG: =====> PrefStyles (ID 17) ok       (13 <=31): Medium Italic
DEBUG: Changing flags from 0xB to 0x3
DEBUG: Changing lowestRecPPEM from 8 to 7

After merging

The ID16 changed to MonaspaceXenon NFM.

Edit: Add information on ID16 change

idan commented 11 months ago

I am super hyped for this and of course everyone immediately wanted nerdfont and powerline.

Recovering today from the launch, I will be back to figure this out next week!

idan commented 11 months ago

See also: https://github.com/githubnext/monaspace/issues/24

Finii commented 11 months ago

Maybe some of you want to try the patched font out, and report bugs. So we can fix the issues before release?

MonispaceNeonNerdFont.tar.xz.gz

Thank you!

P.S.: The archive is tar.xz for good compression and gz because Github does not support xz, sorry for the incenvenience

sijad commented 11 months ago

@Finii is Krypton version included?

Finii commented 11 months ago

is Krypton version included?

No, as the name states that is Neon only. I thought one variant would be enough for tests? Is Krypton better?

sijad commented 11 months ago

it looks great on Alacritty macOS

but fonts name appear like this on Font book app, I'm not sure if this is an issue:

image
Finii commented 11 months ago

You mean Monispace instead of Monaspace, or Ne instead of Neon? That is required until (if ever) we got the license issue (RFN) addressed.

Or NF instead of Nerd Font?

sijad commented 11 months ago

Or NF instead of Nerd Font?

this

Finii commented 11 months ago

Quite a lot of the fonts have NF (and NFM / NFP) in their name instead of the full length Nerd Font Propo etc. The reason is that these fonts already have longish names and/or styles, and there is a (ridiculously short) length limit on font names. Although most software can work with longer names there is software out there that would not work with fonts with 'too long names'.

I guess that is not an for Neon, but Krypton will have small issues:

ERROR: ====-< Family (ID 1)      too long (33 > 31): MonaspaceKrypton Nerd Font Medium
DEBUG: =====> SubFamily (ID 2)   ok       ( 6 <=31): Italic
DEBUG: =====> Fullname (ID 4)    ok       (40 <=63): MonaspaceKrypton Nerd Font Medium Italic
DEBUG: =====> PSN (ID 6)         ok       (31 <=63): MonaspaceKryptonNF-MediumItalic
DEBUG: =====> PrefFamily (ID 16) ok       (26 <=31): MonaspaceKrypton Nerd Font
DEBUG: =====> PrefStyles (ID 17) ok       (13 <=31): Medium Italic

Fonts with some abbreviation mode active, Nerd Font becomes NF when the value is >= 4:

$ git grep makegroups
3270/config.cfg:config_patch_flags="--makegroups 2"
CascadiaCode/config.cfg:config_patch_flags="--makegroups 4"
FiraCode/config.cfg:config_patch_flags="--makegroups 2"
Hasklig/config.cfg:config_patch_flags="--makegroups 2"
IntelOneMono/config.cfg:config_patch_flags="--makegroups 4"
Iosevka/config.cfg:config_patch_flags="--makegroups 4"
IosevkaTerm/config.cfg:config_patch_flags="--makegroups 4"
IosevkaTermSlab/config.cfg:config_patch_flags="--makegroups 4"
JetBrainsMono/config.cfg:config_patch_flags="--makegroups 4"
MPlus/config.cfg:config_patch_flags="--makegroups 2"
MartianMono/config.cfg:config_patch_flags="--name filename --makegroups 5"
Monaspace/config.cfg:config_patch_flags="--makegroups 4"
Noto/config.cfg:config_patch_flags="--makegroups 5"
Overpass/config.cfg:config_patch_flags="--makegroups 2"
RobotoMono/config.cfg:config_patch_flags="--makegroups 3"
SourceCodePro/config.cfg:config_patch_flags="--makegroups 4"
Ubuntu/config.cfg:config_patch_flags="--makegroups 2"
UbuntuMono/config.cfg:config_patch_flags="--makegroups 2"
VictorMono/config.cfg:config_patch_flags="--makegroups 4"
Finii commented 11 months ago

But you are right, maybe better just use mode 2 that shortens the styles moderately, as that seems enough:

DEBUG: =====> Family (ID 1)      ok       (30 <=31): MonaspaceKrypton Nerd Font Med
DEBUG: =====> SubFamily (ID 2)   ok       ( 6 <=31): Italic
DEBUG: =====> Fullname (ID 4)    ok       (37 <=63): MonaspaceKrypton Nerd Font Med Italic
DEBUG: =====> PSN (ID 6)         ok       (28 <=63): MonaspaceKryptonNF-MedItalic
DEBUG: =====> PrefFamily (ID 16) ok       (26 <=31): MonaspaceKrypton Nerd Font
DEBUG: =====> PrefStyles (ID 17) ok       (13 <=31): Medium Italic

I will check that out, thanks for bringing it up! :-)

Edit:

Ah no, ... you see... looks bad. And I believe it does not make sense to change NF <-> Nerd Font only for some Nerd Font variants, so one needs to look on Nerd Font Propo always, which is quite a mouthful.

ERROR: ====-< Family (ID 1)      too long (36 > 31): MonaspaceKrypton Nerd Font Propo Med
DEBUG: =====> SubFamily (ID 2)   ok       ( 6 <=31): Italic
DEBUG: =====> Fullname (ID 4)    ok       (43 <=63): MonaspaceKrypton Nerd Font Propo Med Italic
DEBUG: =====> PSN (ID 6)         ok       (29 <=63): MonaspaceKryptonNFP-MedItalic
ERROR: ====-< PrefFamily (ID 16) too long (32 > 31): MonaspaceKrypton Nerd Font Propo
DEBUG: =====> PrefStyles (ID 17) ok       (13 <=31): Medium Italic
jla2000 commented 11 months ago

@Finii Are the variable fonts also supported? Or only the static ones?

Finii commented 11 months ago

@jla2000 Nerd Font uses Fontforge which can not (really) work with variable fonts (VF). There is a loose plan to allow VF in the future but for this Fontforge needs to be exchanged to fonttools, and that is kind of a rewrite at least in some parts (i.e. will not come soon, unfortunately). (Can not find the relevant thread at the moment.)

Edit:

I believe it came up with Cascadia Code which is manually hinted in the VF. The static versions were once but are no more manually hinted and the ttfautohint results differ considerably from the manual hints. So people complain that the static Nerd Fonts version looks different to the default installed VF version :grimacing:

jla2000 commented 11 months ago

Font looks nice btw in Windows Terminal 💯

ntcong commented 11 months ago

@Finii the font does not support full Vietnamese character set like the original font image

Finii commented 11 months ago

@ntcong Ugg!?!! I will check, thanks for reporting. Can you give me some copy and paste text that should work?

ntcong commented 11 months ago

Here a few word and a (should be) complete set of character

Nguyễn Việt Nam
Hà Nội
aAàÀảẢãÃáÁạẠăĂằẰẳẲẵẴắẮặẶâÂầẦẩẨẫẪấẤậẬbBcCdDđĐeEèÈẻẺẽẼéÉẹẸêÊềỀểỂễỄếẾệỆ
fFgGhHiIìÌỉỈĩĨíÍịỊjJkKlLmMnNoOòÒỏỎõÕóÓọỌôÔồỒổỔỗỖốỐộỘơƠờỜởỞỡỠớỚợỢpPqQrRsStTu
UùÙủỦũŨúÚụỤưƯừỪửỬữỮứỨựỰvVwWxXyYỳỲỷỶỹỸýÝỵỴzZ
idan commented 11 months ago

Update from our end: alas, like other commercial fonts, we have to get Legal involved because Nerdfont has lots of logos of businesses. I have a hard time forecasting how long this is going to take.

But the good news is that there might be some work already happening for Cascadia Code (also MSFT) which we might be able to follow in the footsteps of. Stay tuned, just wanted to let you know that we're trying to figure this out!

In the meanwhile, I understand that folks are going to produce patched versions. I hope one day to make the patched versions obsolete! Stay tuned.

Finii commented 11 months ago

@idan Thanks for the feedback! Yes I also had discussions about this with Aaron already ;-)

I think for the time being we need to do a rename. Do you have any preference as name? You find some suggestions above. I choose Monispace for the working drafts as that changes just one character and sounds similarish. The noble gasses are substituted by their usual abbreviations, I guess that is the best solution.

Finii commented 11 months ago

Monaspace

  1. Nonaspace
  2. Nanospace
  3. Momaspace
  4. Moonspace
  5. Monaspice
  6. Polyspace
  7. LisaSpace
  8. ManoSpace
  9. Monabase
  10. Monasbase
  11. Monaspaced
  12. Leospace
  13. Microspace
  14. Monamono
  15. Monispace

Other renames we do

RFN renamed
AnkaCoder AnaConder
Anonymous Anonymice
Bitstream Vera Bitstrom Wera
Cascadia Caskaydia
Hermit Hurmit
Hasklig Hasklug
Plex Blex
IntelOne Intone
Share Shure
Liberation Literation
Source Sauce
Terminus Terminess

I asked around and most people found Monaspice the nicest and best pun. Adapting the PR.

Finii commented 11 months ago

Big thanks to all who suggested names: @cyklee @kraklin @loraderon @redactedscribe

:green_heart:

firasrb commented 11 months ago

@Finii Sorry, I know that this is closed, but just a heads up: The link to Monaspice from the main page is broken. It directs to the following url, which gives a 404.: https://github.com/ryanoasis/nerd-fonts/blob/master/patched-font/Monaspace

thewinger commented 11 months ago

@firasrb I think it will be in next release (3.1.0)

Finii commented 11 months ago

It will  And release is within minutes, just preparing Brew now

Sent from Nine


From: Alejandro Cámara @.***> Sent: Tuesday, November 21, 2023 15:41 To: ryanoasis/nerd-fonts Cc: Fini; Mention Subject: Re: [ryanoasis/nerd-fonts] Add font Monaspace (Issue #1403)

@firasrb I think it will be in next release (3.1.0) — Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you were mentioned.Message ID: @.***>

Logerfo commented 11 months ago

Am I doing something wrong? Here's my terminal.integrated.fontFamily (vscode) and the results:

FiraCode NFM Retina

image

MonaspiceNe NFM

image

redactedscribe commented 11 months ago

Is it just me or does Monaspice look like it's always emboldened?

(Monaspice on the left with FiraCode for comparison):

VSCodium_2023-11-21_21-35-04 VSCodium_2023-11-21_21-35-49

I downloaded Monaspice via the scoop-nerd-fonts Scoop bucket. Haven't used the official non-patched Monaspace so I can't say if this is expected.

The Monaspice font used is MonaspiceNe NFM.

Finii commented 11 months ago

Please, create a regular issue if you have an issue. Transferred the two above to separate issues. Locking this thread, sorry.