vault backup: 2026-04-17 12:47:23

This commit is contained in:
Vadym Samoilenko 2026-04-17 12:47:23 +01:00
parent 40845b7e50
commit 1da50f3bf0
6 changed files with 106 additions and 1 deletions

View file

@ -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.

View file

@ -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 |

View file

@ -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 |

View file

@ -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)