* The scripts informs which [ preset ] is currently set and if all 5 required symbolic links are OK.* If no preset is set (i.e. at least one obligatory link is missing), the error message is returned.* Root privileges are only required to set or modify existing [ preset ].

If it works correctly for you, I will update and re-upload fontconfig-infinality-ultimate.

* The scripts informs which [ preset ] is currently set and if all 5 required symbolic links are OK.* If no preset is set (i.e. at least one obligatory link is missing), the error message is returned.* Root privileges are only required to set or modify existing [ preset ].

If it works correctly for you, I will update and re-upload fontconfig-infinality-ultimate.

Thanks. I'll test and report back.

EDIT: I think the authentication might need a little work or at least better explanation. The non-privileged access works fine, however:

$ fc-presets check
5 symlinks found.
The active preset seems to be [ free ].
Checking symlinks now...
37-repl-global-free.conf is OK
60-latin-free.conf is OK
65-non-latin-free.conf is OK
66-aliases-wine-free.conf is OK
93-final-lang-spec-free.conf is OK
$ fc-presets help
Usage: fc-presets [check|set|help]
Run this script to set a fontconfig preset for your default
font collection. You can also check which preset you are
currently using.
Options:
check Check which preset is currently active
set Set a preset configuration
Available presets are:
custom -- custom font collection
free -- free font collection
ms -- Microsoft font collection
help Print this help and exit

I will admit that I sometimes seem to be extraordinarily good at breaking stuff and you might well argue that users are not expected to mess up things this way. I tried running fc-preset set as an ordinary user just to check whether it said something useful and I got somewhat entangled. Eventually, I killed the process as root from another shell:

$ fc-presets set
1) custom
2) ms
3) free

OK. What will it do if I try it? Let's try 2 so that it would actually need to change some stuff to complete the command:

#? 2

I didn't realise it would now try to authenticate. Since I didn't want to change anything, I tried cancelling but that didn't work (ctrl + c) so I tried giving it fake passwords:

Is there any reason not to just tell the user to run fc-presets with privileges if they try to use a command which needs them? That would let the system handle the authentication and avoid these problems. Otherwise, I think the script should bail after, say, 3 attempts at authentication. (I guess this won't show up in auditing logs? Or would it?) Moreover, it is not safe to assume that sudo has a non-zero timeout. At the very least, the script needs to explain why it is going to ask the user to authenticate five times or whatever as it is rather disconcerting otherwise. Preferably, it shouldn't need to do this. ln -s can certainly create multiple symbolic links at once so I'd think this would be somewhat straightforward. I realise zero timeout for sudo is not standard but it is not usually a problem, either.

Re: infinality-bundle: good looking fonts made (even) easier

@cfr, Thanks for testing. I have reworked most of the script following your suggestions and I think it is now closer to what it should be. Here we go: click.

Thanks! That worked much more smoothly. One tiny suggestion in the help output. In the first "how to fix" section, you say

2. Choose 4) to reset current settings.

I think something like

2. Choose 4) to disable all presets.

would be clearer. When I first read it, I assumed it meant that it would restore the symbolic links for whatever preset I had configured. I then couldn't understand why any further step was required to complete the fix.

Apart from that minor quibble, it worked great for me. Thanks again for all your work on this.

Everything should work correctly. If you are asked to replace a package, please do. Four old/new t1-foo-ib packages has to be installed manually. However, I think only two are really necessary: t1-adobe-utopia-ib and t1-bh-ib, so the remaining two may be treated as optional.

Re: infinality-bundle: good looking fonts made (even) easier

Installing now...

Is it possible to keep up to date with the fonts by installing a meta package of any sort? (Something like the way meta packages work for the KDE packaging.) People could still install individual packages instead but installing a metapackage would automatically get you e.g. the infinality package of t1-adobe-utopia-ib when it became available.

I do try to make sure I don't miss posts concerning updates so that I have everything installed which I'm meant to but I worry that I'm inevitably going to miss something at some point.

Re: infinality-bundle: good looking fonts made (even) easier

cfr wrote:

Is it possible to keep up to date with the fonts by installing a meta package of any sort?

What about installing the infinlaity-bundle-fonts package group? I know this is not exactly like having a meta package, but it ensures that the packages on my system are in line with what bohoomil's recommended stuffs are. Its not "minimal" by any means, but I usually just run pacman -S --needed infinality-bundle-fonts from time to time to see if I've missed anything.

Re: infinality-bundle: good looking fonts made (even) easier

This is a good idea: I think I will look at the fonts repo again and at least in a few cases create meta packages (for ex xorg-fonts-type1 for instance). It is funny I did not think about it earlier. Thanks for the tip.

Edit 1: WW is right, actually. The minimum installation of ib-fonts should include the base group by default (until someone chooses to install only the very minimal set). Nevertheless, the meta package for xorg-fonts-type1 still makes sense as we are offering almost the same content (minus two families) but repacked for convenience and less dependencies.

Edit 2: One more thing is on my mind now: it would probably be a good idea if we had three groups in fonts, depending on complexity chosen by the user: 1) base fonts (minimal sans, serif, mono: about 5-8 packages) 2) fonts (just like the current base but minus 5-8 packages and base fonts as a dependency), 3) extended (like the current extended, but with new base dependency). Any individual combination would still be possible, but the entry level set up would be easier to customize (i.e. less 'pacman -R foo.tar.gz' right after a current base group has been installed).

Re: infinality-bundle: good looking fonts made (even) easier

Thanks. I realised I could reinstall the infinlaity-bundle-fonts package group but this isn't quite the same as a metapackage because you have to think to do it. If there was a infinlaity-bundle-fonts-meta package which just depended on everything in the group, you could install it once and forget about it. pacman -Syu would take care of everything. And it would automatically only install needed additions/updates, if I understand how pacman resolves dependencies.

Re: infinality-bundle: good looking fonts made (even) easier

They are kind of neat, I think. In KDE, for example, I use meta packages in some cases, pick-and-mix in some cases, and nothing at all in some cases. And for some things I've shifted from meta to pick-and-mix or pick-and-mix to meta according to what I decide I think will work best at the time.

I have some of kdegraphics, for example, but not all of it. So if anything new is added to that metapackage, I'd have to learn about it and install it if I wanted to. But anything new in the kdebase metapackage I'll get automatically. No idea why I have kdetoys installed since I can't see one thing in it I want. (I like xpenguins but that's installed separately!)

Re: infinality-bundle: good looking fonts made (even) easier

I created meta packages, so both installation and maintenance of the ib collection should be even more straightforward now. The most important bits are already in the Wiki, so here I am going to mention a couple of technical details.

Since we duplicated all the necessary font packages from [extra], [community] and the AUR in the ib-fonts repository, everything can be installed straight from a single location. To install the minimal i686 bundle, all you need to do (except importing and signing the key) is to issue

pacman -S infinality-bundle ibfonts-meta-base

If you need the multilib support for x86_64 architecture, just add infinality-bundle-multilib. In case you want to get the extended font collection--the free replacement for MS Windows/Office set--replace ibfonts-meta-base with ibfonts-meta-extended. For even more fonts, issue

pacman -Ss infinality-bundle-fonts-extra

and choose anything you want.

xorg-fonts-type1 from [extra] was replaced with t1-xorg-fonts-meta-ib meta package. You do not need to install it manually: it will be pulled during the installation of ibfonts-meta-extended. Of course, it is always possible to customize your target font collection even further by selecting manually only those font families you want.