kovidgoyal / kitty

Cross-platform, fast, feature-rich, GPU based terminal
https://sw.kovidgoyal.net/kitty/
GNU General Public License v3.0
22.86k stars 923 forks source link

Ligatures not always working on colored text #7494

Closed fdev31 closed 1 month ago

fdev31 commented 1 month ago

Describe the bug

To Reproduce

  1. Enable Fira Code and ensure '->' works as a ligature in standard conditions
  2. Make this text colored (eg: check output of eza after creating a symlink)
  3. check the (non) rendering of the ligature

Screenshots

Note that it's not really 100% reproducible, sometimes colored ligatures are displayed properly... Using the zsh-syntax-highlighting plugin makes it easy to do some checks, I typed twice the same sequence of characters in the zsh prompt with this plugin enabled: image

Environment details

kitty 0.33.0 created by Kovid Goyal
Linux IDPad 6.8.2-arch2-1 #1 SMP PREEMPT_DYNAMIC Thu, 28 Mar 2024 17:06:35 +0000 x86_64
Arch Linux 6.8.2-arch2-1 (/dev/tty)

DISTRIB_ID="Arch"
DISTRIB_RELEASE="rolling"
DISTRIB_DESCRIPTION="Arch Linux"
Running under: Wayland
Frozen: False
Paths:
  kitty: /usr/bin/kitty
  base dir: /usr/lib/kitty
  extensions dir: /usr/lib/kitty/kitty
  system shell: /bin/zsh
Loaded config files:
  /home/fab/.config/kitty/kitty.conf

Config options different from defaults:
allow_remote_control    yes
background_opacity      0.9
bold_font               Liberation Mono
bold_italic_font        Liberation Mono
copy_on_select          clipboard
dim_opacity             0.75
editor                  nvim
enable_audio_bell       False
focus_follows_mouse     True
font_family             Fira Code Regular
font_features:
{'FiraCode-Regular': ('+ss01',
                      'ss02=0',
                      '+ss03',
                      '+ss04',
                      '+ss05',
                      '+ss07',
                      '+ss08',
                      '+ss09',
                      '+zero',
                      '+cv30',
                      '+cv18',
                      '+cv14',
                      '+calt')}
font_size               10.0
italic_font             Liberation Mono
tab_bar_style           powerline
tab_separator            |
visual_bell_duration    0.1
window_border_width     (1.0, 'pt')
Added shortcuts:
    kitty_mod+alt+left →  move_tab_backward
    kitty_mod+alt+n →  move_window_forward
    kitty_mod+alt+p →  move_window_backward
    kitty_mod+alt+right →  move_tab_forward
    kitty_mod+p > shift+f →  kitten hints --type path --program vim, kitten hints --type path --program -, kitten hints, kitten hints --type hyperlink, kitten hints --type linenum, kitten hints --type hash --program -, kitten hints --type word --program -, kitten hints --type line --program -, kitten hints --type path
Removed shortcuts:
    kitty_mod+p > f →  kitten hints --type hyperlink, kitten hints --type linenum, kitten hints --type hash --program -, kitten hints --type word --program -, kitten hints --type line --program -, kitten hints --type path, kitten hints --type path --program -
Changed shortcuts:
    ctrl+shift+tab →  previous_window
    kitty_mod+h →  pipe @ansi overlay less +G -R -i
    kitty_mod+n →  next_window
    kitty_mod+t →  new_tab_with_cwd !neighbor
Colors:
    active_border_color     #b4befe   
    active_tab_background   #cba6f7   
    active_tab_foreground   #11111b   
    background              #1e1e2e   
    bell_border_color       #f9e2af   
    color0                  #45475a   
    color1                  #f38ba8   
    color10                 #a6e3a1   
    color11                 #f9e2af   
    color12                 #89b4fa   
    color13                 #f5c2e7   
    color14                 #94e2d5   
    color15                 #a6adc8   
    color2                  #a6e3a1   
    color3                  #f9e2af   
    color4                  #89b4fa   
    color5                  #f5c2e7   
    color6                  #94e2d5   
    color7                  #bac2de   
    color8                  #585b70   
    color9                  #f38ba8   
    cursor                  #f5e0dc   
    cursor_text_color       #1e1e2e   
    foreground              #cdd6f4   
    inactive_border_color   #6c7086   
    inactive_tab_background #181825   
    inactive_tab_foreground #cdd6f4   
    mark1_background        #b4befe   
    mark1_foreground        #1e1e2e   
    mark2_background        #cba6f7   
    mark2_foreground        #1e1e2e   
    mark3_background        #74c7ec   
    mark3_foreground        #1e1e2e   
    selection_background    #f5e0dc   
    selection_foreground    #1e1e2e   
    tab_bar_background      #11111b   
    url_color               #f5e0dc   

Important environment variables seen by the kitty process:
    PATH                                /home/fab/.nix-profile/bin:/nix/var/nix/profiles/default/bin:/home/fab/dev/qtile/bin:/home/fab/utils:/usr/local/sbin:/usr/local/bin:/usr/bin:/opt/android-sdk/cmdline-tools/latest/bin:/opt/cuda/bin:/opt/cuda/nsight_compute:/opt/cuda/nsight_systems/bin:/home/fab/.local/share/flatpak/exports/bin:/usr/lib/jvm/default/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl:/home/fab/.local/bin:/sbin:/usr/sbin:/usr/local/bin:/home/fab/pyenv/bin:/var/lib/snapd/snap/bin/:/home/fab/.pub-cache/bin:./node_modules/.bin/:/home/fab/.android-sdk/cmdline-tools/latest/bin:/home/fab/.android-sdk/platform-tools:/home/fab/.android-sdk/tools:/opt/android-sdk/cmdline-tools/latest/bin
    LANG                                fr_FR.UTF-8
    VISUAL                              vim
    EDITOR                              vim
    SHELL                               /bin/zsh
    DISPLAY                             :0
    WAYLAND_DISPLAY                     wayland-1
    USER                                fab
    XCURSOR_SIZE                        32
    XDG_BACKEND                         wayland
    LC_ADDRESS                          fr_FR.UTF-8
    LC_NAME                             fr_FR.UTF-8
    LC_MONETARY                         fr_FR.UTF-8
    XDG_SEAT                            seat0
    XDG_SESSION_TYPE                    wayland
    LC_PAPER                            fr_FR.UTF-8
    XDG_CURRENT_DESKTOP                 Hyprland
    XDG_SESSION_CLASS                   user
    LC_IDENTIFICATION                   fr_FR.UTF-8
    LC_TELEPHONE                        fr_FR.UTF-8
    LC_MESSAGES                         fr_FR.UTF-8
    LC_MEASUREMENT                      fr_FR.UTF-8
    XDG_VTNR                            1
    XDG_SESSION_ID                      3
    LC_CTYPE                            fr_FR.UTF-8
    XDG_RUNTIME_DIR                     /run/user/1000
    LC_TIME                             fr_FR.UTF-8
    LC_COLLATE                          fr_FR.UTF-8
    XDG_DATA_DIRS                       /home/fab/.local/share/flatpak/exports/share:/var/lib/flatpak/exports/share:/usr/local/share/:/usr/share/:/home/fab/.nix-profile/share:/nix/var/nix/profiles/default/share
    LC_NUMERIC                          C

Additional context Try to reproduce the problem with kitty --config NONE if you cannot then post a minimal kitty.conf that reproduces the problem.

font_family Fira Code Regular

font_features FiraCode-Regular +ss01 ss02=0 +ss03 +ss04 +ss05 +ss07 +ss08 +ss09 +zero +cv30 +cv18 +cv14
kovidgoyal commented 1 month ago

That's not colors, it's bold. = is bold and > is not. bold and regular are actually different fonts (faces) you cant make ligatures from them.