• Stars
    star
    296
  • Rank 140,464 (Top 3 %)
  • Language
  • License
    Other
  • Created almost 3 years ago
  • Updated about 1 month ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Custom build of Iosevka with different style and metrics than the default.

Iosevka Comfy

IMAGES HERE: https://protesilaos.com/emacs/iosevka-comfy-pictures.

Customised build of the Iosevka typeface, with a consistent rounded style and overrides for almost all individual glyphs in both roman (upright) and italic (slanted) variants.

Principles of the design

Iosevka Comfy optimises for inter-glyph and inter-style consistency within the overarching constraint of usability at small point sizes. The shapes are round and are designed in concert to both impose a predictable rhythm and keep characters distinct from each other.

Roman and italic styles are made to look more consistent than the default upstream Iosevka while retaining their unique features. Unlike the default Iosevka style, the upright glyphs do not have a mixture of straight/blocky and curved or serified characters (special exceptions notwithstanding). While the italics do not have calligraphic tendencies that greatly contrast with their counterparts. The differences within each style set and between the styles themselves are more nuanced. The intent is to make everything feel part of the same aesthetic. Distinctions are drawn on the premise of contributing to the demands of the design in light of usability, without ever calling attention to themselves (as opposed to sporadic calligraphic glyphs amid an otherwise austere presentation which seem to say "look how pretty I am!").

To achieve consistency between roman and italic styles we remove elements of roundedness in the latter's glyphs to make them look a bit sturdier. Otherwise they would feel more rounded than their roman counterparts given the added slant. We do not want that added implicit emphasis of extra roundedness because the slant is already sufficient: to emphasise the emphasis is the kind of exaggeration that Iosevka Comfy strives to eliminate.

Variants

| Family                          | Shapes | Spacing | Style      | Ligatures |
|---------------------------------+--------+---------+------------+-----------|
| Iosevka Comfy                   | Sans   | Compact | Monospaced | Yes       |
| Iosevka Comfy Fixed             | Sans   | Compact | Monospaced | No        |
| Iosevka Comfy Duo               | Sans   | Compact | Duospaced  | Yes       |
|---------------------------------+--------+---------+------------+-----------|
| Iosevka Comfy Motion            | Slab   | Compact | Monospaced | Yes       |
| Iosevka Comfy Motion Fixed      | Slab   | Compact | Monospaced | No        |
| Iosevka Comfy Motion Duo        | Slab   | Compact | Duospaced  | Yes       |
|---------------------------------+--------+---------+------------+-----------|
| Iosevka Comfy Wide              | Sans   | Wide    | Monospaced | Yes       |
| Iosevka Comfy Wide Fixed        | Sans   | Wide    | Monospaced | No        |
| Iosevka Comfy Wide Duo          | Sans   | Wide    | Duospaced  | Yes       |
|---------------------------------+--------+---------+------------+-----------|
| Iosevka Comfy Wide Motion       | Slab   | Wide    | Monospaced | Yes       |
| Iosevka Comfy Wide Motion Fixed | Slab   | Wide    | Monospaced | No        |
| Iosevka Comfy Wide Motion Duo   | Slab   | Wide    | Duospaced  | Yes       |

Iosevka Comfy comes in four sets of three: two sans-serif and two serif supersets. The triplets in each set follow the naming scheme NAME{,-fixed,-duo}. The base name is monospaced and supports ligatures. The "fixed" one is strictly monospaced so as to work with all terminal emulators: it does not support ligatures or any wider glyphs. And the "duo" is quasi-proportionately spaced, while supporting ligatures.

Here "quasi-proportional" means that certain glyphs are allowed to occupy their natural width, instead of being strictly monospaced, while other remain monospaced. This combination results in a style that feels like fixed spacing but reads like variable spacing.

  1. The compact, sans-serif set:

    • iosevka-comfy is monospaced and supports ligatures. Apart from ligatures, it allows certain special glyphs, such as arrows, to occupy more than one block.

    • iosevka-comfy-fixed is like iosevka-comfy albeit strictly monospaced and thus does not support ligatures. All glyphs are exactly the same width. Use this if you prefer it or if your application (e.g. terminal emulator) does not recognise iosevka-comfy as a monospaced font.

    • iosevka-comfy-duo is quasi-proportional and supports ligatures. The naturally narrow glyphs, such as i, are allowed to occupy their natural width instead of one space.

  2. The compact, serif set:

    • iosevka-comfy-motion is monospaced and supports ligatures. It is like iosevka-comfy but with lots of small tweaks that add serifs and tailed ends to relevant glyphs. Put simply, it is the serified counterpart of iosevka-comfy.

    • iosevka-comfy-motion-fixed is the serif equivalent of the aforementioned iosevka-comfy-fixed.

    • iosevka-comfy-motion-duo is the serif equivalent of iosevka-comfy-duo.

  3. The wide, sans-serif set:

    • iosevka-comfy-wide is the same as iosevka-comfy except it is noticeably wider. It also looks taller than iosevka-comfy even though both variants fit the same number of lines on a screen.

    • iosevka-comfy-wide-fixed is the "wide" counterpart of the iosevka-comfy-fixed family.

    • iosevka-comfy-wide-duo is the "wide" counterpart of the iosevka-comfy-duo family.

  4. The wide, serif set:

    • iosevka-comfy-wide-motion is the same as iosevka-comfy-motion except it is noticeably wider. It also looks taller than iosevka-comfy-motion even though both variants fit the same number of lines on a screen.

    • iosevka-comfy-wide-motion-fixed is the "wide" counterpart of the iosevka-comfy-motion-fixed family.

    • iosevka-comfy-wide-motion-duo is the "wide" counterpart of the iosevka-comfy-motion-duo family.

All fonts have upright and slanted variants and are available in the following weights:

| Name      | Code |
|-----------+------|
| light     |  300 |
| semilight |  350 |
| regular   |  400 |
| medium    |  500 |
| semibold  |  600 |
| bold      |  700 |
| extrabold |  800 |

Install on GNU/Linux

Unless you have some exotic system, in which case you know what you are doing, you can install fonts for your local user by copying the .ttf files or their directories in ~/.local/share/fonts/. For system-wide installation, place them in /usr/share/fonts/.

Depending on your system, you may need to delete the ttf or ttf-unhinted builds. Though this is not strictly necessary, as the system knows which one to pick.

When in doubt, install locally.

Perform a shallow clone of this repository to speed things up:

git clone --depth 1 https://git.sr.ht/~protesilaos/iosevka-comfy

Build information

Iosevka Comfy is configured in accordance with the documentation of the upstream project. This practically means that (i) we clone the official repo, (ii) define our private-build-plans.toml at its root, (iii) install the npm dependencies, and (iv) build the .ttf files with something like the following for each variant (run from the root of the project):

npm run build -- ttf::iosevka-comfy

Or this loop:

for i in iosevka-comfy{,-motion,-wide,-wide-motion}{,-fixed,-duo} ; do npm run build -- ttf::$i ; done

The last update to Iosevka Comfy was done on 2023-09-30 using upstream commit f6e57fbf0 (post v27.0.2).

Each file is provided as-is in the hope that it may prove useful, but is otherwise intended only for my private use.

More Repositories

1

modus-themes

Highly accessible themes for GNU Emacs, conforming with the highest standard for colour contrast between background and foreground values (WCAG AAA).
Emacs Lisp
570
star
2

denote

Simple notes for Emacs with an efficient file-naming scheme
Emacs Lisp
529
star
3

ef-themes

Colourful and legible themes for GNU Emacs
Emacs Lisp
318
star
4

dotfiles

Configuration files for Emacs and some other programs. Running on Arch Linux. Managed with GNU Stow.
Emacs Lisp
182
star
5

tempus-themes

[Mirror] Tempus is a collection of themes for Vim, text editors, and terminal emulators that are compliant at the very least with the WCAG AA accessibility standard for colour contrast
Vim Script
74
star
6

pulsar

Emacs package to pulse the current line after running select functions.
Emacs Lisp
73
star
7

spacious-padding

Increase the padding/spacing of GNU Emacs frames and windows.
Emacs Lisp
67
star
8

fontaine

Set Emacs font configurations using presets
Emacs Lisp
67
star
9

dired-preview

Automatically preview file at point in Emacs Dired.
Emacs Lisp
56
star
10

consult-denote

Use Consult in tandem with Denote
Emacs Lisp
42
star
11

mct

Enhancements for the default minibuffer completion UI of Emacs.
Emacs Lisp
36
star
12

logos

A simple "focus mode" which can be applied to any buffer for reading, writing, or even doing a presentation.
Emacs Lisp
30
star
13

beframe

Isolate Emacs buffers per frame
Emacs Lisp
30
star
14

lin

Lin is a stylistic enhancement for Emacs’ built-in hl-line-mode. It remaps the hl-line face (or equivalent) buffer-locally to a style that is optimal for major modes where line selection is the primary mode of interaction.
Emacs Lisp
27
star
15

substitute

Efficiently replace targets in the Emacs buffer or context
Emacs Lisp
26
star
16

prot16

Colour schemes mainly for highlighting code syntax. Each theme uses a 16-colour palette. It comes in light and dark variants.
Vim Script
26
star
17

tmr

Emacs package to set timers using a convenient notation
Emacs Lisp
25
star
18

standard-themes

Like the default GNU Emacs theme but more consistent
Emacs Lisp
22
star
19

show-font

Show font features in an Emacs buffer
Emacs Lisp
21
star
20

agitate

Extras for diff-mode, vc-git, log-edit, log-view
Emacs Lisp
11
star
21

research

Run shell searches and store them reproducibly in Emacs buffers
Emacs Lisp
10
star
22

mandoura

Use MPV to play media files via Dired in GNU Emacs. 🪈🎶
Emacs Lisp
10
star
23

beginner-emacs

Beginner Emacs is a highly opinionated respin of my dotemacs intended for non-technical users such as my neighbours and friends whom I intend to support in person. NOT FOR GENERAL USE (not yet, anyway).
Emacs Lisp
10
star
24

altcaps

Apply alternating letter casing to convey sarcasm or mockery
Emacs Lisp
9
star
25

prot16-vim

Vim ports of the Prot16 collection of colour schemes.
Vim Script
8
star
26

emacs-arch-linux-pkgbuild

My custom Arch Linux PKGBUILD of the Emacs development target
Shell
8
star
27

prot16-xfce4-terminal

Ports of the Prot16 collection of colour schemes for the excellent Xfce4 terminal emulator
Shell
8
star
28

sxhkdrc-mode

Emacs major mode for editing sxhkdrc files (Simple X Hot Key Daemon)
Emacs Lisp
7
star
29

cursory

Manage Emacs cursor styles using presets
Emacs Lisp
6
star
30

sonho-light-syntax

Medium-to-high contrast theme for the Atom editor. Relaxed and playful.
CSS
5
star
31

notmuch-indicator

Add notmuch count to the Emacs global-mode-string (mode line)
Emacs Lisp
5
star
32

tempus-themes-vim

[Mirror] Tempus is a collection of themes for Vim, text editors, and terminal emulators that are compliant at the very least with the WCAG AA accessibility standard for colour contrast. This repo contains only the Vim files.
Vim Script
5
star
33

ficus-light-syntax

High contrast theme for the Atom text editor. Inspired by figs.
CSS
4
star
34

ficus-dark-syntax

High contrast theme. Inspired by figs.
CSS
3
star
35

practice-js

Just some JavaScript I am writing for didactic purposes 🔨
JavaScript
3
star
36

invtr

INVTR or "Inventory" or else "INVTR Needn't Vindicate Thorough Rationalists" is a toy of an inventory management setup that handles the creation of entries and the recording of data within them. It extends another experimental package of mine: USLS.
Emacs Lisp
3
star
37

prot16-generator

A nimble tool to automate the process of exporting the Prot16 colour schemes to a variety of applications and terminals.
Shell
2
star
38

my-website

Source code of https://protesilaos.com. Built with Jekyll since 2016.
HTML
2
star
39

tempus-themes-gtksourceview3

DEPRECATION NOTICE — MOVED TO GITLAB. Tempus themes for GTK3 syntax highlighting (used in text editors such Gedit, Pluma, Xed)
2
star
40

qmk

C
2
star
41

usls

[Mirror] 'usls', else the "Unassuming Sidenotes of Little Significance" (USLS), is an Emacs library that streamlines the task of storing notes of arbitrary length in a flat directory or directory tree, based on a strict file naming convention.
Emacs Lisp
1
star
42

tempus-themes-tilix

DEPRECATION NOTICE — MOVED TO GITLAB. Tempus themes for the Tilix terminal emulator
1
star
43

magus-light-syntax

A medium contrast theme for the Atom text editor.
CSS
1
star
44

ocarina-light-syntax

Medium contrast theme. Inspired by The Legend of Zelda.
CSS
1
star
45

.github

1
star
46

prot16-atom-index

A list with links to all the Prot16 themes for the Atom text editor.
Shell
1
star
47

ocarina-dark-syntax

Medium contrast theme. Inspired by The Legend of Zelda.
CSS
1
star
48

seabed-light-syntax

Low contrast syntax theme with a deep sea feel for the Atom text editor.
CSS
1
star
49

protesilaos.github.io

DEPRECATED: MOVED TO GITLAB --- My website's source code. Doubles as a demo for my various experiments with Jekyll.
HTML
1
star
50

prot-one-dark-ui

EXPERIMENTAL - Fork of the default One dark UI for Atom. Meant to work with my syntax themes.
CSS
1
star
51

tempus-themes-xfce4-terminal

DEPRECATION NOTICE — MOVED TO GITLAB. Tempus is a collection of themes for Vim and terminal emulators that are compliant at the very least with the WCAG AA accessibility standard for colour contrast
1
star
52

tempus-themes-konsole

DEPRECATION NOTICE — MOVED TO GITLAB. Tempus themes for Konsole (default KDE terminal)
1
star
53

bionis-jekyll

DEPRECATED Minimalist, mobile-first theme for Jekyll. Two-column view on desktop.
CSS
1
star
54

hack-font-mod

Modified version of the "Hack" typeface, using alternative glyphs maintained by the upstream project.
1
star
55

oliveira-light-syntax

Colourful medium contrast syntax highlighting theme based on a 16-colour palette.
CSS
1
star
56

blau-dark-syntax

Medium contrast theme for the Atom text editor. Inspired by the colours of FC Barcelona.
CSS
1
star
57

oliveira-dark-syntax

Colourful medium contrast syntax highlighting theme based on a 16-colour palette.
CSS
1
star
58

bionis-light-syntax

High contrast syntax theme for the Atom editor.
CSS
1
star
59

equinox-dark-syntax

Medium-to-high contrast theme for the Atom text editor. Hints towards the blue side of the spectrum.
CSS
1
star
60

tempus-themes-generator

[Mirror] Tool to build Tempus themes on demand. Tempus is a collection of themes for Vim, text editors, and terminal emulators that are compliant at the very least with the WCAG AA accessibility standard for colour contrast.
Shell
1
star
61

symbiosis-light-syntax

Medium-to-high contrast syntax highlighting theme for the Atom editor. Loosely inspired by Metroid.
CSS
1
star
62

tempus-themes-st

DEPRECATION NOTICE — MOVED TO GITLAB. Tempus themes for st (simple terminal) from suckless.org. Tempus is a collection of themes for Vim and terminal emulators that are compliant at the very least with the WCAG AA accessibility standard for colour contrast
C
1
star
63

flowerbed-light-syntax

Medium contrast theme for the Atom text editor.
CSS
1
star
64

prot16-urxvt

Ports of the Prot16 collection of colour schemes for RXVT-Unicode (URXVT)
1
star
65

blau-light-syntax

Medium contrast theme for the Atom text editor. Inspired by the colours of FC Barcelona.
CSS
1
star