Draining the font swamp
Donn
donn.ingle at gmail.com
Sat May 26 13:03:36 UTC 2007
Hello all,
I have read the thread; here's my input.
> > Sounds like you want a specialized tool like fonty-python, designed
> > for people who do this kind of work.
> No! If properly implemented, most people would (almost) never have to
> do anything that they don't do now.
>
I agree with Jan. If the font chooser dialogues that users see are flexible
then they can show an initial choice of simple, appropriate fonts thus making
life easy for an 'average' user.
There is no clash between empowering font choosers and ease-of-use.
> And the way Fonty-Python works is a hackish workaround, as the author
> says himself
>
Yes - FP is a hack. It could be great if:
1. It was written in native code (not relying on a bunch of python libs).
2. There was a way to HIDE fonts from fontconfig EXCEPT those that are in
~/.fonts (thus cutting down the chooser clutter)
This sounds like a simple solution -- and perhaps it can be -- but it is not
an elegant one.
> > What I'm concerned with in this thread is the experience of an average
> > user, who cares very little about fonts, just wants their applications
> > to work, and be able to display readable text in their language. We
> > want to have the simplest, cleanest infrastructure to provide this.
>
Again, there is no clash. Any 'average' user will want a short list of fonts
that work in their locale. They will not (I am sure) want a list that is
longer than their arm. If they install new fonts (or other apps install them
unbeknownst to them) then the choosers start to grow. This is the problem.
If we give an average user a way to *filter* the fonts offered in a chooser,
then we are empowering them.
There should exist a default category (or locale-set, or whatever the term is)
that shows only the common fonts (for the given locale) that users will want
99% of the time. Equally, a mere click away, is the choice of many other
fonts, under their own category headings.
Furthermore, the user could spawn a 'manager' window where they can collect
fonts (from the system (fontconfig supplied) and from arbitrary
directories/devices) and poke them with a stick: tag them, collect them, sort
them, search them, see them in different sizes, view the glyphs, etc.
Those collections can then be chosen in the chooser, thus listing only the
fonts that the user put into it. NB: This does not mean that any fonts are
being 'uninstalled' - they are merely not being listed at the moment.
Again, this empowers users.
I am not sure where the solution lies. If anyone can correct me, here is my
basic grokking:
1. fontconfig collects fonts and makes font information (name and meta data)
available to other programs.
2. Those programs are responsible for *how* they present that information to
end-users OR they can use GTK's default control.
3. GTK (I assume) has a "font-chooser" control and *it* calls upon on
fontconfig to stuff itself with fonts.
So, apps can call upon fontconfig (rare) OR call upon GTK (common) to get an
array of fonts and related information -- that is what we see in the
font-choosers.
Given this, the obvious place to engineer this font manager is in that GTK
control. So, why not try to extend it's capacity while keeping it working
like it does now? New apps can send extra parameters to it and trigger the
more advanced display, while older apps will simply get the old chooser
without filtering.
Better yet, create the functionality so that other toolkits can implement the
gui front-end of their choice (MVC) and call on the font managing power of
the back-end - thus we enable other toolkits too. Enlightenment? Qt?
Am I smoking my socks?
:D
Regards,
Donn.
(I should mention that I can only code Python and Co. So I am really
saying "someone else should do this". Sorry.)
--
"Hath not a Jew eyes?" asked Shylock. Today the question is more pointed: Hath
not a Jew--or an Arab, or an African, or a baby, or a dog--a cerebral cortex
and a thalamus? The undeniable fact that we are all made of the same neural
flesh makes it impossible to deny our common capacity to suffer.
-- Steven Pinker
More information about the Ubuntu-devel-discuss
mailing list