sites

public wiki contents of suckless.org
git clone git://git.suckless.org/sites
Log | Files | Refs

index.md (3225B)


      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**:
     31 * [st-ligatures-0.9](0.9/st-ligatures-20240105-0.9.diff)
     32 * [st-ligatures-scrollback-0.9](0.9/st-ligatures-scrollback-20240105-0.9.diff)
     33 * [st-ligatures-scrollback-ringbuffer-0.9](0.9/st-ligatures-scrollback-ringbuffer-20240105-0.9.diff)
     34 * [st-ligatures-alpha-0.9](0.9/st-ligatures-alpha-20240105-0.9.diff)
     35 * [st-ligatures-alpha-scrollback-0.9](0.9/st-ligatures-alpha-scrollback-20240105-0.9.diff)
     36 * [st-ligatures-alpha-scrollback-ringbuffer-0.9](0.9/st-ligatures-alpha-scrollback-ringbuffer-20240105-0.9.diff)
     37 * [st-ligatures-boxdraw-0.9](0.9/st-ligatures-boxdraw-20240105-0.9.diff)
     38 
     39 **0.8.4**:
     40 * [st-ligatures-0.8.4](0.8.4/st-ligatures-20210824-0.8.4.diff)
     41 * [st-ligatures-scrollback-0.8.4](0.8.4/st-ligatures-scrollback-20210824-0.8.4.diff)
     42 * [st-ligatures-alpha-0.8.4](0.8.4/st-ligatures-alpha-20210824-0.8.4.diff)
     43 * [st-ligatures-alpha-scrollback-0.8.4](0.8.4/st-ligatures-alpha-scrollback-20210824-0.8.4.diff)
     44 * [st-ligatures-boxdraw-0.8.4](0.8.4/st-ligatures-boxdraw-20210824-0.8.4.diff)
     45 
     46 **0.8.3**:
     47 * [st-ligatures-0.8.3](0.8.3/st-ligatures-20200430-0.8.3.diff)
     48 * [st-ligatures-scrollback-0.8.3](0.8.3/st-ligatures-scrollback-20200430-0.8.3.diff)
     49 * [st-ligatures-alpha-0.8.3](0.8.3/st-ligatures-alpha-20200430-0.8.3.diff)
     50 * [st-ligatures-alpha-scrollback-0.8.3](0.8.3/st-ligatures-alpha-scrollback-20200430-0.8.3.diff)
     51 * [st-ligatures-boxdraw-0.8.3](0.8.3/st-ligatures-boxdraw-20200430-0.8.3.diff)
     52 
     53 **0.8.2-28ad288**:
     54 * [st-ligatures](28ad288/st-ligatures-20200428-28ad288.diff)
     55 * [st-ligatures-scrollback](28ad288/st-ligatures-scrollback-20200428-28ad288.diff)
     56 * [st-ligatures-alpha](28ad288/st-ligatures-alpha-20200428-28ad288.diff)
     57 * [st-ligatures-alpha-scrollback](28ad288/st-ligatures-alpha-scrollback-20200428-28ad288.diff)
     58 * [st-ligatures-boxdraw](28ad288/st-ligatures-boxdraw-20200428-28ad288.diff)
     59 
     60 
     61 Authors
     62 -------
     63 * Alexander Rogachev - [https://github.com/cog1to](https://github.com/cog1to)