flowchartsman / greybeard Goto Github PK
View Code? Open in Web Editor NEWa chunky monospaced bitmap programming font for old nerds that hate eyestrain
License: Other
a chunky monospaced bitmap programming font for old nerds that hate eyestrain
License: Other
Currently done manually from fontforge files.
Along with the planned changes for #7 , the project should probably have a github.io page, since the final product are font files to be downloaded. Integrating releases with a github.io page is a no-brainer, but now of course I have to learn about how all that stuff works, since I've never done it before ๐ฌ.
Whilst attempting to use Greybeard in a keynote presentation, I noticed the linefeed glyph appeared wherever I hit shift-enter to manually split a line (i.e. a particularly long bulleted list item running into an image). This is common enough that this glyph should be optional, and the default should be not to show them.
This applies to the following glyphs:
CtlHT
: horizontal tabCtlLF
: line feedCtlVT
: vertical tabCtlFF
: form feedCtlCR
: carriage returnCtlNL
: newlineThe normal precedent for feature selection is to edit the VARIANTS.dat
file originally provided by UW ttyp0, which is what is done to avoid the display of non-breaking space by simply copying the ordinary space glyph in its place:
# build/VARIANTS.dat
COPYTO Space SpaceNoBreak
This won't work here since these characters should be zero width. Furthermore the original distribution's bdfmangle
tool, which is used to parse and execute the changes in VARIANTS.dat
, does not have a verb to delete or omit glyphs, so one will have to be added or a new tool will have to be written.
It's likely going to have to be a new tool so that I don't have to write Perl, and also to help out with the work that needs to be done for #6
First, wanted to say thanks for making such a great font! I've been using it for the past six months and love it. Having standard, bold, and italic variants really makes it stand out (and much more useful as a result) among the other bitmap fonts I've come across.
Would you consider making a bold+italic font variant?
The three variants provided currently cover 95% of my use cases, but with kitty's font config I do run into occasional cases where the bold_italic_font
is expected and I have to use a fallback. Having a bold+italic for Greybeard would really complete this font and make it usable across all applications I need.
Thanks! Feel free to close if it's not something you're interested in (or if it's not possible to do with the design of the font at its current sizes).
As part of the work for #10 #11 and #6, a new tool will need to be developed to operate on the unicode BDF files and provide the functionality of build/VARIANTS.dat
as well as selective glyph removal and maybe even porting mkbold code over for the synthetic bolditalic variants to allow for glyph expansion and kerning when bold glyphs are too large.
One of the reasons Greybeard no longer provides a single .ttf is because bitmap strikes don't seem to be a viable option in the modern era. Therefore I switched from using fontforge to using Bits'N'Picas to synthesize the font as pseudo-pixel outlines. This works great, and seems to do a lot of inspection on the BDF to get things right, but now each size has to be its own font.
This was considered a worthwhile tradeoff for the convenience of automatic building, plus it makes it much more clear what size the font is intended to be used at, instead of providing list of "good point sizes" and "bad point sizes". That said, it would be nice to have them all in one file again.
mkttf attempts to automate this using the trick of adding CKJ glyphs and setting the codepage to trick Windows into actually rendering bitmap strikes, however it's unclear if this is viable for usage on Windows, given the issues described in the link above.
If you have experience making Windows do the right thing with fonts that have bitmap strikes, please comment here or issue a PR!
Perhaps related to one or more of the following:
Checking out font files in a repo or manually downloading them from Github is old and busted. Github actions on release tags are the new hotness. To wit, I am planning a 1.0 "release" that will integrate this, removing all of the files in /dist
from the repo itself.
This will dovetail with a github.io page.
Consider woff/woff2 for web use. Shouldn't be too difficult with a little Makefile/Docker magic.
Thanks to #5 Greybeard now has synthesized BoldItalic variants generated from the italic strikes using mkbold-mkitalic. Unfortunately, the algorithm does not take bounding boxes into account, so anywhere a thickened glyph would run over the edge (usually by a single pixel), it simply cuts off. This isn't too bad, but it's bothering me. I'm sure there's a way to expand the bounding boxes dynamically and to use the bdf analogue of kerning to account for it, but it requires some investigation and, likely, digging into the annals of old xfont utilities.
I tried the font out, but didn't find any differences between Ttyp0, there is any?
Given that we're unlikely to need the non-unicode encodings ever again, and since most tools have difficulties making sense of the unmangled BDFs, it's probably best to move the /build
directory out of the respository altogether and standardize on the built gb-X-uni
files as source of truth moving forward.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.