diff --git a/README.md b/README.md index 47c6c37..2b54121 100644 --- a/README.md +++ b/README.md @@ -18,6 +18,7 @@ A bitmap programming font optimized for coziness. - [Mac](#mac) - [Windows](#windows) - [Notes on specific applications](#notes-on-specific-applications) + - [Dmenu](#dmenu) - [VSCode, general GUI applications](#vscode-general-gui-applications) - [Kitty](#kitty) - [Roadmap](#roadmap) @@ -27,24 +28,24 @@ A bitmap programming font optimized for coziness. # About Cozette -Cozette is a 6x13px (bounding box; average 5px character width, 3px -descent, 10px ascent, 8px cap height) bitmap font based on [Dina], which +Cozette is a 6x13px (bounding box; average 5px character width, 3px +descent, 10px ascent, 8px cap height) bitmap font based on [Dina], which itself is based on [Proggy]. It's also heavily inspired by [Creep]. I absolutely adore Creep, and was using it up until I got a higher-DPI screen for which it was slightly too -small. That prompted me to make the bitmap font I always wished existed: -Cozette; a small-but-not-tiny bitmap font with great coverage of all the -glyphs *you* might encounter in the terminal: +small. That prompted me to make the bitmap font I always wished existed: +Cozette; a small-but-not-tiny bitmap font with great coverage of all the +glyphs _you_ might encounter in the terminal: ![glyphs in Cozette](./img/characters.png) I'm intentionally putting the emphasis on "you" - although Cozette already -has all the glyphs I've seen in my CLI tools so far, *you* might find it's -missing a glyph you wish it had. If that's the case, *please [file an issue]*! +has all the glyphs I've seen in my CLI tools so far, _you_ might find it's +missing a glyph you wish it had. If that's the case, _please [file an issue]_! It's an important goal for Cozette to be a useful bitmap alternative to [Nerd Fonts]. -A nicer character map that includes the codepoints can be found at +A nicer character map that includes the codepoints can be found at [the bottom of this README]! # Installation @@ -59,18 +60,22 @@ size. Vector fonts scale well, but in this case, might look ugly at smaller point sizes because of antialiasing issues and the like. ### Linux -The preferred format is `.otb` (for bitmaps) or `.ttf` + +The preferred format is `.otb` (for bitmaps) or `.ttf` (for CozetteVector). To install the font, just throw it in your fonts directory -(you probably want to follow your distro's instructions). On Ubuntu, if you +(you probably want to follow your distro's instructions). On Ubuntu, if you don't want to reconsider your distro choice, you might need to [specifically enable bitmap fonts]. **If you're on Arch**, [ifreund] made [an AUR package] for the .otb! Install it using your AUR helper of choice: + ``` $ yay -S cozette-otb ``` + Or, if you're not using an AUR helper: + ``` $ git clone https://aur.archlinux.org/cozette-otb.git $ cd cozette-otb @@ -78,11 +83,13 @@ $ makepkg -si ``` ### Mac -Download the `.dfont` and install it with `Font Book .app`. Both the bitmap + +Download the `.dfont` and install it with `Font Book .app`. Both the bitmap `Cozette.dfont` and the vector `CozetteVector.dfont` should work. ### Windows -Grab `CozetteVector.ttf`. If you want to get the bitmap versions to work, + +Grab `CozetteVector.ttf`. If you want to get the bitmap versions to work, [follow the instructions from here]. ### BSD / Solaris / Haiku /Other @@ -91,9 +98,20 @@ You know what you're doing. ### Notes on specific applications +#### Dmenu + +`dmenu` (and reportedly some other applications, like `urxvt`) seems slightly +fucky when it comes to dealing with font spacing. I cannot tell if this is an +issue with Cozette specifically or with the font rendering in those +applications, but they seem to pull the font spacing from your system's default +monospace font for whatever reason. If setting Cozette as your system default +is not an option (I don't recommend it, a lot of applications have problems +with bitmap fonts), try using `Cozette-` as the font name, ie. +`Cozette-8`. + #### VSCode, general GUI applications -VSCode and a lot of other GUI applications don't support bitmap fonts, so you +VSCode and a lot of other GUI applications don't support bitmap fonts, so you will want to use CozetteVector there. In applications that do support bitmap fonts, you will want to use the normal, bitmap Cozette (unless it's too small for you, in which case, CozetteVector scales better). @@ -106,14 +124,14 @@ small for you, in which case, CozetteVector scales better). **According to its author, `kitty` [doesn't, and never will, support bitmap fonts](https://github.com/kovidgoyal/kitty/issues/97#issuecomment-373970232)**. -If you *really* want to get Cozette working, you can try the [AUR package mentioned above](https://aur.archlinux.org/packages/kitty-bitmap/), or apply [the patch there](https://aur.archlinux.org/cgit/aur.git/tree/Allow-bitmap-fonts.patch?h=kitty-bitmap) yourself. +If you _really_ want to get Cozette working, you can try the [AUR package mentioned above](https://aur.archlinux.org/packages/kitty-bitmap/), or apply [the patch there](https://aur.archlinux.org/cgit/aur.git/tree/Allow-bitmap-fonts.patch?h=kitty-bitmap) yourself. -If that doesn't work, you can try the trick from [here](https://github.com/kovidgoyal/kitty/issues/97#issuecomment-579094656); if you -explicitly set Cozette(Vector)'s `spacing` to 100, and `scalable` to `true` in `fontconfig`, `kitty` *should* accept it. +If that doesn't work, you can try the trick from [here](https://github.com/kovidgoyal/kitty/issues/97#issuecomment-579094656); if you +explicitly set Cozette(Vector)'s `spacing` to 100, and `scalable` to `true` in `fontconfig`, `kitty` _should_ accept it. -You can also make Cozette work flawlessly by uninstalling `kitty` and using a terminal emulator for which *not rendering fonts* isn't a design principle - I cannot recommend [alacritty](https://github.com/alacritty/alacritty/) enough. it's excellent, has worked flawlessly for me for quite some time, and both configuring and getting bitmap fonts to work in it is a breeze. +You can also make Cozette work flawlessly by uninstalling `kitty` and using a terminal emulator for which _not rendering fonts_ isn't a design principle - I cannot recommend [alacritty](https://github.com/alacritty/alacritty/) enough. it's excellent, has worked flawlessly for me for quite some time, and both configuring and getting bitmap fonts to work in it is a breeze. -(The support was discussed in [slavfox/Cozette#18](https://github.com/slavfox/Cozette/issues/18). Many thanks to all the participants there, especially to to Luflosi, who brought up flipping the `allow_bitmapped_fonts` flag in [their fork](https://github.com/Luflosi/kitty/commit/e645e0b5ed084c2c57ecfb8acafc07e76f5717bb), and to [4e554c4c](https://github.com/4e554c4c), who made the AUR package.) +(The support was discussed in [slavfox/Cozette#18](https://github.com/slavfox/Cozette/issues/18). Many thanks to all the participants there, especially to to Luflosi, who brought up flipping the `allow_bitmapped_fonts` flag in [their fork](https://github.com/Luflosi/kitty/commit/e645e0b5ed084c2c57ecfb8acafc07e76f5717bb), and to [4e554c4c](https://github.com/4e554c4c), who made the AUR package.) # Roadmap @@ -129,20 +147,20 @@ implemented: - [x] Braille - [x] Cyrillic! - [ ] Nerdfonts: - - [x] nf-pom-* - - [x] nf-seti-* - - [ ] nf-dev-* (partial) - - [ ] nf-weather-* + - [x] nf-pom-\* + - [x] nf-seti-\* + - [ ] nf-dev-\* (partial) + - [ ] nf-weather-\* - [x] Glyph map generation (so I don't have to keep `characters.png` up to - date) + date) - [x] "True" TTF version - [x] Windows support - [x] Full [vim-airline] support! - [x] Full [ranger_devicons] support! - [x] [starship] supported out of the box! - [x] Full [powerlevel10k] support! (if it doesn't work, try setting - `POWERLEVEL9K_MODE` to `nerdfont-complete`) -- [x] All glyphs used by [maturin](https://github.com/PyO3/maturin) and + `POWERLEVEL9K_MODE` to `nerdfont-complete`) +- [x] All glyphs used by [maturin](https://github.com/PyO3/maturin) and many other CLI tools! - [x] Charmap including the code points (to make it easier for users to report issues/request additions) @@ -151,15 +169,15 @@ implemented: # Recommended alternatives Cozette is, intentionally, a very small font. If you're looking for other -bitmap fonts with extra glyphs, a couple of my favorites are +bitmap fonts with extra glyphs, a couple of my favorites are [Tamzen](https://github.com/sunaku/tamzen-font/) and [Envypn](https://github.com/Sorixelle/envypn-powerline). You might also find the [Tecate/bitmap-fonts repo](https://github.com/Tecate/bitmap-fonts) -useful. +useful. # Character map -For easy copy-pasting, the character map is provided in text form in +For easy copy-pasting, the character map is provided in text form in [img/charmap.txt](./img/charmap.txt). If you just want to see how the glyphs look in Cozette, here is a screenshot of it: @@ -169,7 +187,7 @@ look in Cozette, here is a screenshot of it: If you want to build Cozette yourself, you'll need [FontForge]. Once you have that, just clone this repo, open `Cozette/Cozette.sfd` in FontForge, -and go to *File → Generate Fonts...*. +and go to _File → Generate Fonts..._. To run the build scripts I use to prepare releases, first install Python 3.8 and [pipenv]. For generating the images, you will also need `xorg-mkfontscale` @@ -182,14 +200,17 @@ $ pipenv run python3.8 build.py fonts ``` Then install the generated fonts, and run + ```console $ pipenv run python3.8 build.py images ``` Running + ```console $ pipenv run python3.8 build.py changelog ``` + will output the changelog between your local version and the last tag. # License @@ -200,31 +221,26 @@ Massive thanks to [ym1234] for helping me figure out how to make the font tables Additional thanks to [autumn] and [cpkio] for contributing characters! - -[Dina]: https://www.dcmembers.com/jibsen/download/61/ -[Proggy]: https://github.com/bluescan/proggyfonts -[Creep]: https://github.com/romeovs/creep -[great coverage of all the glyphs I might encounter in the terminal]: - #character-map +[dina]: https://www.dcmembers.com/jibsen/download/61/ +[proggy]: https://github.com/bluescan/proggyfonts +[creep]: https://github.com/romeovs/creep +[great coverage of all the glyphs i might encounter in the terminal]: #character-map [file an issue]: https://github.com/slavfox/Cozette/issues/new -[Nerd Fonts]: https://www.nerdfonts.com/ -[the bottom of this README]: #character-map -[You can get Cozette over at the Releases tab]: - https://github.com/slavfox/Cozette/releases +[nerd fonts]: https://www.nerdfonts.com/ +[the bottom of this readme]: #character-map +[you can get cozette over at the releases tab]: https://github.com/slavfox/Cozette/releases [ifreund]: https://github.com/ifreund -[an AUR package]: https://aur.archlinux.org/packages/cozette-otb/ -[specifically enable bitmap fonts]: - https://bugs.launchpad.net/ubuntu/+source/fontconfig/+bug/1560114 -[follow the instructions from here]: - https://wiki.archlinux.org/index.php/installation_guide -[CHANGELOG]: ./CHANGELOG.md +[an aur package]: https://aur.archlinux.org/packages/cozette-otb/ +[specifically enable bitmap fonts]: https://bugs.launchpad.net/ubuntu/+source/fontconfig/+bug/1560114 +[follow the instructions from here]: https://wiki.archlinux.org/index.php/installation_guide +[changelog]: ./CHANGELOG.md [vim-airline]: https://github.com/vim-airline/vim-airline/ [ranger_devicons]: https://github.com/alexanderjeurissen/ranger_devicons [starship]: https://starship.rs/ [fontforge]: https://fontforge.org/en-US/ [powerlevel10k]: https://github.com/romkatv/powerlevel10k/ [pipenv]: https://github.com/pypa/pipenv -[MIT]: ./LICENSE +[mit]: ./LICENSE [ym1234]: https://github.com/ym1234 [autumn]: https://github.com/auctumnus [cpkio]: https://github.com/cpkio