From 1da50f3bf0ec14292bfc10c5fa3bf5dde663b569 Mon Sep 17 00:00:00 2001 From: Vadym Samoilenko Date: Fri, 17 Apr 2026 12:47:23 +0100 Subject: [PATCH] vault backup: 2026-04-17 12:47:23 --- 99 Daily/2026-04-17.md | 6 ++ .../Extend Claude with skills.md | 0 .../Font Shaping - Wez's Terminal Emulator.md | 0 wiki/_master-index.md | 2 +- wiki/dotfiles/_index.md | 1 + wiki/dotfiles/wezterm-font-shaping.md | 98 +++++++++++++++++++ 6 files changed, 106 insertions(+), 1 deletion(-) rename raw/{ => _processed}/Extend Claude with skills.md (100%) rename raw/{ => _processed}/Font Shaping - Wez's Terminal Emulator.md (100%) create mode 100644 wiki/dotfiles/wezterm-font-shaping.md diff --git a/99 Daily/2026-04-17.md b/99 Daily/2026-04-17.md index 04bf500..f856bf3 100644 --- a/99 Daily/2026-04-17.md +++ b/99 Daily/2026-04-17.md @@ -143,3 +143,9 @@ tags: [daily] - 12:45 (<1min) | `memory-compiler` - **Asked:** Create a structured wiki article for Tabby terminal in the knowledge base. - **Done:** Created `wiki/dotfiles/tabby-terminal.md` with feature breakdown, plugins, and comparison table; updated both index files. +- 12:46 (1min) | `memory-compiler` + - **Asked:** Compile a new article about Claude Code skills into the wiki knowledge base. + - **Done:** Created and filed `wiki/claude-code/skills.md` with comprehensive skill reference documentation. +- 12:46 (<1min) | `memory-compiler` + - **Asked:** Update the wiki knowledge base with a new article on WezTerm font shaping and increment the dotfiles section count. + - **Done:** Created wezterm-font-shaping.md article covering HarfBuzz features and updated article counts in both index files. diff --git a/raw/Extend Claude with skills.md b/raw/_processed/Extend Claude with skills.md similarity index 100% rename from raw/Extend Claude with skills.md rename to raw/_processed/Extend Claude with skills.md diff --git a/raw/Font Shaping - Wez's Terminal Emulator.md b/raw/_processed/Font Shaping - Wez's Terminal Emulator.md similarity index 100% rename from raw/Font Shaping - Wez's Terminal Emulator.md rename to raw/_processed/Font Shaping - Wez's Terminal Emulator.md diff --git a/wiki/_master-index.md b/wiki/_master-index.md index 7765ab0..c2014c2 100644 --- a/wiki/_master-index.md +++ b/wiki/_master-index.md @@ -28,7 +28,7 @@ This 3-hop pattern works for hundreds of articles without vector search. | [[wiki/qa/_index\|qa/]] | Filed answers to queries (saved with `--file-back`) | 0 | | [[wiki/homelab/_index\|homelab/]] | Self-hosted infra: Proxmox install, IOMMU/PCI passthrough, hypervisor setup, budget builds | 2 | | [[wiki/web-agency/_index\|web-agency/]] | AI-assisted website building & selling: Claude Code, Nanobanana 2, Kling, LaunchPath MCP | 1 | -| [[wiki/dotfiles/_index\|dotfiles/]] | Linux terminal ricing: Kitty, Fish, WezTerm CLI, modern Rust CLI tools, LazyVim, unified themes, Tabby | 7 | +| [[wiki/dotfiles/_index\|dotfiles/]] | Linux terminal ricing: Kitty, Fish, WezTerm CLI, modern Rust CLI tools, LazyVim, unified themes, Tabby | 8 | | [[wiki/agent-sdk/_index\|agent-sdk/]] | Claude Agent SDK (formerly Claude Code SDK) — build autonomous AI agents in Python and TypeScript | 8 | | [[wiki/llm-models/_index\|llm-models/]] | OpenAI model catalog — GPT-5.x, o-series reasoning, audio/realtime, embeddings, moderation | 1 | diff --git a/wiki/dotfiles/_index.md b/wiki/dotfiles/_index.md index 1718e01..49c25d2 100644 --- a/wiki/dotfiles/_index.md +++ b/wiki/dotfiles/_index.md @@ -11,3 +11,4 @@ Linux terminal customization, shell configs, CLI tool setups, and ricing guides. | [[wiki/dotfiles/wezterm-config\|wezterm-config]] | WezTerm Lua config structure, file locations, live reload, CLI overrides, and modular splits | wezterm.org/config/files.html | 2026-04-17 | | [[wiki/dotfiles/wezterm-default-keybindings\|wezterm-default-keybindings]] | Full default key assignments table: clipboard, tabs, panes, scrollback, utilities | wezterm.org/config/default-keys.html | 2026-04-17 | | [[wiki/dotfiles/tabby-terminal\|tabby-terminal]] | Tabby: cross-platform terminal + SSH manager + serial client; plugins, Zmodem, MCP server integration | github.com/Eugeny/tabby | 2026-04-17 | +| [[wiki/dotfiles/wezterm-font-shaping\|wezterm-font-shaping]] | HarfBuzz font shaping, disabling ligatures, per-font harfbuzz_features, stylistic sets | wezterm.org/config/font-shaping.html | 2026-04-17 | diff --git a/wiki/dotfiles/wezterm-font-shaping.md b/wiki/dotfiles/wezterm-font-shaping.md new file mode 100644 index 0000000..9193b1a --- /dev/null +++ b/wiki/dotfiles/wezterm-font-shaping.md @@ -0,0 +1,98 @@ +--- +title: "WezTerm Font Shaping & HarfBuzz Features" +aliases: [wezterm-harfbuzz, wezterm-ligatures, font-shaping] +tags: [wezterm, fonts, ligatures, harfbuzz, dotfiles] +sources: [raw/Font Shaping - Wez's Terminal Emulator.md] +created: 2026-04-17 +updated: 2026-04-17 +--- + +## Font Shaping in WezTerm + +Font shaping expands ligatures and applies OpenType features (positioning, glyph substitution) encoded in the font. WezTerm uses the **HarfBuzz** library for this. + +--- + +## harfbuzz_features Option + +Set globally in `wezterm.lua`: + +```lua +config.harfbuzz_features = { 'calt=0', 'clig=0', 'liga=0' } +``` + +Or per-font (requires ≥ v20220101-133340-7edc5b5a): + +```lua +config.font = wezterm.font { + family = 'JetBrains Mono', + harfbuzz_features = { 'calt=0', 'clig=0', 'liga=0' }, +} +``` + +--- + +## Common Feature Tags + +| Tag | Purpose | +|-----|---------| +| `calt` | Contextual alternates | +| `clig` | Contextual ligatures | +| `liga` | Standard ligatures | +| `zero` | Slashed zero (Fira Code) | + +To **disable all ligatures**: `{ 'calt=0', 'clig=0', 'liga=0' }` + +--- + +## Per-Font in Fallback Stack + +Apply features to one font without affecting fallbacks: + +```lua +config.font = wezterm.font_with_fallback { + { + family = 'JetBrains Mono', + weight = 'Medium', + harfbuzz_features = { 'calt=0', 'clig=0', 'liga=0' }, + }, + { family = 'Terminus', weight = 'Bold' }, + 'Noto Color Emoji', +} +``` + +--- + +## Stylistic Sets + +Some fonts expose extended options via stylistic sets. Example for Fira Code: + +```lua +config.harfbuzz_features = { 'zero' } -- slashed zero instead of dotted +``` + +Fira Code stylistic sets: `ss01`–`ss06` (cursive italics, alternate `r`, etc.) + +--- + +## Key Takeaways + +- HarfBuzz handles all font shaping in WezTerm +- `harfbuzz_features` accepts CSS `font-feature-settings`-style tags +- Disable ligatures globally: `{ 'calt=0', 'clig=0', 'liga=0' }` +- Per-font features (since v20220101) let you mix fonts with different ligature settings in a fallback stack +- Stylistic sets (`ss01`–`ssXX`) and named features like `zero` unlock font-specific variants + +--- + +## Related + +- [[wiki/dotfiles/wezterm-config|WezTerm Config Structure]] +- [[wiki/dotfiles/wezterm-colors-appearance|WezTerm Colors & Appearance]] +- [[wiki/dotfiles/terminal-cheatsheet|Terminal Cheatsheet]] + +--- + +## Sources + +- [WezTerm Font Shaping docs](https://wezterm.org/config/font-shaping.html)