Re: Fonts do not work with multiple profiles (fontconfig) and a proposed workaround

2020-12-17 Thread Maxim Cournoyer
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

2020-09-30 Thread Todor Kondić
> 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

2020-09-29 Thread Todor Kondić
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