{"id":13468845,"url":"https://github.com/slavfox/Cozette","last_synced_at":"2025-03-26T05:31:20.665Z","repository":{"id":38055213,"uuid":"237546482","full_name":"slavfox/Cozette","owner":"slavfox","description":"A bitmap programming font optimized for coziness 💜","archived":false,"fork":false,"pushed_at":"2025-01-19T22:53:38.000Z","size":5263,"stargazers_count":3083,"open_issues_count":32,"forks_count":48,"subscribers_count":18,"default_branch":"main","last_synced_at":"2025-03-19T19:59:38.037Z","etag":null,"topics":["bdf","bitmap-font","bitmap-fonts","font","nerd-fonts","otb","powerline-font","powerline-fonts","programming-font"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/slavfox.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-02-01T01:49:02.000Z","updated_at":"2025-03-18T22:20:54.000Z","dependencies_parsed_at":"2023-11-15T23:28:22.323Z","dependency_job_id":"bcd5bc74-5990-466e-9f53-33d05ea60a0b","html_url":"https://github.com/slavfox/Cozette","commit_stats":null,"previous_names":[],"tags_count":79,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/slavfox%2FCozette","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/slavfox%2FCozette/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/slavfox%2FCozette/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/slavfox%2FCozette/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/slavfox","download_url":"https://codeload.github.com/slavfox/Cozette/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245597313,"owners_count":20641865,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bdf","bitmap-font","bitmap-fonts","font","nerd-fonts","otb","powerline-font","powerline-fonts","programming-font"],"created_at":"2024-07-31T15:01:20.206Z","updated_at":"2025-03-26T05:31:20.652Z","avatar_url":"https://github.com/slavfox.png","language":"Python","funding_links":[],"categories":["Python"],"sub_categories":[],"readme":"# Cozette\n\n[![GitHub release (latest by date)](https://img.shields.io/github/v/release/slavfox/Cozette?logo=github\u0026style=flat-square)](https://github.com/slavfox/Cozette/releases/latest)\n[![AUR version](https://img.shields.io/aur/version/cozette-otb?color=%231793d1\u0026label=AUR\u0026logo=arch-linux\u0026logoColor=%23fff\u0026style=flat-square)](https://aur.archlinux.org/packages/cozette-otb/)\n![GitHub Workflow Status](https://img.shields.io/github/workflow/status/slavfox/Cozette/Build%20fonts?logo=github\u0026style=flat-square)\n![GitHub All Releases](https://img.shields.io/github/downloads/slavfox/Cozette/total?style=flat-square)\n[![GitHub license](https://img.shields.io/github/license/slavfox/Cozette?style=flat-square)](https://github.com/slavfox/Cozette/blob/master/LICENSE)\n\n![Cozette](./img/sample.png)\n\nA bitmap programming font optimized for coziness.\n\n![Cozette in Nvim](./img/vim.png)\n\n# Contents\n\n- [About Cozette](#about-cozette)\n- [Installation](#installation)\n  - [Linux](#linux)\n  - [Mac](#mac)\n  - [Windows](#windows)\n  - [Notes on specific applications](#notes-on-specific-applications)\n    - [Dmenu](#dmenu)\n    - [VSCode, general GUI applications](#vscode-general-gui-applications)\n    - [Kitty](#kitty)\n  - [Variants](#variants)\n- [Roadmap](#roadmap)\n- [Recommended alternatives](#recommended-alternatives)\n- [Character map](#character-map)\n- [Building](#building)\n- [Contributors](#contributors)\n- [License](#license--acknowledgements)\n\n# About Cozette\n\nCozette is a 6x13px (bounding box; average 5px character width, 3px\ndescent, 10px ascent, 8px cap height) bitmap font based on [Dina], which\nitself is based on [Proggy].\nIt's also heavily inspired by [Creep]. I absolutely adore Creep, and was\nusing it up until I got a higher-DPI screen for which it was slightly too\nsmall. That prompted me to make the bitmap font I always wished existed:\nCozette; a small-but-not-tiny bitmap font with great coverage of all the\nglyphs _you_ might encounter in the terminal:\n\n![glyphs in Cozette](./img/characters.png)\n\nI'm intentionally putting the emphasis on \"you\" - although Cozette already\nhas all the glyphs I've seen in my CLI tools so far, _you_ might find it's\nmissing a glyph you wish it had. If that's the case, _please [file an issue]_!\nIt's an important goal for Cozette to be a useful bitmap alternative to\n[Nerd Fonts].\n\nA nicer character map that includes the codepoints can be found at\n[the bottom of this README]!\n\n# Installation\n\n### [You can get Cozette over at the Releases tab]!\n\n## Variants and Sizes\n\nCozette is distributed in three main variants: normal and hi-dpi (upscaled 2x) bitmaps \n(`.bdf`, `.otb`, `.psf`, and `.fnt`), and vectors (`.ttf`).\n\nFont scaling varies wildly from system to system, and sometimes even from\nprogram to program and font format to format. On my system (Linux), `cozette.otb`\nlooks right at 13pts; `cozette_hidpi.otb` looks right at 26pts and downscales \nquite elegantly to 10pts; `CozetteVector` doesn't look right at any size (technically,\nit will look right specifically at 9.4pts on a 100dpi screen on Linux, but pixel-perfect\nbitmap fonts are a massive headache, treated differently by every OS, that I'm not quite sure how to solve)\n\nBitmap fonts are, effectively, just that - bitmaps. They scale terribly, but\nlook nice and sharp (and pixel-perfect) at one specific point\nsize. Vector fonts scale well, but in this case, might look ugly at\nsmaller point sizes because of antialiasing issues and the like.\n\n\u003ch3\u003eNOTE:\u003c/h3\u003e\nThe vector formats (`CozetteVector`) are provided as a compatibility feature.\nRendering of vectorized bitmap-like fonts is \u003cem\u003eterrible\u003c/em\u003e on virtually all operating systems.\n  \nIf Cozette looks awful on your system, you probably have a vector version.\n\u003cem\u003ePlease\u003c/em\u003e use the bitmap formats (`.otb`) if you can.\n\nIssues with vector formats will almost certainly \u003cem\u003enot\u003c/em\u003e be fixed or \naddressed; Cozette is a bitmap font first and foremost, and building a\nbitmap font that builds from a single source and looks good both in its intended,\nbitmap font as well as as the auto-vectorized format, on every OS, seems to be an unsolved problem. \n\n### Linux\n\nThe preferred format is `.otb` (for bitmaps) or `.ttf`\n(for CozetteVector). To install the font, just throw it in your fonts directory\n(you probably want to follow your distro's instructions). On Ubuntu you might need to\n[specifically enable bitmap fonts].\n\n**If you're on Void**, [ifreund] made [a Void package](https://github.com/void-linux/void-packages/tree/master/srcpkgs/font-cozette) for the .otb! Install it\nusing XBPS:\n\n```\n$ sudo xbps-install font-cozette\n```\n\n**If you're on Arch**, [ifreund] made [an AUR package] for the .otb! Install it\nusing your AUR helper of choice:\n\n```\n$ yay -S cozette-otb\n```\n\nOr, if you're not using an AUR helper:\n\n```\n$ git clone https://aur.archlinux.org/cozette-otb.git\n$ cd cozette-otb\n$ makepkg -si\n```\n\n### Mac\n\nDownload the `.dfont` and install it with `Font Book .app`. Both the bitmap\n`Cozette.dfont` and the vector `CozetteVector.dfont` should work.\n\n### Windows\n\nGrab `CozetteVector.ttf`. If you want to get the bitmap versions to work,\n[follow the instructions from here].\n\n### FreeBSD\n\n[laxul] made a [port] for the `.otb`!\n\n* pkg: `pkg install cozette`\n* ports: `cd /usr/ports/x11-fonts/cozette; make install clean`\n\n### Other BSD / Solaris / Haiku / Other\n\nYou know what you're doing.\n\n### Notes on specific applications\n\n#### Dmenu\n\n`dmenu` (and reportedly some other applications, like `urxvt`) seems slightly\nfucky when it comes to dealing with font spacing. I cannot tell if this is an\nissue with Cozette specifically or with the font rendering in those\napplications, but they seem to pull the font spacing from your system's default\nmonospace font for whatever reason. If setting Cozette as your system default\nis not an option (I don't recommend it, a lot of applications have problems\nwith bitmap fonts), try using `Cozette-\u003csize\u003e` as the font name, ie.\n`Cozette-8`.\n\n#### VSCode, general GUI applications\n\nVSCode and a lot of other GUI applications don't support bitmap fonts, so you\nwill want to use CozetteVector there. In applications that do support bitmap\nfonts, you will want to use the normal, bitmap Cozette (unless it's too\nsmall for you, in which case, CozetteVector scales better).\n\n#### VSCode Letter Spacing\n\nSometimes the font might render without proper space betweening the characters (font size set to 13):\n\n![vscode-before-letterspacing](https://github.com/user-attachments/assets/a26eab50-a92e-4a9d-b72f-bbdfcd8b7be7)\n\nTo fix this you need to set (in your settings):\n- terminal.integrated.letterSpacing to 1\n\n![vscode-settings-fix-incorrect-letterspacing](https://github.com/user-attachments/assets/1936c07a-f45b-4476-8d49-bd489ff9b9ae)\n\nAfter that your terminal should look like this (font size set to 13):\n\n![vscode-after-letterspacing](https://github.com/user-attachments/assets/dbd9e722-8503-45cd-aac3-c8fcc9fc2c1e)\n\n_Note: VSCode also provides the option editor.letterSpacing which adjusts the spacing for the file editor._\n\n#### Kitty\n\n**[4e554c4c](https://github.com/4e554c4c) made [an AUR package for `kitty` patched to support bitmap fonts](https://aur.archlinux.org/packages/kitty-bitmap/).**\n\n\u003e `if you like bitmap fonts, kitty is not for you.`\n\n**According to its author, `kitty` [doesn't, and never will, support bitmap fonts](https://github.com/kovidgoyal/kitty/issues/97#issuecomment-373970232)**.\n\nIf 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.\n\nIf that doesn't work, you can try the trick from [here](https://github.com/kovidgoyal/kitty/issues/97#issuecomment-579094656); if you\nexplicitly set Cozette(Vector)'s `spacing` to 100, and `scalable` to `true` in `fontconfig`, `kitty` _should_ accept it.\n\nYou 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.\n\n(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.)\n\n# Roadmap\n\nCheck the [CHANGELOG] for the latest news!\n\nHere's where Cozette is so far, in the rough order the features are going to be\nimplemented:\n\n- [x] ASCII\n- [x] Powerline\n- [x] Build scripts to handle exporting\n- [x] Box-drawing (mostly)\n- [x] Braille\n- [x] Cyrillic!\n- [x] IPA glyphs!\n- [x] APL glyphs (based on the list from [APL386](https://abrudz.github.io/APL386/))!\n- [x] [Uiua](https://www.uiua.org/) glyphs!\n- [x] [BQN](https://mlochbaum.github.io/BQN/fonts.html) glyphs!\n- [x] Fullwidth kana!\n- [ ] Nerdfonts:\n  - [x] nf-pom-\\*\n  - [x] nf-seti-\\*\n  - [ ] nf-dev-\\* (partial)\n  - [ ] nf-weather-\\*\n- [x] Glyph map generation (so I don't have to keep `characters.png` up to\n      date)\n- [x] \"True\" TTF version\n  - [x] Windows support\n- [x] Full [vim-airline] and [bufferline.nvim] support!\n- [x] Full [ranger_devicons] support!\n- [x] [starship] supported out of the box!\n- [x] Full [powerlevel10k] support! (if it doesn't work, try setting\n      `POWERLEVEL9K_MODE` to `nerdfont-complete`)\n- [x] All glyphs used by [maturin](https://github.com/PyO3/maturin) and many other CLI tools!\n- [x] Charmap including the code points (to make it easier for users to\n      report issues/request additions)\n- [x] Codepoints above U+FFFF in vector fonts\n- [x] Upscaled hi-dpi variant\n- [x] Crossed seven variant!\n  ![Crossed seven demo](./img/crossed_seven.png)\n\n# Recommended alternatives\n\nCozette is, intentionally, a very small font. If neither the base nor the \n[HiDpi](#variants) version fit your needs, you might want to look at some\nother bitmap fonts with extra glyphs. A couple of my favorites are\n[Tamzen](https://github.com/sunaku/tamzen-font/)\nand [Envypn](https://github.com/Sorixelle/envypn-powerline). You might also\nfind the [Tecate/bitmap-fonts repo](https://github.com/Tecate/bitmap-fonts)\nuseful.\n\n# Character map\n\nFor easy copy-pasting, the character map is provided in text form in\n[img/charmap.txt](./img/charmap.txt). If you just want to see how the glyphs\nlook in Cozette, here is a screenshot of it:\n\n![Character map](./img/charmap.png)\n\n# Building\n\nIf you want to build Cozette yourself, you'll need [FontForge] and Java. Once you\nhave that, just clone this repo, open `Cozette/Cozette.sfd` in FontForge,\nand go to _File → Generate Fonts..._.\n\nTo run the build scripts I use to prepare releases, first install Python (at least 3.8)\nand [pipenv]. For generating the images, you will also need `xorg-mkfontscale`\nand `xterm`.\nThen, install the dependencies and run `build.py fonts`:\n\n```console\n$ pipenv install\n$ pipenv run python build.py fonts\n```\n\nThen install the generated fonts, and run\n\n```console\n$ pipenv run python build.py images\n```\n\nRunning\n\n```console\n$ pipenv run python build.py changelog\n```\n\nwill output the changelog between your local version and the last tag.\n\n# Contributors\n\nMassive thanks to [ym1234] for helping me figure out how to make the font tables behave nicely.\n\nCozette includes contributions from:\n\n- [autumn]\n- [cpkio]\n- [dariof4]\n- [klinegareth]\n- [sungodmoth]\n- [yoshiyoshyosh]\n- [bluetoad07]\n- [PhMajerus]\n- [theridane]\n- [estradiol enantate]\n\n# License \u0026 Acknowledgements\n\nCozette is licensed [MIT] 💜\n\nCozette's builds use [bdfscale](https://github.com/philj56/bdfscale) by [philj56](https://github.com/philj56), [Bits'N'Picas](https://github.com/kreativekorp/bitsnpicas) by [Kreative Software](https://github.com/kreativekorp).\n\n[dina]: https://www.dcmembers.com/jibsen/download/61/\n[proggy]: https://github.com/bluescan/proggyfonts\n[creep]: https://github.com/romeovs/creep\n[great coverage of all the glyphs i might encounter in the terminal]: #character-map\n[file an issue]: https://github.com/slavfox/Cozette/issues/new\n[nerd fonts]: https://www.nerdfonts.com/\n[the bottom of this readme]: #character-map\n[you can get cozette over at the releases tab]: https://github.com/slavfox/Cozette/releases\n[ifreund]: https://github.com/ifreund\n[an aur package]: https://aur.archlinux.org/packages/cozette-otb/\n[specifically enable bitmap fonts]: https://bugs.launchpad.net/ubuntu/+source/fontconfig/+bug/1560114\n[follow the instructions from here]: https://wiki.archlinux.org/index.php/installation_guide\n[changelog]: ./CHANGELOG.md\n[vim-airline]: https://github.com/vim-airline/vim-airline/\n[ranger_devicons]: https://github.com/alexanderjeurissen/ranger_devicons\n[starship]: https://starship.rs/\n[fontforge]: https://fontforge.org/en-US/\n[powerlevel10k]: https://github.com/romkatv/powerlevel10k/\n[pipenv]: https://github.com/pypa/pipenv\n[mit]: ./LICENSE\n[ym1234]: https://github.com/ym1234\n[autumn]: https://github.com/auctumnus\n[cpkio]: https://github.com/cpkio\n[yoshiyoshyosh]: https://github.com/yoshiyoshyosh\n[klinegareth]: https://github.com/klinegareth\n[dariof4]: https://github.com/dariof4\n[laxul]: https://github.com/laxul\n[sungodmoth]: https://github.com/sungodmoth\n[bluetoad07]: https://github.com/bluetoad07\n[PhMajerus]: https://github.com/PhMajerus\n[theridane]: https://github.com/theridane\n[estradiol enantate]: https://en.wikipedia.org/wiki/Estradiol_enantate\n[port]: https://cgit.freebsd.org/ports/tree/x11-fonts/cozette\n[bufferline.nvim]: https://github.com/akinsho/bufferline.nvim\n[tmux]: \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fslavfox%2FCozette","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fslavfox%2FCozette","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fslavfox%2FCozette/lists"}