Compare commits
59 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4b5ef8ceb5 | ||
|
|
69c35f3095 | ||
|
|
e80ce0ccce | ||
|
|
18f515d22a | ||
|
|
6deef2bcb3 | ||
|
|
4fbf07c1d1 | ||
|
|
295c8cc6ef | ||
|
|
3c90843717 | ||
|
|
7e028def6d | ||
|
|
1220fc2457 | ||
|
|
18fe183199 | ||
|
|
7a6c118fce | ||
|
|
930933f4c7 | ||
|
|
ac0c59cca1 | ||
|
|
e3b3693566 | ||
|
|
3ffa429a9e | ||
|
|
24ccfd2458 | ||
|
|
9138e77400 | ||
|
|
5e3e7c4d1c | ||
|
|
fa3d37b491 | ||
|
|
cd8af2a28f | ||
|
|
bb487734ca | ||
|
|
3f698f683a | ||
|
|
0f39e4fd94 | ||
|
|
29adf9463e | ||
|
|
efc74f9d15 | ||
|
|
6fa63d06ba | ||
|
|
60204ed5df | ||
|
|
cf3e7ac704 | ||
|
|
36ed9972b7 | ||
|
|
4839790002 | ||
|
|
f48cc5ec42 | ||
|
|
9977727d3c | ||
|
|
3b7b6c2a35 | ||
|
|
aedd9bb10e | ||
|
|
1b12c8376d | ||
|
|
aa09d759aa | ||
|
|
2a0396d8c2 | ||
|
|
5aa0947030 | ||
|
|
7c2f726d36 | ||
|
|
8346f54cdd | ||
|
|
4a81de064c | ||
|
|
69f56b6d99 | ||
|
|
074d39b279 | ||
|
|
29a7178673 | ||
|
|
dd4d03a514 | ||
|
|
66293f6080 | ||
|
|
105e6b0efd | ||
|
|
53b1807d52 | ||
|
|
a87ccf8e1a | ||
|
|
951c8c67cc | ||
|
|
79bb9e1d59 | ||
|
|
9c88efd387 | ||
|
|
f22ceeaf27 | ||
|
|
9d66a8ca48 | ||
|
|
4d8b1edc0d | ||
|
|
fc10c68d3f | ||
|
|
45156ab90b | ||
|
|
643c88dea7 |
32779
Myna-Bold.sfd
Normal file
32427
Myna-Regular.sfd
Normal file
97
OFL.txt
Normal file
@@ -0,0 +1,97 @@
|
||||
Copyright (c) <dates>, <Copyright Holder> (<URL|email>),
|
||||
with Reserved Font Name <Reserved Font Name>.
|
||||
Copyright (c) <dates>, <additional Copyright Holder> (<URL|email>),
|
||||
with Reserved Font Name <additional Reserved Font Name>.
|
||||
Copyright (c) <dates>, <additional Copyright Holder> (<URL|email>).
|
||||
|
||||
This Font Software is licensed under the SIL Open Font License, Version 1.1.
|
||||
This license is copied below, and is also available with a FAQ at:
|
||||
https://openfontlicense.org
|
||||
|
||||
|
||||
-----------------------------------------------------------
|
||||
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
|
||||
-----------------------------------------------------------
|
||||
|
||||
PREAMBLE
|
||||
The goals of the Open Font License (OFL) are to stimulate worldwide
|
||||
development of collaborative font projects, to support the font creation
|
||||
efforts of academic and linguistic communities, and to provide a free and
|
||||
open framework in which fonts may be shared and improved in partnership
|
||||
with others.
|
||||
|
||||
The OFL allows the licensed fonts to be used, studied, modified and
|
||||
redistributed freely as long as they are not sold by themselves. The
|
||||
fonts, including any derivative works, can be bundled, embedded,
|
||||
redistributed and/or sold with any software provided that any reserved
|
||||
names are not used by derivative works. The fonts and derivatives,
|
||||
however, cannot be released under any other type of license. The
|
||||
requirement for fonts to remain under this license does not apply
|
||||
to any document created using the fonts or their derivatives.
|
||||
|
||||
DEFINITIONS
|
||||
"Font Software" refers to the set of files released by the Copyright
|
||||
Holder(s) under this license and clearly marked as such. This may
|
||||
include source files, build scripts and documentation.
|
||||
|
||||
"Reserved Font Name" refers to any names specified as such after the
|
||||
copyright statement(s).
|
||||
|
||||
"Original Version" refers to the collection of Font Software components as
|
||||
distributed by the Copyright Holder(s).
|
||||
|
||||
"Modified Version" refers to any derivative made by adding to, deleting,
|
||||
or substituting -- in part or in whole -- any of the components of the
|
||||
Original Version, by changing formats or by porting the Font Software to a
|
||||
new environment.
|
||||
|
||||
"Author" refers to any designer, engineer, programmer, technical
|
||||
writer or other person who contributed to the Font Software.
|
||||
|
||||
PERMISSION & CONDITIONS
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of the Font Software, to use, study, copy, merge, embed, modify,
|
||||
redistribute, and sell modified and unmodified copies of the Font
|
||||
Software, subject to the following conditions:
|
||||
|
||||
1) Neither the Font Software nor any of its individual components,
|
||||
in Original or Modified Versions, may be sold by itself.
|
||||
|
||||
2) Original or Modified Versions of the Font Software may be bundled,
|
||||
redistributed and/or sold with any software, provided that each copy
|
||||
contains the above copyright notice and this license. These can be
|
||||
included either as stand-alone text files, human-readable headers or
|
||||
in the appropriate machine-readable metadata fields within text or
|
||||
binary files as long as those fields can be easily viewed by the user.
|
||||
|
||||
3) No Modified Version of the Font Software may use the Reserved Font
|
||||
Name(s) unless explicit written permission is granted by the corresponding
|
||||
Copyright Holder. This restriction only applies to the primary font name as
|
||||
presented to the users.
|
||||
|
||||
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
|
||||
Software shall not be used to promote, endorse or advertise any
|
||||
Modified Version, except to acknowledge the contribution(s) of the
|
||||
Copyright Holder(s) and the Author(s) or with their explicit written
|
||||
permission.
|
||||
|
||||
5) The Font Software, modified or unmodified, in part or in whole,
|
||||
must be distributed entirely under this license, and must not be
|
||||
distributed under any other license. The requirement for fonts to
|
||||
remain under this license does not apply to any document created
|
||||
using the Font Software.
|
||||
|
||||
TERMINATION
|
||||
This license becomes null and void if any of the above conditions are
|
||||
not met.
|
||||
|
||||
DISCLAIMER
|
||||
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
|
||||
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
|
||||
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
|
||||
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
|
||||
OTHER DEALINGS IN THE FONT SOFTWARE.
|
||||
72
README.md
@@ -1,67 +1,49 @@
|
||||

|
||||

|
||||
<picture>
|
||||
<source media="(prefers-color-scheme: dark)" srcset="images/banner_dark.png">
|
||||
<source media="(prefers-color-scheme: light)" srcset="images/banner_light.png">
|
||||
<img alt="Myna" src="images/banner_light.png">
|
||||
</picture>
|
||||
|
||||

|
||||

|
||||
|
||||
[Myna v2.0.0 Beta](https://github.com/sayyadirfanali/Myna/releases/tag/v2.0.0.0-beta) is released. It features more bold and (faux) italic variants and even supports APL characters. Please download it and report issues for v2.0.0 full release.
|
||||
|
||||
Do you ever feel like your font treats symbols as second-class glyphs? Are you frustrated that `->` looks nothing like an arrow, and `$`, `@`, `%` seem ever mismatched?
|
||||
|
||||
Want to experience the beauty of ligatures without losing the simplicity of ASCII?
|
||||
Want to experience the beauty of ligatures without losing the simplicity of ASCII and getting tangled in the web of ligature-compatible terminal emulators?
|
||||
|
||||
**Myna** (*Gracula religiosa* 🐦⬛) is a monospace font which aims to bring harmony to your editor by treating symbols as first-class glyphs alongside alphanumeric characters.
|
||||
**Myna 🐦⬛** ([_Gracula religiosa_](https://en.wikipedia.org/wiki/Common\_hill\_myna)) is a monospace font which aims to bring harmony to your editor by treating symbols as first-class glyphs alongside alphanumeric characters.
|
||||
|
||||
NB: Please don't mind the colorscheme in the banner above. I just picked it because it highlighted the most colors in Ray.so. Since the banner contains multiple languages, no single colorscheme could properly highlight them in one image.
|
||||
|
||||
## Why Myna?
|
||||
Myna was borne out of a need to scratch a persistent typographical itch. While I've tried many otherwise well-crafted monospace fonts, I always found myself wanting to tweak a glyph here or adjust a shape there. After developing Myna and using it almost exclusively in my professional and personal work, I'm sharing it as a small contribution to the wonderful community of monospace typography enthusiasts.
|
||||
Myna was born of a need to scratch a persistent typographical itch. While I've tried many otherwise well-crafted monospace fonts, I always found myself wanting to tweak a glyph here or adjust a shape there. After developing Myna and using it almost exclusively in my professional and personal work, I'm sharing it as a small contribution to the wonderful community of monospace typography enthusiasts.
|
||||
|
||||
Here are a few of its attractive features that might make it your next favourite monospace font:
|
||||
- **Symbol-First Design**: clear emphasis on ASCII symbols which are ubiquitous in programming languages
|
||||
- **Near-Perfect Alignment**: multi-character symbols like `->`, `>>=`, `=~`, `::` align seamlessly
|
||||
- **Balanced Weight**: symbols have just the right visual weight against your code
|
||||
- **Minimalist Forms**: geometric shapes for quotes and commas
|
||||
- **Language-Aware Design**: clean sigils for Perl + elegant operators for Haskell + clear symbols for Rust (and even APL)
|
||||
- **Clear Distinction**: no more confusing `1 l I |` or `0 O o`
|
||||
- **Language-Aware Design**: clean sigils for Perl + elegant operators for Haskell + clear symbols for C
|
||||
|
||||
NB: Myna is designed to be a simple font. The current release is a single weight without ligatures, though future updates may expand its features if demand arises. It does work out nicely with synthesised bold generated by fontconfig and pango on Linux.
|
||||
|
||||
## Showcase
|
||||
<picture>
|
||||
<source media="(prefers-color-scheme: dark)" srcset="images/Perl_dark.png">
|
||||
<source media="(prefers-color-scheme: light)" srcset="images/Perl_light.png">
|
||||
<img alt="Perl" src="https://example.com/Perl_light.png">
|
||||
</picture>
|
||||
Below is a comparison of Myna (colored line at bottom) with other popular monospace fonts (the actual list can be found in the script `drawcomp`). It highlights Myna's philosophy of uniform and aligned glyph design so that symbols look natural and editing remains fun.
|
||||
|
||||
<picture>
|
||||
<source media="(prefers-color-scheme: dark)" srcset="images/Haskell_dark.png">
|
||||
<source media="(prefers-color-scheme: light)" srcset="images/Haskell_light.png">
|
||||
<img alt="Haskell" src="https://example.com/Haskell_light.png">
|
||||
<source media="(prefers-color-scheme: dark)" srcset="images/comp_dark.png">
|
||||
<source media="(prefers-color-scheme: light)" srcset="images/comp_light.png">
|
||||
<img alt="Myna" src="images/comp_light.png">
|
||||
</picture>
|
||||
|
||||
<picture>
|
||||
<source media="(prefers-color-scheme: dark)" srcset="images/C_dark.png">
|
||||
<source media="(prefers-color-scheme: light)" srcset="images/C_light.png">
|
||||
<img alt="C" src="https://example.com/C_light.png">
|
||||
</picture>
|
||||
|
||||
|
||||
| Language | Light | Dark |
|
||||
|----------|-------|------|
|
||||
| **Perl** | <img src="images/Perl_light.png" width="500"> | <img src="images/Perl_dark.png" width="500"> |
|
||||
| **Haskell** | <img src="images/Haskell_light.png" width="500"> | <img src="images/Haskell_dark.png" width="500"> |
|
||||
| **C** | <img src="images/C_light.png" width="500"> | <img src="images/C_dark.png" width="500"> |
|
||||
| **Bash** | <img src="images/Bash_light.png" width="500"> | <img src="images/Bash_dark.png" width="500"> |
|
||||
| **Clojure** | <img src="images/Clojure_light.png" width="500"> | <img src="images/Clojure_dark.png" width="500"> |
|
||||
| **Erlang** | <img src="images/Erlang_light.png" width="500"> | <img src="images/Erlang_dark.png" width="500"> |
|
||||
| **OCaml** | <img src="images/OCaml_light.png" width="500"> | <img src="images/OCaml_dark.png" width="500"> |
|
||||
| **Ruby** | <img src="images/Ruby_light.png" width="500"> | <img src="images/Ruby_dark.png" width="500"> |
|
||||
| **Rust** | <img src="images/Rust_light.png" width="500"> | <img src="images/Rust_dark.png" width="500"> |
|
||||
| **LaTeX** | <img src="images/LaTeX_light.png" width="500"> | <img src="images/LaTeX_dark.png" width="500"> |
|
||||
| **HTML** | <img src="images/HTML_light.png" width="500"> | <img src="images/HTML_dark.png" width="500"> |
|
||||
| **SQL** | <img src="images/SQL_light.png" width="500"> | <img src="images/SQL_dark.png" width="500"> |
|
||||
|
||||
## Installation
|
||||
Myna features Regular, Medium, Bold weight with faux Italic variants for all of them. In order to download them, please download the released zip files or clone the repo and then copy the relevant fonts from the folder `fonts/` into the font directory in your OS.
|
||||
|
||||
### Linux
|
||||
```bash
|
||||
git clone https://github.com/sayyadirfanali/Myna.git
|
||||
cd Myna
|
||||
cp Myna.otf ~/.local/share/fonts/
|
||||
cd ./Myna/fonts
|
||||
cp *.otf ~/.local/share/fonts/
|
||||
fc-cache -v
|
||||
```
|
||||
|
||||
@@ -76,6 +58,12 @@ cp Myna.otf ~/Library/Fonts/
|
||||
1. Download the release
|
||||
2. Right-click `Myna.otf` and select "Install for all users"
|
||||
|
||||
NB: I've added a one-liner script `mknerdfont` to attach NerdFont glyphs into any variant. I've also released the Regular variant with NerdFont. You can use to script to run on any variant/weight to get a NerdFont-compatible version. You'd need [fontpatcher](https://github.com/ryanoasis/nerd-fonts?tab=readme-ov-file#font-patcher) installed for `mknerdfont` to work.
|
||||
|
||||
NB: I've also added a script `changeheight.py` to increase/decrease vertical spacing (in response to #9). You can use it if you want more vertical compactness in your terminal.
|
||||
|
||||
NB: The latest release (v2.0.0) features contextual variants for a few glyph pairs (eg, `|>`, `:=`) in response to #1 and #6. You'd need a terminal which can work with font features to be able to display them.
|
||||
|
||||
## License
|
||||
SIL Open Font License, Version 1.1
|
||||
|
||||
@@ -87,6 +75,6 @@ Code banner and illustrations were produced using ImageMagick and [Ray.so](https
|
||||
## Future
|
||||
Myna is designed to be used universally in every kind of terminal and editor. I've tried to include a reasonable subset of non-ASCII glyphs (mostly geometrical and mathematical characters). However, I'm considering expanding it based on community interest and would welcome contributions in these areas:
|
||||
- Bug Reports: spacing and kerning issues, rendering problems, unavailable/incorrect glyphs
|
||||
- Feature Requests: Suggest new glyphs or features via GitHub Issues
|
||||
- Feature Requests: suggest new glyphs or features via GitHub Issues
|
||||
|
||||
Please feel free to open issues and also contact me at irfan@irfanali.org.
|
||||
|
||||
26
README.txt
Normal file
@@ -0,0 +1,26 @@
|
||||
# Myna
|
||||
|
||||
## Description
|
||||
This package contains the Myna font in several variants: Regular and Bold (and faux Italic for both of them)
|
||||
|
||||
## Installation
|
||||
### Linux
|
||||
```bash
|
||||
git clone https://github.com/sayyadirfanali/Myna.git
|
||||
cd ./Myna/fonts
|
||||
cp *.otf ~/.local/share/fonts/
|
||||
fc-cache -v
|
||||
```
|
||||
|
||||
### macOS
|
||||
```bash
|
||||
git clone https://github.com/sayyadirfanali/Myna.git
|
||||
cd Myna
|
||||
cp Myna.otf ~/Library/Fonts/
|
||||
```
|
||||
|
||||
### Windows
|
||||
1. Download the release
|
||||
2. Right-click `Myna.otf` and select "Install for all users"
|
||||
|
||||
Format notes: OTF for OpenType features, TTF for broader compatibility.
|
||||
18
altl.py
Normal file
@@ -0,0 +1,18 @@
|
||||
import fontforge
|
||||
import math
|
||||
import psMat
|
||||
|
||||
def mkFont(name, weight):
|
||||
font = fontforge.open(name + ".sfd")
|
||||
|
||||
font.selection.select("alt_l")
|
||||
font.copy()
|
||||
font.selection.select("l")
|
||||
font.paste()
|
||||
|
||||
font.generate(name + ".otf")
|
||||
|
||||
font.close()
|
||||
|
||||
mkFont("Myna-Regular", "Regular")
|
||||
mkFont("Myna-Bold", "Bold")
|
||||
49
build.py
Normal file
@@ -0,0 +1,49 @@
|
||||
import fontforge
|
||||
import math
|
||||
import psMat
|
||||
|
||||
def mkFont(name, weight):
|
||||
font = fontforge.open(name + ".sfd")
|
||||
font.mergeFeature("features.fea")
|
||||
font.generate("./fonts/" + name + ".otf")
|
||||
font.generate("./fonts/" + name + ".ttf")
|
||||
|
||||
font.selection.all()
|
||||
angle = 12
|
||||
font.transform(psMat.skew(angle * math.pi / 180))
|
||||
|
||||
font.familyname = "Myna"
|
||||
font.weight = weight
|
||||
font.italicangle = -angle
|
||||
|
||||
if weight == "Bold":
|
||||
subfamily = "Bold Italic"
|
||||
# 0x01 (Italic) + 0x20 (Bold) = 0x21
|
||||
font.os2_stylemap = 0x21
|
||||
full_name = "Myna Bold Oblique"
|
||||
else:
|
||||
subfamily = "Italic"
|
||||
font.os2_stylemap = 0x01
|
||||
full_name = "Myna Regular Oblique"
|
||||
|
||||
font.fullname = full_name
|
||||
font.fontname = full_name.replace(" ", "")
|
||||
|
||||
# This is the critical part for app recognition:
|
||||
font.appendSFNTName("English (US)", "SubFamily", subfamily)
|
||||
|
||||
# Preferred Style
|
||||
# font.appendSFNTName("English (US)", "Preferred Style", weight + " Oblique")
|
||||
|
||||
# 7th is Letterform where 9 = Oblique and 2 = Italic
|
||||
panoseL = list(font.os2_panose)
|
||||
panoseL[7] = 9
|
||||
font.os2_panose = tuple(panoseL)
|
||||
|
||||
font.generate("./fonts/" + name + "Oblique.otf")
|
||||
font.generate("./fonts/" + name + "Oblique.ttf")
|
||||
font.close()
|
||||
|
||||
|
||||
mkFont("Myna-Regular", "Regular")
|
||||
mkFont("Myna-Bold", "Bold")
|
||||
27
changeheight.py
Normal file
@@ -0,0 +1,27 @@
|
||||
import fontforge
|
||||
|
||||
font = fontforge.open("Myna-Regular.sfd")
|
||||
|
||||
ascent = font.ascent
|
||||
descent = font.descent
|
||||
|
||||
RATIO = 0.9
|
||||
|
||||
# general
|
||||
font.ascent = int(font.ascent * RATIO)
|
||||
font.descent = int(font.descent * RATIO)
|
||||
|
||||
# hhea
|
||||
font.hhea_ascent = int(font.hhea_ascent * RATIO)
|
||||
font.hhea_descent = int(font.hhea_descent * RATIO)
|
||||
|
||||
# OS/2 typo
|
||||
font.os2_typoascent = font.hhea_ascent
|
||||
font.os2_typodescent = font.hhea_descent
|
||||
|
||||
# OS/2 win
|
||||
font.os2_winascent = ascent # can increase or decrease this if clipped
|
||||
font.os2_windescent = descent
|
||||
|
||||
font.save("Myna-Regular.sfd")
|
||||
font.close()
|
||||
53
drawcomp
Executable file
@@ -0,0 +1,53 @@
|
||||
#!/usr/bin/perl
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
my $symbols = [
|
||||
{ "pos" => 200, "sym" => "->" },
|
||||
{ "pos" => 400, "sym" => "=>" },
|
||||
{ "pos" => 600, "sym" => "~>" },
|
||||
{ "pos" => 800, "sym" => "<>" },
|
||||
{ "pos" => 1000, "sym" => "=~" },
|
||||
{ "pos" => 1200, "sym" => "<\$>" },
|
||||
{ "pos" => 1400, "sym" => "<*>" },
|
||||
{ "pos" => 1600, "sym" => ">>=" },
|
||||
];
|
||||
|
||||
my $fonts = [
|
||||
{ "pos" => 100, "name" => "Cascadia-Mono-Regular" },
|
||||
{ "pos" => 200, "name" => "Source-Code-Pro-Regular" },
|
||||
{ "pos" => 300, "name" => "Dejavu-Sans-Mono" },
|
||||
{ "pos" => 400, "name" => "JetBrains-Mono-Regular" },
|
||||
{ "pos" => 500, "name" => "Iosevka" },
|
||||
{ "pos" => 600, "name" => "Ubuntu-Mono" },
|
||||
{ "pos" => 700, "name" => "Fira-Mono-Regular" },
|
||||
{ "pos" => 800, "name" => "Liberation-Mono" },
|
||||
{ "pos" => 900, "name" => "Roboto-Mono-Regular" }
|
||||
];
|
||||
|
||||
sub f {
|
||||
my ($x, $s, $c, $a) = @_;
|
||||
return join(" ",
|
||||
"-pointsize 64",
|
||||
"-fill " . $c . " ",
|
||||
(map { "-font \"$_->{name}\" -annotate +$x+$_->{pos} \"$s\"" } $fonts->@*),
|
||||
"-fill " . $a . " -font \"Myna-Regular\" -annotate +@{[$x + 10]}+1000 \"$s\"",
|
||||
);
|
||||
}
|
||||
|
||||
system (join(" ",
|
||||
"magick",
|
||||
"-size 2000x1200 xc:black",
|
||||
"-gravity northwest",
|
||||
join (' ', map { f($_->{pos}, $_->{sym}, "white", "cyan") } $symbols->@*),
|
||||
quotemeta($ARGV[0])
|
||||
));
|
||||
|
||||
system (join(" ",
|
||||
"magick",
|
||||
"-size 2000x1200 xc:white",
|
||||
"-gravity northwest",
|
||||
join (' ', map { f($_->{pos}, $_->{sym}, "black", "crimson") } $symbols->@*),
|
||||
quotemeta($ARGV[1])
|
||||
));
|
||||
14
features.fea
Normal file
@@ -0,0 +1,14 @@
|
||||
languagesystem DFLT dflt;
|
||||
languagesystem latn dflt;
|
||||
|
||||
feature kern {
|
||||
pos uni003A <0 100 0 0> uni002A;
|
||||
pos uni003A <0 100 0 0> uni002D;
|
||||
pos uni003A <0 100 0 0> uni003D;
|
||||
} kern;
|
||||
|
||||
feature calt {
|
||||
ignore sub uni003C uni007C' uni003E;
|
||||
|
||||
sub uni007C' uni003E by alt_bar;
|
||||
} calt;
|
||||
BIN
fonts/Myna-Bold.otf
Normal file
BIN
fonts/Myna-Bold.ttf
Normal file
BIN
fonts/Myna-BoldOblique.otf
Normal file
BIN
fonts/Myna-BoldOblique.ttf
Normal file
BIN
fonts/Myna-Regular.otf
Normal file
BIN
fonts/Myna-Regular.ttf
Normal file
BIN
fonts/Myna-RegularOblique.otf
Normal file
BIN
fonts/Myna-RegularOblique.ttf
Normal file
BIN
fonts/MynaNerdFont-Regular.otf
Normal file
|
Before Width: | Height: | Size: 153 KiB |
|
Before Width: | Height: | Size: 150 KiB |
|
Before Width: | Height: | Size: 210 KiB |
|
Before Width: | Height: | Size: 207 KiB |
|
Before Width: | Height: | Size: 215 KiB |
|
Before Width: | Height: | Size: 212 KiB |
|
Before Width: | Height: | Size: 164 KiB |
|
Before Width: | Height: | Size: 163 KiB |
|
Before Width: | Height: | Size: 214 KiB |
|
Before Width: | Height: | Size: 211 KiB |
|
Before Width: | Height: | Size: 159 KiB |
|
Before Width: | Height: | Size: 157 KiB |
|
Before Width: | Height: | Size: 236 KiB |
|
Before Width: | Height: | Size: 225 KiB |
|
Before Width: | Height: | Size: 152 KiB |
|
Before Width: | Height: | Size: 150 KiB |
|
Before Width: | Height: | Size: 212 KiB |
|
Before Width: | Height: | Size: 209 KiB |
|
Before Width: | Height: | Size: 127 KiB |
|
Before Width: | Height: | Size: 125 KiB |
|
Before Width: | Height: | Size: 211 KiB |
|
Before Width: | Height: | Size: 208 KiB |
|
Before Width: | Height: | Size: 130 KiB |
|
Before Width: | Height: | Size: 128 KiB |
BIN
images/banner_dark.png
Normal file
|
After Width: | Height: | Size: 930 KiB |
BIN
images/banner_light.png
Normal file
|
After Width: | Height: | Size: 938 KiB |
BIN
images/comp_dark.png
Normal file
|
After Width: | Height: | Size: 131 KiB |
BIN
images/comp_light.png
Normal file
|
After Width: | Height: | Size: 142 KiB |
BIN
images/hero.png
|
Before Width: | Height: | Size: 305 KiB |
1
mknerdfont
Executable file
@@ -0,0 +1 @@
|
||||
fontforge -script ~/bin/fontpatcher/font-patcher --complete $1 && mv *.otf ./fonts/.
|
||||
19
sample.txt
Normal file
@@ -0,0 +1,19 @@
|
||||
Myna
|
||||
ABCDEFGHJIKLMNOPQRSTUVWXYZ
|
||||
abcdefghjiklmnopqrstuvwxyz
|
||||
1234567890(){}[]/\<>,.;:`'
|
||||
|
||||
# Perl
|
||||
$_="krjhruaesrltre c a cnP,ohet";$_.=$1,print$2while s/(..)(.)//;print"\n"
|
||||
|
||||
-- Haskell
|
||||
mapM_ print . take 10 . iterate (\n -> if even n then n `div` 2 else 3*n + 1)
|
||||
|
||||
# bash
|
||||
find . -name "*.log" -mtime +30 -exec gzip {} \; | tee audit.txt | wc -l
|
||||
|
||||
// Rust
|
||||
(0..10).map(|x| x*x).filter(|&x| x%2==0).collect::<Vec<_>>()
|
||||
|
||||
⍝ APL
|
||||
life ← { ⊃1 ⍵ ∨.∧ 3 4 = +/ +⌿ ¯1 0 1 ∘.⊖ ¯1 0 1 ⌽¨ ⊂⍵ }
|
||||
@@ -1,21 +0,0 @@
|
||||
offsets=(50)
|
||||
for ((i=1; i<=10; i++)); do
|
||||
offsets+=($((offsets[i - 1] + 150)))
|
||||
done;
|
||||
|
||||
magick \
|
||||
-size 2000x1800 xc:"#0d0d0d" \
|
||||
-font "Myna" \
|
||||
-gravity north \
|
||||
-fill "pink" -pointsize 128 -annotate +0+${offsets[0]} "MYNA" \
|
||||
-fill "yellow" -pointsize 96 -annotate +0+${offsets[1]} "ABCDEFGHIJKLMNOPQRSTUVWXYZ" \
|
||||
-fill "springgreen" -pointsize 96 -annotate +0+${offsets[2]} "abcdefghijklmnopqrstuvwxyz" \
|
||||
-fill "deepskyblue" -pointsize 96 -annotate +0+${offsets[3]} "0 1 2 3 4 5 6 7 8 9" \
|
||||
-fill "hotpink" -pointsize 96 -annotate +0+${offsets[4]} "[] {} () <> | \\\ ? ! #" \
|
||||
-fill "cyan" -pointsize 96 -annotate +0+${offsets[5]} "\` ' \" , . ; : ~ ^ _" \
|
||||
-fill "springgreen" -pointsize 96 -annotate +0+${offsets[6]} "+ - = ++ -- += -= == !=" \
|
||||
-fill "aqua" -pointsize 96 -annotate +0+${offsets[7]} "\$s @a \%h &f *x =~" \
|
||||
-fill "violet" -pointsize 96 -annotate +0+${offsets[8]} ":: -> => <$> >>= ^. \%~" \
|
||||
-fill "coral" -pointsize 96 -annotate +0+${offsets[9]} "$ £ € ¥ ₹ ₽" \
|
||||
-fill "limegreen" -pointsize 96 -annotate +0+${offsets[10]} "0 O o | 1 l I | \` ' \" | Z 2" \
|
||||
$1
|
||||