1
0
mirror of https://github.com/gryf/wmaker.git synced 2025-12-19 12:28:22 +01:00
Files
wmaker/README.antialiasing
2002-11-30 02:19:46 +00:00

155 lines
8.4 KiB
Plaintext

Here is a step by step mini-HOWTO of the things needed to be done to get
antialiased fonts in Window Maker quickly:
1. Make sure you have a recent XFree server (4.x or newer, but 4.2.x or newer
is preferable). Also make sure it supports the RENDER extension (you can
see this in the output of xdpyinfo) and it has the freetype extension
module (you should have a /usr/X11R6/lib/modules/fonts/libfreetype.a file).
2. Make sure you have the following lines in your XF86Config file in the
"Module" section:
Load "type1"
Load "freetype"
Load "extmod"
(Not sure if extmod is really required for antialiased fonts, but it won't
hurt).
3. Install some True Type fonts say in /usr/X11R6/lib/X11/fonts/TrueType
4. To generate the fonts.scale and fonts.dir files in the directory where the
True Type fonts were installed you need an utility named ttmkfdir. There is
also an utility named mkttfdir but that only supports ISO8859-1 and JIS
encodings. From my experience ttmkfdir will recognize more fonts and works
better so I recommend using this one. You should issue these commands to
generate the fonts.scale and fonts.dir files:
cd /usr/X11R6/lib/X11/fonts/TrueType
ttmkfdir -o fonts.scale
mkfontdir
5. Now add /usr/X11R6/lib/X11/fonts/TrueType to your font path in the
XF86Config file. It goes in the "Files" section as:
FontPath "/usr/X11R6/lib/X11/fonts/TrueType"
I recommend to put this at the top of your font path list.
6. You can restart the X server at this point, to make all these changes take
effect.
7. Edit your /etc/X11/XftConfig file (or ~/.xftconfig if you don't have
access to edit the global file). Make sure that the True Type font path is
_before_ the Type1 font path. You should have something like this:
dir "/usr/X11R6/lib/X11/fonts/TrueType"
dir "/usr/X11R6/lib/X11/fonts/Type1"
If you add extra True type paths, add them before the Type1 path
If the Type1 path is first, and the Xft library fails to find/load the font
you asked for, it will load some very ugly defaults.
A sample XftConfig file is included with the Window Maker source at
toplevel as Sample.XftConfig. You can use that as reference and for ideas.
8. Compile and install Window Maker. No special switches are needed. However
watch the ./configure output and check if it says that Antialiased text
support is enabled in WINGs. If not, probably it failed to find libXft.
Check that you have the development files for your X server installed.
9. Edit ~/GNUstep/Defaults/WMGLOBAL and add entries for the following:
AntialiasedSystemFont = "-*-trebuchet ms-medium-r-normal-*-%d-*-*-*-*-*-*-*";
AntialiasedBoldSystemFont = "-*-trebuchet ms-bold-r-normal-*-%d-*-*-*-*-*-*-*";
AntialiasedText = Yes;
Use a font that you have installed on your system (arial and "trebuchet ms"
are good choices).
If AntialiasedText is enabled in WMGLOBAL, all WINGs based application will
use antialiased fonts by default (this includes Window Maker).
You can then disable the antialiased fonts on the per application basis by
adding an AntialiasedText = No; entry in their specific configuration files
The entry in the application's configuration file will always overwrite the
global setting from WMGLOBAL.
However if you want most of your WINGs applications to use normal fonts,
but just a few to use antialiased fonts, then put AntialiasedText = No; in
WMGLOBAL, and enable antialiased fonts only in the applications you want,
by adding the AntialiasedText = Yes; in their own configuration files
At this point all WINGs based application should be able to use antialiased
fonts. You can check this by enabling antialiasing and starting WPrefs. It
should show nice antialiased text everywhere.
Now to enable antialiased fonts in Window Maker, there are 2 possibilities:
10a. Add entries for all font options in ~/GNUstep/Defaults/WindowMaker
containing True Type fonts ("trebuchet ms", arial or verdana should work
fine). Don't use non True Type fonts like Helvetica, because Xft won't
load them, instead will load some defaults. Depending on the TrueTupe vs
Type1 path order in your XftConfig file and the options declared there,
it can range from "Extremely ugly" (if path to Type1 is before the path
to True Type fonts), to "Acceptable" (if the True Type path comes first).
Also modify all your themes to hold True Type fonts for all the font
options
10b. Leave the fonts as they are (for example leave the default Helvetica) in
~/GNUstep/Defaults/WindowMaker, and add an alias (or more) in the
XftConfig file. This alias should look something like:
match any family == "Helvetica" edit family += "Trebuchet MS";
match any family == "Courier" edit family += "Courier New";
...
Which means that every time the Xft library (which is used the WINGs) gets
a request to load a Helvetica font, it will load the "trebuchet ms" font
instead, keeping all the other font parameters unchanged.
Each of these 2 methods have advantages and disadvantages.
Case 10a:
---------
With the first method, you do more work and you will not be able to use
existing themes by just enabling antialiasing, because it will load default
fonts which may not look as you want. You will need to change the fonts in
every theme you want to use by replacing them with True Type fonts.
If you plan to switch antialiasing on/off, this method has a big disadvantage:
you need to edit your configuration/themes with every switch (at least if you
want Helvetica or other Type1 font for the non-antialiased case). This is
because if you have a font set to (say) Arial and want to switch antialiasing
off, you will get the normal version of Arial and you need to edit your font
options again to see Helvetica.
If you are happy with how the non-antialiased version of your True Type fonts
looks this disadvantage goes away. In this case you will use the same font
(say arial) with both antialiased/normal fonts.
OTOH this method gives you fine tune over the fonts used in Window Maker and
you will be able to set each individual font as you like.
Case 10b:
---------
With the second method, you have almost nothing to do. Just define the proper
aliases in the XftConfig file, and whenever some of the fonts you aliased is
requested it's True Type alias will be loaded.
This way you can use all your old themes and all you have to do except adding
the aliases to the XftConfig file, is to enable or disable antialiasing the
the configuration file.
For example if Helvetica is aliased to Arial, if you have antialiasing
disabled, Helvetica will be used, but if you enable antialiasing Arial will
be used instead. This method is very handy if you want to use existing themes
you don't want to modify, or if you want to switch antialiasing on/off and
don't want to edit your font options with every such switch.
The downside of this method is that if you don't have some font aliased in
the XftConfig file, it will load some default instead.
Also another downside is that you cannot fine tune your fonts. They will be
translated by the alias rules in XftConfig from whatever they are defined in
the theme. Sometimes this is not optimal.
For example if you aliased Helvetica to "Trebuchet MS" and all your screen
fonts are Helvetica (at different sizes). With antialiasing disabled the
Helvetica fonts everywhere looks good. However with antialiasing enabled the
10pt font used by the miniwindow titles looks better if Arial is used. Also
the 10pt font used by the clip looks better with Verdana. Same for the 12pt
font used by balloons which is also better if Arial is used. But with this
method you cannot do such fine tuning, unless you edit your font options in
the Window Maker configuration file, in which case there will be a mix of the
2 methods.
11. At this point if all was properly done, all you have to do is either add
an AntialiasedText = Yes; entry to ~/GNUstep/Defaults/WindowMaker, or
start WPrefs, goto the Expert Settings panel, and check the
"Smooth font edges" option. Currently you need to restart if you switch
antialiasing on/off (this may change in the future)
Final note: antialiased text only looks good if a True Type font is
used for it. Either by directly specifying it, or providing an alias in
the XftConfig file. The idea is that the font Xft loads (after all the
aliases have beed resolved) should point to a True Type font. Else
unpleasant results may show on your screen :P