Changed: ⏨ U+23E8 Decimal Exponent Symbol (as per issue #149) ☃ U+2603 Snowman (changed from single-cell to Emoji style as expected by most terminals) ☕ U+2615 Hot Beverage (changed from single-cell to Emoji style as expected by most terminals) ⭐ U+2B50 White Medium Star (changed from single-cell to Emoji style as expected by most terminals) 🌱 U+1F331 Seedling (changed from single-cell to Emoji style as expected by most terminals) 🌳 U+1F333 Deciduous Tree (changed from single-cell to Emoji style as expected by most terminals) 🍹 U+1F379 Tropical Drink (changed for consistency with other drinks emojis) 💎 U+1F48E Gem Stone (changed from single-cell to Emoji style as expected by most terminals) 🔧 U+1F527 Wrench (slightly resized to better fit Emojis bounding-box) Added: ☂ U+2602 Umbrella (Emoji style as expected by most terminals) ☄ U+2604 Comet (Emoji style) ☔ U+2614 Umbrella with Rain Drops ♻ U+267B Black Universal Recycling Symbol (Emoji style) ⚓ U+2693 Anchor ⚽ U+26BD Soccer Ball ⚾ U+26BE Baseball ⛄ U+26C4 Snowman Without Snow ⛩ U+26E9 Shinto Shrine (Emoji style) ⛪ U+26EA Church ✻ U+273B Teardrop-Spoked Asterisk (as full-width) ✼ U+273C Open Centre Teardrop-Spoked Asterisk (as full-width) ✽ U+273D Heavy Teardrop-Spoked Asterisk (as full-width) ✾ U+273E Six Petalled Black and White Florette (as full-width) ✿ U+273F Black Florette (as full-width) ❀ U+2740 White Florette (as full-width) ❇ U+2747 Sparkle (as full-width) ❈ U+2748 Heavy Sparkle (as full-width) ❉ U+2749 Balloon-Spoked Asterisk (as full-width) ❊ U+274A Eight Teardrop-Spoked Propeller Asterisk (as full-width) ❋ U+274B Heavy Eight Teardrop-Spoked Propeller Asterisk (as full-width) ⭕ U+2B55 Heavy Large Circle 伝 U+4F1D CJK Unified Ideograph-4F1D 影 U+5F71 CJK Unified Ideograph-5F71 忍 U+5FCD CJK Unified Ideograph-5FCD 愛 U+611B CJK Unified Ideograph-611B 戦 U+6226 CJK Unified Ideograph-6226 斧 U+65A7 CJK Unified Ideograph-65A7 極 U+6975 CJK Unified Ideograph-6975 正 U+6B63 CJK Unified Ideograph-6B63 獣 U+7363 CJK Unified Ideograph-7363 王 U+738B CJK Unified Ideograph-738B 界 U+754C CJK Unified Ideograph-754C 罠 U+7F60 CJK Unified Ideograph-7F60 舞 U+821E CJK Unified Ideograph-821E 記 U+8A18 CJK Unified Ideograph-8A18 説 U+8AAC CJK Unified Ideograph-8AAC 超 U+8D85 CJK Unified Ideograph-8D85 魔 U+9B54 CJK Unified Ideograph-9B54 U+F322 PUA - EndeavourOS (nf-linux-endeavour, as per issue #137) 𝍲 U+1D372 Ideographic Tally Mark One (based on 正 U+6B63) 𝍳 U+1D373 Ideographic Tally Mark Two (based on 正 U+6B63) 𝍴 U+1D374 Ideographic Tally Mark Three (based on 正 U+6B63) 𝍵 U+1D375 Ideographic Tally Mark Four (based on 正 U+6B63) 𝍶 U+1D376 Ideographic Tally Mark Five (identical to 正 U+6B63) 🄎 U+1F10E Circled Anticlockwise Arrow (as full-width) 🄏 U+1F10F Circled Dollar Sign With Overlaid Backslash (as full-width) 🄪 U+1F12A Tortoise Shell Bracketed Latin Capital Letter S (as full-width) 🄫 U+1F12B Circled Italic Latin Capital Letter C (as full-width) 🄬 U+1F12C Circled Italic Latin Capital Letter R (as full-width) 🄭 U+1F12D Circled Cd (as full-width) 🄮 U+1F12E Circled Wz (as full-width) 🄯 U+1F12F Copyleft Symbol (as full-width) 🅪 U+1F16A Raised MC Sign (based on existing raised TM sign U+2122) 🅫 U+1F16B Raised MD Sign 🅬 U+1F16C Raised MR Sign 🅭 U+1F16D Circled CC (as full-width) 🅮 U+1F16E Circled C With Overlaid Backslash (as full-width) 🅯 U+1F16F Circled Human Figure (as full-width) 🌍 U+1F30D Earth Globe Europe-Africa 🌎 U+1F30E Earth Globe Americas 🌏 U+1F30F Earth Globe Asia-Australia 🌐 U+1F310 Globe With Meridians 🌙 U+1F319 Crescent Moon (sized like other moon emojis) 🌟 U+1F31F Glowing Star (Emoji style) 🌭 U+1F32D Hot Dog 🌮 U+1F32E Taco 🌯 U+1F32F Burrito 🌰 U+1F330 Chestnut 🌲 U+1F332 Evergreen Tree 🌴 U+1F334 Palm Tree 🌵 U+1F335 Cactus 🌷 U+1F337 Tulip 🌹 U+1F339 Rose 🌺 U+1F33A Hibiscus 🌻 U+1F33B Sunflower 🌼 U+1F33C Blossom 🌽 U+1F33D Ear of Maize 🌾 U+1F33E Ear of Rice 🌿 U+1F33F Herb 🍁 U+1F341 Maple Leaf 🍂 U+1F342 Fallen Leaf 🍃 U+1F343 Leaf Fluttering In Wind 🍄 U+1F344 Mushroom 🍅 U+1F345 Tomato 🍆 U+1F346 Aubergine 🍇 U+1F347 Grapes 🍈 U+1F348 Melon 🍉 U+1F349 Watermelon 🍊 U+1F34A Tangerine 🍋 U+1F34B Lemon 🍌 U+1F34C Banana 🍍 U+1F34D Pineapple 🍐 U+1F350 Pear 🍑 U+1F351 Peach 🍒 U+1F352 Cherries 🍓 U+1F353 Strawberry 🍔 U+1F354 Hamburger 🍕 U+1F355 Slice of Pizza 🍖 U+1F356 Meat On Bone 🍗 U+1F357 Poultry Leg 🍘 U+1F358 Rice Cracker 🍙 U+1F359 Rice Ball 🍚 U+1F35A Cooked Rice 🍛 U+1F35B Curry and Rice 🍜 U+1F35C Steaming Bowl 🍝 U+1F35D Spaghetti 🍞 U+1F35E Bread 🍟 U+1F35F French Fries 🍠 U+1F360 Roasted Sweet Potato 🍡 U+1F361 Dango 🍢 U+1F362 Oden 🍣 U+1F363 Sushi 🍤 U+1F364 Fried Shrimp 🍥 U+1F365 Fish Cake with Swirl Design 🍦 U+1F366 Soft Ice Cream 🍧 U+1F367 Shaved Ice 🍨 U+1F368 Ice Cream 🍩 U+1F369 Doughnut 🍪 U+1F36A Cookie 🍫 U+1F36B Chocolate Bar 🍬 U+1F36C Candy 🍭 U+1F36D Lollipop 🍮 U+1F36E Custard 🍯 U+1F36F Honey Pot 🍰 U+1F370 Shortcake 🍱 U+1F371 Bento Box 🍲 U+1F372 Pot of Food 🍳 U+1F373 Cooking 🍴 U+1F374 Fork and Knife 🍵 U+1F375 Teacup Without Handle 🍶 U+1F376 Sake Bottle and Cup 🍷 U+1F377 Wine Glass 🍸 U+1F378 Cocktail Glass 🍺 U+1F37A Beer Mug 🍻 U+1F37B Clinking Beer Mugs 🍼 U+1F37C Baby Bottle 🍽 U+1F37D Fork and Knife with Plate (as full-width) 🍾 U+1F37E Bottle with Popping Cork 🍿 U+1F37F Popcorn 🎀 U+1F380 Ribbon 🎂 U+1F382 Birthday Cake 🎃 U+1F383 Jack-O-Lantern 🎄 U+1F384 Christmas Tree 🎅 U+1F385 Father Christmas 🎈 U+1F388 Balloon 🎉 U+1F389 Party Popper 🎊 U+1F38A Confetti Ball 🎋 U+1F38B Tanabata Tree 🎌 U+1F38C Crossed Flags 🎍 U+1F38D Pine Decoration 🎎 U+1F38E Japanese Dolls 🎏 U+1F38F Carp Streamer 🎐 U+1F390 Wind Chime 🎑 U+1F391 Moon Viewing Ceremony 🎒 U+1F392 School Satchel 🎓 U+1F393 Graduation Cap 🎩 U+1F3A9 Top Hat 🎪 U+1F3AA Circus Tent 🎬 U+1F3AC Clapper Board 🎯 U+1F3AF Direct Hit 🎰 U+1F3B0 Slot Machine 🎲 U+1F3B2 Game Die 🎳 U+1F3B3 Bowling 🎴 U+1F3B4 Flower Playing Cards 🎵 U+1F3B5 Musical Note 🎶 U+1F3B6 Multiple Musical Notes 🎹 U+1F3B9 Musical Keyboard 🎼 U+1F3BC Musical Score 🏀 U+1F3C0 Basketball and Hoop 🏅 U+1F3C5 Sports Medal 🏆 U+1F3C6 Trophy 🏈 U+1F3C8 American Football 🏉 U+1F3C9 Rugby Football 🏐 U+1F3D0 Volleyball 🏙 U+1F3D9 Cityscape (Emoji style) 🏚 U+1F3DA Derelict House Building (Emoji style) 🏛 U+1F3DB Classical Building (Emoji style) 🏠 U+1F3E0 House Building 🏡 U+1F3E1 House With Garden 🏢 U+1F3E2 Office Building 🏣 U+1F3E3 Japanese Post Office 🏤 U+1F3E4 European Post Office 🏥 U+1F3E5 Hospital 🏦 U+1F3E6 Bank 🏧 U+1F3E7 Automated Teller Machine 🏨 U+1F3E8 Hotel 🏩 U+1F3E9 Love Hotel 🏪 U+1F3EA Convenience Store 🏫 U+1F3EB School 🏬 U+1F3EC Department Store 🏭 U+1F3ED Factory 🏮 U+1F3EE Izakaya Lantern 🏯 U+1F3EF Japanese Castle 🏰 U+1F3F0 European Castle 🐓 U+1F413 Rooster 🐟 U+1F41F Fish 🐠 U+1F420 Tropical Fish 🐡 U+1F421 Blowfish 🐣 U+1F423 Hatching Chick 🐤 U+1F424 Baby Chick 🐥 U+1F425 Front-Facing Baby Chick 👀 U+1F440 Eyes 👁 U+1F441 Eye (Emoji style) 👄 U+1F444 Mouth 💈 U+1F488 Barber Pole 💊 U+1F48A Pill 💋 U+1F48B Kiss Mark 💍 U+1F48D Ring 💏 U+1F48F Kiss 💐 U+1F490 Bouquet 💑 U+1F491 Couple with Heart 💒 U+1F492 Wedding 💟 U+1F49F Heart Decoration 💦 U+1F4A6 Splashing Sweat Symbol 💧 U+1F4A7 Droplet 💱 U+1F4B1 Currency Exchange 💳 U+1F4B3 Credit Card 💴 U+1F4B4 Banknote With Yen Sign 💵 U+1F4B5 Banknote With Dollar Sign 💶 U+1F4B6 Banknote With Euro Sign 💷 U+1F4B7 Banknote With Pound Sign 💸 U+1F4B8 Money with Wings 💹 U+1F4B9 Chart with Upwards Trend and Yen Sign 📈 U+1F4C8 Chart with Upwards Trend 📉 U+1F4C9 Chart with Downwards Trend 📊 U+1F4CA Bar Chart 📍 U+1F4CD Round Pushpin 📎 U+1F4CE Paperclip 📟 U+1F4DF Pager 📱 U+1F4F1 Mobile Phone 📲 U+1F4F2 Mobile Phone With Rightwards Arrow At Left 📹 U+1F4F9 Video Camera 📺 U+1F4FA Television 📻 U+1F4FB Radio 📼 U+1F4FC Videocassette 🔌 U+1F50C Electric Plug 🔍 U+1F50D Left-Pointing Magnifying Glass 🔎 U+1F50E Right-Pointing Magnifying Glass 🔏 U+1F50F Lock with Ink Pen 🔦 U+1F526 Electric Torch 🔨 U+1F528 Hammer 🔩 U+1F529 Nut and Bolt 🔰 U+1F530 Japanese Symbol For Beginner 🔱 U+1F531 Trident Emblem 🕹 U+1F579 Joystick (Emoji style) 🗄 U+1F5C4 File Cabinet (Emoji style) 🗻 U+1F5FB Mount Fuji 🗼 U+1F5FC Tokyo Tower 🗾 U+1F5FE Silhouette of Japan 😍 U+1F60D Smiling Face with Heart-Shaped Eyes 🚥 U+1F6A5 Horizontal Traffic Light 🚦 U+1F6A6 Vertical Traffic Light 🚧 U+1F6A7 Construction Sign 🚨 U+1F6A8 Police Cars Revolving Light 🚩 U+1F6A9 Triangular Flag On Post 🚪 U+1F6AA Door 🚫 U+1F6AB No Entry Sign 🛑 U+1F6D1 Octagonal Sign 🛕 U+1F6D5 Hindu Temple 🛖 U+1F6D6 Hut 🛫 U+1F6EB Airplane Departure 🛬 U+1F6EC Airplane Arriving 🤩 U+1F929 Grinning Face with Star Eyes 🥀 U+1F940 Wilted Flower 🥇 U+1F947 First Place Medal 🥈 U+1F948 Second Place Medal 🥉 U+1F949 Third Place Medal 🥎 U+1F94E Softball 🥚 U+1F95A Egg 🥛 U+1F95B Glass of Milk 🥤 U+1F964 Cup with Straw 🥮 U+1F96E Moon Cake 🥯 U+1F96F Bagel 🥷 U+1F977 Ninja 🦋 U+1F98B Butterfly 🧉 U+1F9C9 Mate Drink 🧊 U+1F9CA Ice Cube 🧋 U+1F9CB Bubble Tea 🧨 U+1F9E8 Firecracker 🧩 U+1F9E9 Jigsaw Puzzle Piece 🧭 U+1F9ED Compass 🧱 U+1F9F1 Brick 🧲 U+1F9F2 Magnet 🧵 U+1F9F5 Spool of Thread 🧶 U+1F9F6 Ball of Yarn 🧷 U+1F9F7 Safety Pin 🧸 U+1F9F8 Teddy Bear 🧺 U+1F9FA Basket 🧻 U+1F9FB Roll of Paper 🧼 U+1F9FC Bar of Soap 🧽 U+1F9FD Sponge 🩸 U+1FA78 Drop of Blood 🩹 U+1FA79 Adhesive Bandage 🪙 U+1FA99 Coin 🪚 U+1FA9A Carpentry Saw 🪛 U+1FA9B Screwdriver 🪠 U+1FAA0 Plunger 🪪 U+1FAAA Identification Card 🫕 U+1FAD5 Fondue 🫖 U+1FAD6 Teapot 🫗 U+1FAD7 Pouring Liquid 🫙 U+1FAD9 Jar 🫦 U+1FAE6 Biting Lip 🫧 U+1FAE7 Bubbles |
||
|---|---|---|
| .github/workflows | ||
| Cozette | ||
| cozette_builder | ||
| img | ||
| .gitignore | ||
| bitsnpicas.sh | ||
| build.py | ||
| CHANGELOG.md | ||
| flake.lock | ||
| flake.nix | ||
| LICENSE | ||
| Pipfile | ||
| Pipfile.lock | ||
| pyproject.toml | ||
| README.md | ||
Cozette
A bitmap programming font optimized for coziness.
Contents
- About Cozette
- Installation
- Roadmap
- Recommended alternatives
- Character map
- Building
- Contributors
- License
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 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:
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! 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 the bottom of this README!
Installation
You can get Cozette over at the Releases tab!
Variants and Sizes
Cozette is distributed in three main variants: normal and hi-dpi (upscaled 2x) bitmaps
(.bdf, .otb, .psf, and .fnt), and vectors (.ttf).
Font scaling varies wildly from system to system, and sometimes even from
program to program and font format to format. On my system (Linux), cozette.otb
looks right at 13pts; cozette_hidpi.otb looks right at 26pts and downscales
quite elegantly to 10pts; CozetteVector doesn't look right at any size (technically,
it will look right specifically at 9.4pts on a 100dpi screen on Linux, but pixel-perfect
bitmap fonts are a massive headache, treated differently by every OS, that I'm not quite sure how to solve)
Bitmap fonts are, effectively, just that - bitmaps. They scale terribly, but look nice and sharp (and pixel-perfect) at one specific point size. Vector fonts scale well, but in this case, might look ugly at smaller point sizes because of antialiasing issues and the like.
NOTE:
The vector formats (`CozetteVector`) are provided as a compatibility feature. Rendering of vectorized bitmap-like fonts is terrible on virtually all operating systems.If Cozette looks awful on your system, you probably have a vector version.
Please use the bitmap formats (.otb) if you can.
Issues with vector formats will almost certainly not be fixed or addressed; Cozette is a bitmap font first and foremost, and building a bitmap font that builds from a single source and looks good both in its intended, bitmap font as well as as the auto-vectorized format, on every OS, seems to be an unsolved problem.
Linux
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 you might need to
specifically enable bitmap fonts.
If you're on Void, ifreund made a Void package for the .otb! Install it using XBPS:
$ sudo xbps-install font-cozette
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
$ makepkg -si
Mac
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,
follow the instructions from here.
FreeBSD
laxul made a port for the .otb!
- pkg:
pkg install cozette - ports:
cd /usr/ports/x11-fonts/cozette; make install clean
Other BSD / Solaris / Haiku / Other
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-<size> 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 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).
VSCode Letter Spacing
Sometimes the font might render without proper space betweening the characters (font size set to 13):
To fix this you need to set (in your settings):
- terminal.integrated.letterSpacing to 1
After that your terminal should look like this (font size set to 13):
Note: VSCode also provides the option editor.letterSpacing which adjusts the spacing for the file editor.
Kitty
4e554c4c made an AUR package for kitty patched to support bitmap fonts.
if you like bitmap fonts, kitty is not for you.
According to its author, kitty doesn't, and never will, support bitmap fonts.
If you really want to get Cozette working, you can try the AUR package mentioned above, or apply the patch there yourself.
If that doesn't work, you can try the trick from here; 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 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 the-moonwitch/Cozette#18. Many thanks to all the participants there, especially to to Luflosi, who brought up flipping the allow_bitmapped_fonts flag in their fork, and to 4e554c4c, who made the AUR package.)
Roadmap
Check the CHANGELOG for the latest news!
Here's where Cozette is so far, in the rough order the features are going to be implemented:
- ASCII
- Powerline
- Build scripts to handle exporting
- Box-drawing (mostly)
- Braille
- Cyrillic!
- IPA glyphs!
- APL glyphs (based on the list from APL386)!
- Uiua glyphs!
- BQN glyphs!
- Fullwidth kana!
- Nerdfonts:
- nf-pom-*
- nf-seti-*
- nf-dev-* (partial)
- nf-weather-*
- Glyph map generation (so I don't have to keep
characters.pngup to date) - "True" TTF version
- Windows support
- Full vim-airline and bufferline.nvim support!
- Full ranger_devicons support!
- starship supported out of the box!
- Full powerlevel10k support! (if it doesn't work, try setting
POWERLEVEL9K_MODEtonerdfont-complete) - All glyphs used by maturin and many other CLI tools!
- Charmap including the code points (to make it easier for users to report issues/request additions)
- Codepoints above U+FFFF in vector fonts
- Upscaled hi-dpi variant
- Crossed seven variant!

Recommended alternatives
Cozette is, intentionally, a very small font. If neither the base nor the HiDpi version fit your needs, you might want to look at some other bitmap fonts with extra glyphs. A couple of my favorites are Tamzen and Envypn. You might also find the Tecate/bitmap-fonts repo useful.
Character map
For easy copy-pasting, the character map is provided in text form in img/charmap.txt. If you just want to see how the glyphs look in Cozette, here is a screenshot of it:
Building
If you want to build Cozette yourself, you'll need FontForge and Java. Once you
have that, just clone this repo, open Cozette/Cozette.sfd in FontForge,
and go to File → Generate Fonts....
To run the build scripts I use to prepare releases, first install Python (at least 3.8)
and pipenv. For generating the images, you will also need xorg-mkfontscale
and xterm.
Then, install the dependencies and run build.py fonts:
$ pipenv install
$ pipenv run python build.py fonts
Then install the generated fonts, and run
$ pipenv run python build.py images
Running
$ pipenv run python build.py changelog
will output the changelog between your local version and the last tag.
Contributors
Massive thanks to ym1234 for helping me figure out how to make the font tables behave nicely.
Cozette includes contributions from:
- autumn
- cpkio
- dariof4
- klinegareth
- sungodmoth
- yoshiyoshyosh
- bluetoad07
- PhMajerus
- theridane
- supersurviveur
- breitnw
- estradiol enantate
License & Acknowledgements
Cozette is licensed MIT 💜
Cozette's builds use bdfscale by philj56, Bits'N'Picas by Kreative Software.
[tmux]:



