index.md - sites - public wiki contents of suckless.org
(HTM) git clone git://git.suckless.org/sites
(DIR) Log
(DIR) Files
(DIR) Refs
---
index.md (4208B)
---
1 Ligature support
2 ================
3
4 Description
5 -----------
6 This patch adds proper drawing of ligatures.
7
8 The code uses Harfbuzz library to transform original text of a single line to a list of glyphs with ligatures included.
9
10 Example
11 -------
12 Taken with Fira Code Regular 14pt:
13
14 [](fira-code.png)
15
16 Notes
17 -----
18 * The patch adds additional dependency on Harfbuzz library and headers.
19 * Original patch was made for vanilla version of ST from latest master commit. It is not 100% compatible with Scrollback and Alpha patches, so I made modified versions that you can apply on top of a Scrollback and/or Alpha patch.
20 * Due to some limitations in drawing engine, ligatures will break when crossing colors, font styles or selection. They will still render properly as separate symbols, just not as ligatures.
21 * Since 0.8.4 patch, there's now a way to enable additional font rendering features. Look into `features` array in `hb.c` for details.
22
23 Boxdraw
24 -------
25 * The original patch does not work very well with the boxdraw patch. Since it requires some additional changes in the code to make ligatures compatible with boxdraw, a special version of the patch was added, that you can apply on top of the boxdraw patch.
26 * It does not include Alpha or Scrollback patches.
27
28 Download
29 --------
30 **0.9.3**:
31 * [st-ligatures-0.9.3](0.9.3/st-ligatures-20251007-0.9.3.diff)
32 * [st-ligatures-scrollback-0.9.3](0.9.3/st-ligatures-scrollback-20251007-0.9.3.diff)
33 * [st-ligatures-scrollback-ringbuffer-0.9.3](0.9.3/st-ligatures-scrollback-ringbuffer-20251007-0.9.3.diff)
34 * [st-ligatures-boxdraw-0.9.3](0.9.3/st-ligatures-boxdraw-20251007-0.9.3.diff)
35
36 **0.9.2**:
37 * [st-ligatures-0.9.2](0.9.2/st-ligatures-20241226-0.9.2.diff)
38 * [st-ligatures-scrollback-0.9.2](0.9.2/st-ligatures-scrollback-20241226-0.9.2.diff)
39 * [st-ligatures-scrollback-ringbuffer-0.9.2](0.9.2/st-ligatures-scrollback-ringbuffer-20241226-0.9.2.diff)
40 * [st-ligatures-alpha-0.9.2](0.9.2/st-ligatures-alpha-20241226-0.9.2.diff)
41 * [st-ligatures-alpha-scrollback-0.9.2](0.9.2/st-ligatures-alpha-scrollback-20241226-0.9.2.diff)
42 * [st-ligatures-alpha-scrollback-ringbuffer-0.9.2](0.9.2/st-ligatures-alpha-scrollback-ringbuffer-20241226-0.9.2.diff)
43 * [st-ligatures-boxdraw-0.9.2](0.9.2/st-ligatures-boxdraw-20241226-0.9.2.diff)
44
45 **0.9**:
46 * [st-ligatures-0.9](0.9/st-ligatures-20240105-0.9.diff)
47 * [st-ligatures-scrollback-0.9](0.9/st-ligatures-scrollback-20240105-0.9.diff)
48 * [st-ligatures-scrollback-ringbuffer-0.9](0.9/st-ligatures-scrollback-ringbuffer-20240105-0.9.diff)
49 * [st-ligatures-alpha-0.9](0.9/st-ligatures-alpha-20240105-0.9.diff)
50 * [st-ligatures-alpha-scrollback-0.9](0.9/st-ligatures-alpha-scrollback-20240105-0.9.diff)
51 * [st-ligatures-alpha-scrollback-ringbuffer-0.9](0.9/st-ligatures-alpha-scrollback-ringbuffer-20240105-0.9.diff)
52 * [st-ligatures-boxdraw-0.9](0.9/st-ligatures-boxdraw-20240105-0.9.diff)
53
54 **0.8.4**:
55 * [st-ligatures-0.8.4](0.8.4/st-ligatures-20210824-0.8.4.diff)
56 * [st-ligatures-scrollback-0.8.4](0.8.4/st-ligatures-scrollback-20210824-0.8.4.diff)
57 * [st-ligatures-alpha-0.8.4](0.8.4/st-ligatures-alpha-20210824-0.8.4.diff)
58 * [st-ligatures-alpha-scrollback-0.8.4](0.8.4/st-ligatures-alpha-scrollback-20210824-0.8.4.diff)
59 * [st-ligatures-boxdraw-0.8.4](0.8.4/st-ligatures-boxdraw-20210824-0.8.4.diff)
60
61 **0.8.3**:
62 * [st-ligatures-0.8.3](0.8.3/st-ligatures-20200430-0.8.3.diff)
63 * [st-ligatures-scrollback-0.8.3](0.8.3/st-ligatures-scrollback-20200430-0.8.3.diff)
64 * [st-ligatures-alpha-0.8.3](0.8.3/st-ligatures-alpha-20200430-0.8.3.diff)
65 * [st-ligatures-alpha-scrollback-0.8.3](0.8.3/st-ligatures-alpha-scrollback-20200430-0.8.3.diff)
66 * [st-ligatures-boxdraw-0.8.3](0.8.3/st-ligatures-boxdraw-20200430-0.8.3.diff)
67
68 **0.8.2-28ad288**:
69 * [st-ligatures](28ad288/st-ligatures-20200428-28ad288.diff)
70 * [st-ligatures-scrollback](28ad288/st-ligatures-scrollback-20200428-28ad288.diff)
71 * [st-ligatures-alpha](28ad288/st-ligatures-alpha-20200428-28ad288.diff)
72 * [st-ligatures-alpha-scrollback](28ad288/st-ligatures-alpha-scrollback-20200428-28ad288.diff)
73 * [st-ligatures-boxdraw](28ad288/st-ligatures-boxdraw-20200428-28ad288.diff)
74
75
76 Authors
77 -------
78 * Alexander Rogachev - [https://github.com/cog1to](https://github.com/cog1to)