mpv-player / mpv-player/mpv

Unreadable OSD when COLRv1 emoji font prioritized in fontconfig

Open
#17,327 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

os:linux
Dominant language
C
Stars
37k
Forks
3.5k
Avg merge
1d 10h
Merged PRs (30d)
22

Description

mpv Information
mpv v0.40.0 Copyright © 2000-2025 mpv/MPlayer/mplayer2 projects
libplacebo version: v7.351.0
FFmpeg version: 7.1.1 (runtime 7.1.2)
FFmpeg library versions:
   libavcodec      61.19.101
   libavdevice     61.3.100
   libavfilter     10.4.100
   libavformat     61.7.100
   libavutil       59.39.100
   libswresample   5.3.100
   libswscale      8.3.100
Other Information
- Linux version: Fedora Linux
- Kernel Version: Linux luklap 6.18.3-200.fc43.x86_64 #1 SMP PREEMPT_DYNAMIC Fri Jan  2 20:10:56 UTC 2026 x86_64 GNU/Linux
- GPU Model: 01:00.0 VGA compatible controller [0300]: NVIDIA Corporation G96CM [GeForce 9600M GT] [10de:0649] (rev a1)
- Mesa/GPU Driver Version: OpenGL version string: 3.3 (Compatibility Profile) Mesa 25.2.5
- Window Manager and Version: sway version 1.11
- Source of mpv: Fedora's RPMs
- Latest known working version: None
- Issue started after the following happened: Fedora switched to COLORv1 as seen at https://docs.fedoraproject.org/en-US/fedora/latest/release-notes/desktop/#colr-for-noto-color-emoji
Reproduction Steps
  1. change your /home/$USER/.config/fontconfig/fonts.conf to (the guide is at https://www.reddit.com/r/linux/comments/grxawm/comment/fsb0jnw/?force-legacy-sct=1 and I use it to have color emojis in terminal and chromium)
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd">
<fontconfig>
  <alias>
    <family>sans-serif</family>
    <prefer>
      <family>DejaVu Sans</family>
    </prefer>
  </alias>
  <alias>
    <family>serif</family>
    <prefer>
      <family>DejaVu Serif</family>
    </prefer>
  </alias>
  <alias>
    <family>monospace</family>
    <prefer>
      <family>DejaVu Sans Mono</family>
    </prefer>
  </alias>
  <alias>
    <family>emoji</family>
    <prefer>
      <family>Noto Color Emoji</family>
    </prefer>
  </alias>
  <match target="pattern"> 
    <edit name="family" mode="prepend" binding="weak">
      <string>Noto Color Emoji</string> 
    </edit> 
  </match>
</fontconfig>
  1. restart your pc
  2. start a movie in mpv
  3. enter menu through "g+m" shortcut
Expected Behavior
Image
Actual Behavior
Image
Log File

unreadable_osd_with_priotization_of_Noto-COLRv1.txt
One can see that noto font is selected instead of dejavu.

readable_osd_without_priotization_of_Noto-COLRv1.txt
One can see that dejavu font is selected instead of noto.

I followed the guide at https://vladimir-ivanov.net/tag/fedora/ and replaced Noto-COLRv1.ttf with NotoColorEmoji.ttf and it works just as good as in Fedora 42 (the mpv version was the same there)
readable_osd_with_priotization_of_NotoColorEmoji.txt
One can see that dejavu font is selected instead of noto.

Sample Files

No response

I carefully read all instruction and confirm that I did the following:
  • I tested with the latest mpv version to validate that the issue is not already fixed.
  • I provided all required information including system and mpv version.
  • I produced the log file with the exact same set of files, parameters, and conditions used in "Reproduction Steps", with the addition of --log-file=output.txt.
  • I produced the log file while the behaviors described in "Actual Behavior" were actively observed.
  • I attached the full, untruncated log file.
  • I attached the backtrace in the case of a crash.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Reproduce the issue using the supplied fontconfig configuration, then compare unreadable_osd_with_priotization_of_Noto-COLRv1.txt with readable_osd_without_priotization_of_Noto-COLRv1.txt and readable_osd_with_priotization_of_NotoColorEmoji.txt. Trace the OSD font selection and rendering path implicated by those logs; done means the OSD remains readable when the COLRv1 emoji font is prioritized.

Written by the indexing model from the issue text.

Assessment

Tech stack
c, linux
Domain
desktop
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
32/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.