galaaz 2.1.10.pre.2 → 2.1.10.pre.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +9 -0
- data/logos/icon-font/README.md +4 -1
- data/logos/icon-font/build_font.py +42 -2
- data/logos/icon-font/galaaz-mark.svg +27 -2
- data/logos/icon-font/preview/glyph_16.png +0 -0
- data/logos/icon-font/preview/glyph_24.png +0 -0
- data/logos/icon-font/preview/glyph_48.png +0 -0
- data/script/omarchy/fonts/galaaz.ttf +0 -0
- data/script/omarchy/omarchy-menu.jsonc +11 -16
- data/version.rb +1 -1
- metadata +4 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 7404dd1ff8d30079d97b72d2b387a2ec61c616d1f16cc4c6a1222536d0db3808
|
|
4
|
+
data.tar.gz: 896ca5ffdc819f1ddf1429865522d73bad2c9228968d7f158f5fcfb2eb2690f4
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 052c2da4bec2e9a6db9cb37d4eaf298d3096c43e3e73f6a84d39ff4c58dafb2aacb0d0ca648825254252d84796d2087c2eb9b59c671f2f2eca195791312bc868
|
|
7
|
+
data.tar.gz: 54221b60df36d3ca285a8c88ceb12d534ab6b56a3684531092f9aee6c7bb85b723c5e52618ca0357c58fe19f2ce70b47529bb0652e87703de5480f91a9f379ac
|
data/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,15 @@
|
|
|
2
2
|
|
|
3
3
|
## Unreleased
|
|
4
4
|
|
|
5
|
+
## 2.1.10.pre.3
|
|
6
|
+
|
|
7
|
+
### Fixed
|
|
8
|
+
|
|
9
|
+
- Omarchy brand icon: hand-drawn R + oversized ruby cutout (no PNG auto-trace);
|
|
10
|
+
build fails if gem hole is too small; preview PNGs at 16/24/48px.
|
|
11
|
+
- Omarchy menu: brand icons use `\uE900` + `iconFont: galaaz`; remove separate
|
|
12
|
+
TeX menu row (Knit installs TinyTeX); remove Knit demo (oh_my).
|
|
13
|
+
|
|
5
14
|
## 2.1.10.pre.2
|
|
6
15
|
|
|
7
16
|
### Fixed
|
data/logos/icon-font/README.md
CHANGED
|
@@ -18,10 +18,13 @@ Rebuild after editing the SVG:
|
|
|
18
18
|
|
|
19
19
|
```bash
|
|
20
20
|
python3 -m venv /tmp/galaaz-font-venv
|
|
21
|
-
/tmp/galaaz-font-venv/bin/pip install fonttools
|
|
21
|
+
/tmp/galaaz-font-venv/bin/pip install fonttools pillow
|
|
22
22
|
/tmp/galaaz-font-venv/bin/python logos/icon-font/build_font.py
|
|
23
23
|
```
|
|
24
24
|
|
|
25
|
+
The build writes `preview/glyph_{16,24,48}.png` and **fails** if the gem
|
|
26
|
+
cutout is too small for menu size. Inspect those PNGs before shipping.
|
|
27
|
+
|
|
25
28
|
`galaaz omarchy` installs the TTF to `~/.local/share/fonts/galaaz/` and the menu
|
|
26
29
|
uses `"iconFont": "galaaz"`. Restart the Omarchy shell after install so Qt
|
|
27
30
|
reloads fonts (`omarchy menu refresh` alone is not enough for a new family).
|
|
@@ -13,12 +13,14 @@ from fontTools.svgLib.path import SVGPath
|
|
|
13
13
|
from fontTools.ttLib import TTFont
|
|
14
14
|
from fontTools.ttLib.tables._g_l_y_f import Glyph as TTGlyph
|
|
15
15
|
from fontTools.ttLib.tables._g_l_y_f import GlyphCoordinates
|
|
16
|
-
from fontTools.ttLib.tables._g_l_y_f import flagOnCurve
|
|
17
16
|
|
|
18
17
|
ROOT = Path(__file__).resolve().parents[2]
|
|
19
18
|
SVG = ROOT / "logos" / "icon-font" / "galaaz-mark.svg"
|
|
20
19
|
OUT = ROOT / "script" / "omarchy" / "fonts" / "galaaz.ttf"
|
|
20
|
+
PREVIEW_DIR = ROOT / "logos" / "icon-font" / "preview"
|
|
21
21
|
CODEPOINT = 0xE900
|
|
22
|
+
# Gem cutout must stay visible at menu size (~16px). Tiny holes collapse.
|
|
23
|
+
MIN_HOLE_AREA_RATIO = 0.04
|
|
22
24
|
|
|
23
25
|
|
|
24
26
|
def extract_path_d(svg_text: str) -> str:
|
|
@@ -69,6 +71,30 @@ def fix_hole_windings(glyph: TTGlyph) -> None:
|
|
|
69
71
|
glyph.numberOfContours = len(new_ends)
|
|
70
72
|
|
|
71
73
|
|
|
74
|
+
def write_previews(ttf_path: Path) -> None:
|
|
75
|
+
"""Write menu-size PNG previews next to the SVG (requires Pillow)."""
|
|
76
|
+
try:
|
|
77
|
+
from PIL import Image, ImageDraw, ImageFont
|
|
78
|
+
except ImportError:
|
|
79
|
+
print(" preview: skipped (pip install pillow)")
|
|
80
|
+
return
|
|
81
|
+
|
|
82
|
+
PREVIEW_DIR.mkdir(parents=True, exist_ok=True)
|
|
83
|
+
for size in (16, 24, 48):
|
|
84
|
+
canvas = max(64, size * 2)
|
|
85
|
+
img = Image.new("RGBA", (canvas, canvas), (30, 30, 30, 255))
|
|
86
|
+
draw = ImageDraw.Draw(img)
|
|
87
|
+
font = ImageFont.truetype(str(ttf_path), size)
|
|
88
|
+
bbox = draw.textbbox((0, 0), "\uE900", font=font)
|
|
89
|
+
w, h = bbox[2] - bbox[0], bbox[3] - bbox[1]
|
|
90
|
+
x = (canvas - w) // 2 - bbox[0]
|
|
91
|
+
y = (canvas - h) // 2 - bbox[1]
|
|
92
|
+
draw.text((x, y), "\uE900", font=font, fill=(230, 230, 230, 255))
|
|
93
|
+
out = PREVIEW_DIR / f"glyph_{size}.png"
|
|
94
|
+
img.save(out)
|
|
95
|
+
print(f" preview: {out}")
|
|
96
|
+
|
|
97
|
+
|
|
72
98
|
def main() -> int:
|
|
73
99
|
d = extract_path_d(SVG.read_text(encoding="utf-8"))
|
|
74
100
|
transform = Transform(1, 0, 0, -1, 0, 1000)
|
|
@@ -103,7 +129,7 @@ def main() -> int:
|
|
|
103
129
|
"uniqueFontIdentifier": "galaaz Regular",
|
|
104
130
|
"fullName": "galaaz Regular",
|
|
105
131
|
"psName": "galaaz-Regular",
|
|
106
|
-
"version": "Version 1.
|
|
132
|
+
"version": "Version 1.001",
|
|
107
133
|
"manufacturer": "Galaaz",
|
|
108
134
|
"description": "Monochrome Galaaz mark for Omarchy menu rows (U+E900).",
|
|
109
135
|
}
|
|
@@ -117,12 +143,26 @@ def main() -> int:
|
|
|
117
143
|
coords = list(g.coordinates)
|
|
118
144
|
ends = list(g.endPtsOfContours)
|
|
119
145
|
start = 0
|
|
146
|
+
areas = []
|
|
120
147
|
for i, end in enumerate(ends):
|
|
121
148
|
pts = coords[start : end + 1]
|
|
122
149
|
a = signed_area(pts)
|
|
150
|
+
areas.append(a)
|
|
123
151
|
print(f" contour {i}: {'CW' if a < 0 else 'CCW'} area={a:.0f}")
|
|
124
152
|
start = end + 1
|
|
153
|
+
if len(areas) < 2:
|
|
154
|
+
raise SystemExit("expected outer + gem hole contours")
|
|
155
|
+
outer = abs(areas[0])
|
|
156
|
+
hole = abs(areas[1])
|
|
157
|
+
ratio = hole / outer if outer else 0.0
|
|
158
|
+
print(f" hole/outer area ratio: {ratio:.3f} (min {MIN_HOLE_AREA_RATIO})")
|
|
159
|
+
if ratio < MIN_HOLE_AREA_RATIO:
|
|
160
|
+
raise SystemExit(
|
|
161
|
+
f"gem cutout too small for menu size ({ratio:.3f} < {MIN_HOLE_AREA_RATIO}); "
|
|
162
|
+
"enlarge the hole in galaaz-mark.svg"
|
|
163
|
+
)
|
|
125
164
|
print(f"wrote {OUT} glyph U+{CODEPOINT:04X} family=galaaz")
|
|
165
|
+
write_previews(OUT)
|
|
126
166
|
return 0
|
|
127
167
|
|
|
128
168
|
|
|
@@ -1,7 +1,32 @@
|
|
|
1
1
|
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
-
<!--
|
|
2
|
+
<!--
|
|
3
|
+
Monochrome Galaaz mark for Omarchy menu (family galaaz, U+E900).
|
|
4
|
+
Hand-drawn for ~16–24px: bold R + oversized hexagonal ruby cutout.
|
|
5
|
+
Do NOT auto-trace the PNG — stair-step traces collapse into "COBOL" blobs.
|
|
6
|
+
-->
|
|
3
7
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 1000" fill="#000">
|
|
4
8
|
<path fill-rule="evenodd" d="
|
|
5
|
-
M
|
|
9
|
+
M 180 120
|
|
10
|
+
H 560
|
|
11
|
+
L 700 120
|
|
12
|
+
L 800 230
|
|
13
|
+
L 820 380
|
|
14
|
+
L 740 530
|
|
15
|
+
L 580 590
|
|
16
|
+
L 840 880
|
|
17
|
+
H 620
|
|
18
|
+
L 400 610
|
|
19
|
+
H 320
|
|
20
|
+
V 880
|
|
21
|
+
H 180
|
|
22
|
+
V 120
|
|
23
|
+
Z
|
|
24
|
+
|
|
25
|
+
M 340 250
|
|
26
|
+
L 580 250
|
|
27
|
+
L 660 360
|
|
28
|
+
L 460 530
|
|
29
|
+
L 260 360
|
|
30
|
+
Z
|
|
6
31
|
"/>
|
|
7
32
|
</svg>
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -5,17 +5,19 @@
|
|
|
5
5
|
// Use ~/.local/bin/galaaz (installer wrapper). Do not quote the whole
|
|
6
6
|
// "galaaz add …" as one word — omarchy-launch-tui then does nothing useful.
|
|
7
7
|
//
|
|
8
|
-
// Brand mark: private-use U+E900
|
|
8
|
+
// Brand mark: icon is private-use U+E900 (\uE900). That codepoint is empty
|
|
9
|
+
// in Nerd Fonts / Cursor — Omarchy draws it with iconFont "galaaz"
|
|
9
10
|
// (script/omarchy/fonts/galaaz.ttf → ~/.local/share/fonts/galaaz/).
|
|
11
|
+
// Do not paste a visible letter here; use the escape so the source stays clear.
|
|
10
12
|
|
|
11
13
|
"install.development.galaaz": {
|
|
12
|
-
"icon": "
|
|
14
|
+
"icon": "\uE900",
|
|
13
15
|
"iconFont": "galaaz",
|
|
14
16
|
"label": "Galaaz",
|
|
15
17
|
"description": "R on Rails"
|
|
16
18
|
},
|
|
17
19
|
"install.development.galaaz.core": {
|
|
18
|
-
"icon": "
|
|
20
|
+
"icon": "\uE900",
|
|
19
21
|
"iconFont": "galaaz",
|
|
20
22
|
"label": "Galaaz (core)",
|
|
21
23
|
"description": "gem + setup + blogs (not just gem install)",
|
|
@@ -44,7 +46,7 @@
|
|
|
44
46
|
"when": "test -f ~/.config/galaaz/profiles/core"
|
|
45
47
|
},
|
|
46
48
|
"install.development.galaaz.knit": {
|
|
47
|
-
"icon": "
|
|
49
|
+
"icon": "\uE900",
|
|
48
50
|
"iconFont": "galaaz",
|
|
49
51
|
"label": "Knit (HTML + PDF blogs)",
|
|
50
52
|
"description": "pandoc + knitr/rmarkdown + TinyTeX",
|
|
@@ -52,35 +54,28 @@
|
|
|
52
54
|
"disabled": "test -f ~/.config/galaaz/profiles/knit"
|
|
53
55
|
},
|
|
54
56
|
"install.development.galaaz.arrow": {
|
|
55
|
-
"icon": "
|
|
57
|
+
"icon": "\uE900",
|
|
56
58
|
"iconFont": "galaaz",
|
|
57
59
|
"label": "Arrow",
|
|
58
60
|
"action": "omarchy-launch-tui omarchy-galaaz-add arrow",
|
|
59
61
|
"disabled": "test -f ~/.config/galaaz/profiles/arrow"
|
|
60
62
|
},
|
|
61
|
-
"install.development.galaaz.tex": {
|
|
62
|
-
"icon": "",
|
|
63
|
-
"iconFont": "galaaz",
|
|
64
|
-
"label": "TeX (PDF blogs)",
|
|
65
|
-
"action": "omarchy-launch-tui omarchy-galaaz-add tex",
|
|
66
|
-
"disabled": "test -f ~/.config/galaaz/profiles/tex"
|
|
67
|
-
},
|
|
68
63
|
"install.development.galaaz.bio": {
|
|
69
|
-
"icon": "
|
|
64
|
+
"icon": "\uE900",
|
|
70
65
|
"iconFont": "galaaz",
|
|
71
66
|
"label": "Bioconductor (DESeq2)",
|
|
72
67
|
"action": "omarchy-launch-tui omarchy-galaaz-add bio",
|
|
73
68
|
"disabled": "test -f ~/.config/galaaz/profiles/bio"
|
|
74
69
|
},
|
|
75
70
|
"install.development.galaaz.examples": {
|
|
76
|
-
"icon": "
|
|
71
|
+
"icon": "\uE900",
|
|
77
72
|
"iconFont": "galaaz",
|
|
78
73
|
"label": "Examples",
|
|
79
74
|
"action": "omarchy-launch-tui omarchy-galaaz-add examples",
|
|
80
75
|
"disabled": "test -f ~/.config/galaaz/profiles/examples"
|
|
81
76
|
},
|
|
82
77
|
"install.development.galaaz.ledger": {
|
|
83
|
-
"icon": "
|
|
78
|
+
"icon": "\uE900",
|
|
84
79
|
"iconFont": "galaaz",
|
|
85
80
|
"label": "Ledger (R-on-Rails demo)",
|
|
86
81
|
"description": "Clone app, seed, bin/dev",
|
|
@@ -88,7 +83,7 @@
|
|
|
88
83
|
"disabled": "test -f ~/.config/galaaz/profiles/ledger"
|
|
89
84
|
},
|
|
90
85
|
"remove.development.galaaz": {
|
|
91
|
-
"icon": "
|
|
86
|
+
"icon": "\uE900",
|
|
92
87
|
"iconFont": "galaaz",
|
|
93
88
|
"label": "Galaaz",
|
|
94
89
|
"description": "Core gem (add-on R packages stay)",
|
data/version.rb
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
$gem_name = "galaaz"
|
|
2
|
-
$version="2.1.10.pre.
|
|
2
|
+
$version="2.1.10.pre.3"
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: galaaz
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 2.1.10.pre.
|
|
4
|
+
version: 2.1.10.pre.3
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Rodrigo Botafogo
|
|
@@ -405,6 +405,9 @@ files:
|
|
|
405
405
|
- logos/icon-font/README.md
|
|
406
406
|
- logos/icon-font/build_font.py
|
|
407
407
|
- logos/icon-font/galaaz-mark.svg
|
|
408
|
+
- logos/icon-font/preview/glyph_16.png
|
|
409
|
+
- logos/icon-font/preview/glyph_24.png
|
|
410
|
+
- logos/icon-font/preview/glyph_48.png
|
|
408
411
|
- new_bridge_specs/arrow_ipc_async_spec.rb
|
|
409
412
|
- new_bridge_specs/arrow_ipc_export_async_spec.rb
|
|
410
413
|
- new_bridge_specs/benchmark_phase5_5_unboxing_spec.rb
|