tdesktop - используем свои шрифты вместо вшитых
У Telegram Desktop (который написан на C++/Qt5) есть одна большая проблема - нет возможности использовать свои шрифты, только вшитый Open Sans. Это по-умолчанию. Но это можно исправить. Например, как это сделал я:
Сборка
Собираем с передачей cmake параметра -DDESKTOP_APP_USE_PACKAGED_FONTS=OFF
.
Пользователи Arch Linux ставят этот пакет (или этот пакет, если хочется поконпелять).
fontconfig
Далее используем кастомный конфиг fontconfig для использования с tdesktop:
<?xml version='1.0'?> <!DOCTYPE fontconfig SYSTEM 'fonts.dtd'> <fontconfig> <dir>/usr/share/fonts</dir> <dir>/usr/local/share/fonts</dir> <dir>~/.fonts</dir> <dir>~/.local/share/fonts</dir> <dir>/usr/X11R6/lib/X11/fonts</dir> <dir prefix="xdg">fonts</dir> <match target="pattern"> <test qual="any" name="family"><string>system ui</string></test> <edit name="family" mode="assign" binding="same"><string>system-ui</string></edit> </match> <match target="pattern"> <test qual="any" name="family"><string>mono</string></test> <edit name="family" mode="assign" binding="same"><string>monospace</string></edit> </match> <match target="pattern"> <test qual="any" name="family"><string>sans serif</string></test> <edit name="family" mode="assign" binding="same"><string>sans-serif</string></edit> </match> <match target="pattern"> <test qual="any" name="family"><string>sans</string></test> <edit name="family" mode="assign" binding="same"><string>sans-serif</string></edit> </match> <alias> <family>Go Mono</family> <default><family>monospace</family></default> </alias> <alias> <family>PT Sans Caption</family> <default><family>sans-serif</family></default> </alias> <alias> <family>PT Sans Expert</family> <default><family>serif</family></default> </alias> <match> <test name="family"><string>monospace</string></test> <edit name="family" mode="assign" binding="strong"><string>Go Mono</string></edit> </match> <match> <test name="family"><string>sans-serif</string></test> <edit name="family" mode="assign" binding="strong"><string>PT Sans Expert</string></edit> </match> <match> <test name="family"><string>serif</string></test> <edit name="family" mode="assign" binding="strong"><string>PT Sans Expert</string></edit> </match> <match> <test name="family"><string>DAOpenSansRegular</string></test> <edit name="family" mode="assign" binding="strong"><string>PT Sans Caption</string></edit> </match> <match> <test name="family"><string>DAOpenSansRegularItalic</string></test> <edit name="family" mode="assign" binding="strong"><string>PT Sans Caption</string></edit> <edit name="style" mode="assign" binding="strong"><string>italic</string></edit> </match> <match> <test name="family"><string>DAOpenSansSemibold</string></test> <edit name="family" mode="assign" binding="strong"><string>PT Sans Caption</string></edit> </match> <match> <test name="family"><string>DAOpenSansSemiboldItalic</string></test> <edit name="family" mode="assign" binding="strong"><string>PT Sans Caption</string></edit> </match> <cachedir>/var/cache/fontconfig</cachedir> <cachedir prefix="xdg">fontconfig</cachedir> <cachedir>~/.cache/fontconfig</cachedir> <match target="font"> <edit mode="assign" name="antialias"> <bool>true</bool> </edit> <edit mode="assign" name="embeddedbitmap"> <bool>false</bool> </edit> <edit mode="assign" name="hinting"> <bool>true</bool> </edit> <edit mode="assign" name="hintstyle"> <const>hintfull</const> </edit> <edit mode="assign" name="lcdfilter"> <const>lcddefault</const> </edit> <edit mode="assign" name="rgba"> <const>rgb</const> </edit> </match> </fontconfig>
Почините его под себя (в частности назначение шрифтов).
Запуск
Поменяйте команду запуска на:
FONTCONFIG_FILE=/path/to/fontconfig.conf telegram-desktop
Запуск из меню
В .desktop файле поменяйте команду запуска на:
env FONTCONFIG_FILE=/path/to/fontconfig.conf telegram-desktop -- %u