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](fira-code.png)](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)