Re: Fonts do not work with multiple profiles (fontconfig) and a proposed workaround
Hi, Todor Kondić writes: >> Hi Todor, >> >> Indeed, this workaround does the trick. >> Here is my ~/.config/fontconfig/fonts.conf: >> >> --8<---cut here---start->8--- >> >> >> >> >> ~/.guix-extra-profiles/emacs/emacs/share/fonts >> >> --8<---cut here---end--->8--- >> >> Packages' content is static, it is not modifier upon install, which is >> why the default etc/fonts/fonts.conf is pointing to constant locations. >> >> The solution to this bug, I believe, would be to add a post-install >> hook that generates the fonts.conf file with the right entries. >> >> Cheers! I think a proper fix would be contributing a patch to fontconfig so that it honors XDG_DATA_DIRS to lookup its fonts. Any takers? Maxim
Re: Fonts do not work with multiple profiles (fontconfig) and a proposed workaround
> Hi Todor, > > Indeed, this workaround does the trick. > Here is my ~/.config/fontconfig/fonts.conf: > > --8<---cut here---start->8--- > > > > > ~/.guix-extra-profiles/emacs/emacs/share/fonts > > --8<---cut here---end--->8--- > > Packages' content is static, it is not modifier upon install, which is > why the default etc/fonts/fonts.conf is pointing to constant locations. > > The solution to this bug, I believe, would be to add a post-install > hook that generates the fonts.conf file with the right entries. > > Cheers! > > --- > > Pierre Neidhardt > https://ambrevar.xyz/ Hi Pierre, Yes, of course you are right. Packages are installed once and then reused in different profiles (AFAIK). I just did not give much thought to it at the moment. Supporting multiple profiles in a package can be a real pain, right? I mean, there is no magic bullet. In the case of fontconfig, we have the ability to modify the fonts.conf in order to add more font paths. As for other programs, there is usually a way, but it is not universal. Of course, the hammer solution would be to shove a package going into a different profile into a different store entry (under assumption that at the build-time the package takes -p option as the default). Perhaps something like that could be offered as an option to users? Maybe this is even possible now? I have not done any research on it. On the other hand, I have not seen any real "official" endorsement of multi-profile setups by Guix as a project :) . Cheers, T
Fonts do not work with multiple profiles (fontconfig) and a proposed workaround
Here's my experience with guix-as-a-package-manager, fontconfig and multiple profiles. If fonts are installed in a profile different than the default one, applications do not pick them up out of the box. I.e. icecat shows characters as squares and you cannot select a cool non standard font in your GTK Emacs. After digging into this matter, I concluded that the culprit is the main config file situated in some-nondefault-guix-profile/etc/fonts/fonts.conf Here's a snippet: - /gnu/store/7y3lvk3xf4im8n44337mc6y0ccysvfia-font-dejavu-2.37/share/fonts ~/.guix-profile/share/fonts /run/current-system/profile/share/fonts fonts ~/.fonts --- Clearly, some-nondefault-guix-profile/share/fonts is not among the list of dirs that are searched for font definitions. I'd call this a bug, but maybe it's by design. Still, shouldn't guix package definitions respect the -p flag to package command? Anyway, the workaround is the following. See this snippet of the same config file, conf.d - This means it includes the conf files in ...profile/etc/conf.d. The README file reveals that 5?-*.conf files are used for additional customisation. This makes 50-user.conf particularly interesting. And, here it is ... - fontconfig/conf.d fontconfig/fonts.conf ~/.fonts.conf.d ~/.fonts.conf - Apparently , ~/.config/fontconfig/fonts.conf (xdg prefix being ~/.config) is the place to add some more config After creating ~/.config/fontconfig/fonts.conf with the following content - http://www.w3.org/2005/11/its; version="1.0"> Default configuration file ~/.guix-pillars/pillar/share/fonts -- and running fc-cache -rvf the fontconfig-aware programs were able to select fonts from the non-default guix profile. Hope this helps (me again in six monts from now)! T