Closed shamindras closed 4 days ago
Hello @shamindras!
Many thanks for making this package and for your wonderful emacs videos! I've just setup your modus-themes package on emacs and am enjoying it.
You are welcome!
I'm on a macOS (Monterey v12.1), and wanted to install this cool font. A couple of questions: [...]
Unfortunately, I do not have access to macOS and am not familiar with how it works.
I am happy to add this information to the README, if someone knows the answers. And, more generally, I can facilitate linking to other sources if people want to maintain packages/recipes.
Thanks @protesilaos - appreciate your prompt and thoughtful response.
I looked into this (I'm an emacs and brew-cask-fonts
newb), but these are the essential steps needed.
Since ioveska-comfy
is a family of fonts, one can mimick the example given for the fantasque-sans font family via the following ruby script:
cask "font-fantasque-sans-mono" do
version :latest
sha256 :no_check
url "https://github.com/protesilaos/iosevka-comfy/archive/refs/tags/v#{version}.zip"
appcast "https://github.com/protesilaos/iosevka-comfy/releases.atom"
name "Iosevka-Comfy"
homepage "https://github.com/protesilaos/iosevka-comfy"
font "iosevka-comfy/ttf/iosevka-comfy-bold.ttf"
font "iosevka-comfy/ttf/iosevka-comfy-bolditalic.ttf"
font "iosevka-comfy/ttf/iosevka-comfy-extrabold.ttf"
font "iosevka-comfy/ttf/iosevka-comfy-extrabolditalic.ttf"
font "iosevka-comfy/ttf/iosevka-comfy-italic.ttf"
font "iosevka-comfy/ttf/iosevka-comfy-light.ttf"
font "iosevka-comfy/ttf/iosevka-comfy-lightitalic.ttf"
font "iosevka-comfy/ttf/iosevka-comfy-regular.ttf"
font "iosevka-comfy/ttf/iosevka-comfy-semilight.ttf"
font "iosevka-comfy/ttf/iosevka-comfy-semilightitalic.ttf"
end
I'm not sure how to set the appcast
field in this case, but here are the details.
This can be automated using their font_casker
script. Asking the font-casker developers here may help speed up this process, if you should wish to undertake it.
Finally iosevka-comfy
comes in many 'flavors', e.g., iosevka-comfy-wide
, iosevka-comfy-duo
. It may be sufficient just to make the main iosevka-comfy
ttf fonts available to macOS users.
What do you think?
I looked into this (I'm an emacs and
brew-cask-fonts
newb), but these are the essential steps needed.Since
ioveska-comfy
is a family of fonts, we could mimick the example given for the fantasque-sans font family via the following ruby script:cask "font-fantasque-sans-mono" do version :latest sha256 :no_check url "https://github.com/protesilaos/iosevka-comfy/archive/refs/tags/v#{version}.zip" appcast "https://github.com/belluzj/fantasque-sans/releases.atom" name "Iosevka-Comfy" homepage "https://github.com/protesilaos/iosevka-comfy" font "osevka-comfy/ttf/iosevka-comfy-bold.ttf" font "osevka-comfy/ttf/iosevka-comfy-bolditalic.ttf" font "osevka-comfy/ttf/iosevka-comfy-extrabold.ttf" font "osevka-comfy/ttf/iosevka-comfy-extrabolditalic.ttf" font "osevka-comfy/ttf/iosevka-comfy-italic.ttf" font "osevka-comfy/ttf/iosevka-comfy-light.ttf" font "osevka-comfy/ttf/iosevka-comfy-lightitalic.ttf" font "osevka-comfy/ttf/iosevka-comfy-regular.ttf" font "osevka-comfy/ttf/iosevka-comfy-semilight.ttf" font "osevka-comfy/ttf/iosevka-comfy-semilightitalic.ttf" end
This looks like a promising start. Thank you!
I'm not sure how to set the
appcast
field in this case, but here are the details.This can be automated using their
font_casker
script. Asking the font-casker developers here may help speed up this process, if you should wish to undertake it.
I will need to review these tomorrow. Right now I am about to go to bed. The appcast must be the Atom feed of the tagged releases, so: https://github.com/protesilaos/iosevka-comfy/releases.atom
Finally
iosevka-comfy
comes in many 'flavors', e.g.,iosevka-comfy-wide
,iosevka-comfy-duo
. It may be sufficient just to make the mainiosevka-comfy
ttf fonts available to macOS users.
I am not sure what the brew-cask-fonts policy is here. Does the project expect one font per cask, or can it take multiple fonts at once?
In principle, these "wide" and "duo" etc. are separate fonts due to minor differences between them. I am fine with whatever works best, though I assume someone who is interested in Iosevka Comfy might want to try all or at least some of the fonts in the family.
This looks like a promising start. Thank you!
No problems - glad it is useful 👍🏾 .
I will need to review these tomorrow. Right now I am about to go to bed. The appcast must be the Atom feed of the tagged releases, so: protesilaos/iosevka-comfy/releases.atom
Right, I had edited my original post shortly to reflect this 😄 . Good to know that this seems like the right value for this field.
I am not sure what the brew-cask-fonts policy is here. Does the project expect one font per cask, or can it take multiple fonts at once?
In principle, these "wide" and "duo" etc. are separate fonts due to minor differences between them. I am fine with whatever works best, though I assume someone who is interested in Iosevka Comfy might want to try all or at least some of the fonts in the family.
Since ioveska-comfy
comes in five variants, I believe a separate such script will need to be created for each variant.
My expectation as a macOS user is to then install all variants as follows:
$ brew tap homebrew/cask-fonts # You only need to do this once!
$ brew install font-iosevka-comfy
$ brew install font-iosevka-comfy-wide
$ brew install font-iosevka-comfy-wide-fixed
$ brew install font-iosevka-comfy-fixed
$ brew install font-iosevka-comfy-duo
For example I currently run the following for iosevka
:
$ brew tap homebrew/cask-fonts # You only need to do this once!
$ brew install font-iosevka
$ brew install font-iosevka-slab
So I believe the above is the 'right' approach for the iosevka-comfy
variants. It would be good to file an issue with the cask-font team to clarify.
If you agree with the above, then there is one further issue that needs to be clarified with the cask-font team, namely that for each of the five iosevka-comfy
variants, you have a unhinted
and base
font subtype. I'm not sure if each of the five variants should be split into these two subtypes, or whether just the base
variant subtype should be released here.
Hope this is useful. And thanks again for considering this - appreciate all your efforts.
So I believe the above is the 'right' approach for the iosevka-comfy variants. It would be good to file an issue with the cask-font team to clarify.
Agreed! Since Iosevka is already done that way, I don't think we need to ask for further clarification: we just follow the established precedent. If the maintainers have other ideas, we act accordingly.
If you agree with the above, then there is one further issue that needs to be clarified with the cask-font team, namely that for each of the five iosevka-comfy variants, you have a unhinted and base font subtype. I'm not sure if each of the five variants should be split into these two subtypes, or whether just the base variant subtype should be released here.
The "base" should be fine. I assume this is how other fonts do it as well.
Will you prepare a PR for homebrew-cask-fonts? I don't think I should do it, because I have no means of testing this. Plus, you already did all the research and deserve to be acknowledged for it.
Once we have this in place, we need to update our README to provide installation instructions. If you want, prepare a PR, otherwise I will do it.
Agreed! Since Iosevka is already done that way, I don't think we need to ask for further clarification: we just follow the established precedent. If the maintainers have other ideas, we act accordingly.
Thanks for clarifying your preference. The hinted
fonts (formerly referred to as base
) make more sense for googlefonts (more on this below).
Will you prepare a PR for homebrew-cask-fonts? I don't think I should do it, because I have no means of testing this. Plus, you already did all the research and deserve to be acknowledged for it.
I can definitely help. However, upon further reading I think there is a much simpler and more elegant solution. Namely, I think it is best to push iosevka-comfy
to google-fonts.
The reason for this is from this section (emphasis mine)
The preferred way to add a font to this repository is to submit it to Google Fonts. Shortly after its inclusion, a Cask will be automatically generated and updated on this repository.
In short I believe google-fonts will give these fonts a bigger platform and you get cask-fonts updated for free!
Based on the contributing guide for new font families, I believe it would be easiest for you (as the official font author, and this repo owner) to initiate an issue with google-fonts team directly and get their thoughts. If you amend this repo to meet their guidelines, I image the PR should be quite smooth. They have an example font template repo here and an actual font repo here. I believe it is not hard to amend this repo to match this template.
In short, I feel like google-fonts is a much more universal approach to distributing this font.
What do you think?
I have my reservations about the Google Fonts part, because Iosevka Comfy is not an original design and I am not sure what the legal implications could be. The project basically is a remix of Iosevka: it uses the resources found in iosevka.git.
Beside that, there are some practical difficulties with a potential contribution to Google Fonts.
[ Commenting on their CONTRIBUTING.md ]
- All font files must be built with a scripted build process, and should use fontmake
We are using Iosevka's npm
-based build process. This is what I get on the command-line:
$ npm ls
iosevka@15.4.2 /home/prot/Git/Projects/iosevka-git
+-- @iarna/toml@2.2.5
+-- @msgpack/msgpack@2.7.2
+-- @unicode/unicode-14.0.0@1.2.1
+-- cldr@7.2.0
+-- ejs@3.1.8
+-- eslint-config-prettier@8.5.0
+-- eslint@8.16.0
+-- fs-extra@10.1.0
+-- ot-builder@1.5.2
+-- otb-ttc-bundle@1.5.2
+-- patel@0.37.1
+-- prettier@2.6.2
+-- semver@7.3.7
+-- spiro@3.0.0
+-- stylus@0.58.0
+-- toposort@2.0.2
+-- typo-geom@0.12.1
+-- uuid@8.3.2
+-- verda@1.6.0
+-- wawoff2@2.0.1
`-- which@2.0.2
I cannot find any indication that fontmake
is used.
- All font files should pass the Font Bakery checks for the
googlefonts
profile.
I don't know what this entails. Though it is a later step in the process.
- A
README.md
file must be included in the root of the source repository, and inside of that file we can read about the project with the kind of information suggested by SIL in their FONTLOG recommendation (but no FONTLOG file itself is needed). Get inspired by our repo template: https://github.com/googlefonts/googlefonts-project-template, or by an existing repository: https://github.com/Omnibus-Type/Texturina.
The FONTLOG is outside the scope of Iosevka Comfy because it is a derivative of Iosevka. Put differently, we do not control which glyphs are added, removed, revised.
I have my reservations about the Google Fonts part, because Iosevka Comfy is not an original design and I am not sure what the legal implications could be. The project basically is a remix of Iosevka: it uses the resources found in iosevka.git.
Beside that, there are some practical difficulties with a potential contribution to Google Fonts.
That's reasonable - I see your point.
We can then go back to the original plan, i.e., setup cask-fonts for each of the five iosevka-comfy
hinted variants.
I'm happy to help file an issue with the cask-fonts team to get this process started. But please keep in mind that I don't really know much about brew, fonts etc. Also I will be doing this outside of my usual research work. So things may take longer than expected.
Is the above all fine with you? If so, then I can then start the cask-fonts
issue and tag you in.
Is the above all fine with you? If so, then I can then start the cask-fonts issue and tag you in.
Yes, please proceed. I will be active in the issue and help you however I can. I just can't do it myself because if I ever need to test anything, I have no means of doing it.
Yes, please proceed. I will be active in the issue and help you however I can. I just can't do it myself because if I ever need to test anything, I have no means of doing it.
Sounds good! Let's try it.
I'm currently reading the documentation for homebrew PR and here. It is a little more involved than I thought. So will take some time to play with it.
I'll update you once I have some progress.
I'm currently reading the documentation for homebrew PR and here. It is a little more involved than I thought. So will take some time to play with it.
Oh, I see. This will not be an ordinary patch.
I'll update you once I have some progress.
Sure, take as much time as you need. I am ready to help however I can.
@protesilaos FWIW, you can use homebrew on Linux, so that may improve your local testing.
Thank you @dabrahams! I am monitoring it. Once it is done, we can mention it in our README.
Hi @protesilaos,
Many thanks for making this package and for your wonderful emacs videos! I've just setup your modus-themes package on emacs and am enjoying it.
I'm on a macOS (Monterey v12.1), and wanted to install this cool font. A couple of questions:
Sorry if this has already been answered before, but I thought to just check with you.