libX11 currently ships a separate set of Compose files for zh_* languages under /usr/share/X11/locale/zh*. One thing those files do is that they blank out all Compose files as if Chinese users have no use of character composition at all. Such an assumption is wrong, for zh_CN at least, as the official romanization method (Hanyu Pinyin) itself requires a lot of diacritics for tones. It is also unnecessary for UTF-8 locales since you can just use the en_US data like what you are already doing for many other locales. Please make Compose keys found in en_US.UTF-8 available for zh_CN.gb18030[^1] and zh_*.UTF-8. [^1]: GB 18030 is a UTF. (Consider it optional like other legacy encodings -- nobody uses it as a locale on Linux these days.)
We have long shipped the zh_*.UTF-8 compose files as simply including the entire contents of the en_US.UTF-8 compose file already: https://cgit.freedesktop.org/xorg/lib/libX11/tree/nls/zh_CN.UTF-8/Compose.pre https://cgit.freedesktop.org/xorg/lib/libX11/tree/nls/zh_HK.UTF-8/Compose.pre https://cgit.freedesktop.org/xorg/lib/libX11/tree/nls/zh_TW.UTF-8/Compose.pre If you're seeing blank files, either your build or your distro is breaking them. The GB 18030 is admittedly empty except for comments about why it's empty: https://cgit.freedesktop.org/xorg/lib/libX11/tree/nls/zh_CN.gb18030/Compose.pre
Apologies for the mistake. I guess I should learn to press 'f' in less before calling a file empty…
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.