https://wiki.archlinux.org/api.php?action=feedcontributions&user=IBertus&feedformat=atomArchWiki - User contributions [en]2024-03-29T09:05:30ZUser contributionsMediaWiki 1.41.0https://wiki.archlinux.org/index.php?title=Font_configuration&diff=4060Font configuration2005-09-29T16:48:01Z<p>IBertus: /* I have a TFT/DFP/LCD display uses a DVI cable and fonts look odd and fuzzy */</p>
<hr />
<div>[[Category:XServer]]<br />
by PhrakTure<br />
<br />
==X.org Font Configuration and beautification==<br />
:See the [http://www.x.org/X11R6.8.2/doc/fonts.html XOrg Font Documentation] for full details.<br />
:See the [http://freetype.sourceforge.net/freetype2/ FreeType2 Project Page] for details on the freetype X.org Module.<br />
<br />
===xorg.conf modules===<br />
*freetype - support for True Type (ttf, ttc), Type1 (pfa, pfb), CID (cid), CFF, Open Type, bitmap (bdf, pcf, snf), Windows (fnt), PFR, and Type42 fonts<br />
*type1 - support for Type1 (pfa, pfb) and CID (cid) fonts<br />
*speedo - support for Bitstream Speedo (spd) fonts<br />
*xtt - support for True Type (ttf, ttc) fonts ('''conflicts with freetype''')<br />
*bitmap - support for bitmap (bdf, pcf, snf) fonts<br />
<br />
As you can see, freetype provides everything provided by these other modules already. In addition, xtt will conflict with freetype.<br />
<br />
==X.org Font Path and /etc/fonts/==<br />
===xorg.conf font path===<br />
The font path described in the xorg.conf file is used for non-Xft fonts. It is worthwhile to specify a majority of fonts here. Applications which do not support Xft will fall back to the X Server's font path. Personally, I keep a minimum of fonts here - for use with xterm and it's ilk.<br />
<br />
===/etc/fonts/ font directories===<br />
The conf files in /etc/fonts (fonts.conf and local.conf) are used for fontconfig (Xft fonts). fonts.conf should never be changed, and all changes should be done in local.conf (for system wide changes) or ~/.fonts.conf (for user based changes).<br />
<br />
The directories listed in fonts.conf are scanned by fc-cache for use with fontconfig (/usr/share/fonts, /usr/X11R6/lib/X11/fonts, and ~/.fonts). All fonts should be placed in these directories. If installing new fonts, running '''fc-cache -fv''' will detect the changes.<br />
<br />
===Adding new fonts===<br />
When new fonts are added, they are just files on your system. A handful of utilities need to be run in order to tell the system that new fonts have been added.<br />
/usr/bin/fc-cache<br />
This will update the fontconfig cache, assuming the new fonts can be searched by fontconfig (see the above section about /etc/fonts)<br />
/usr/X11R6/bin/mkfontscale<br />
/usr/X11R6/bin/mkfontdir<br />
ln -s /usr/X11R6/lib/X11/fonts/encodings/encodings.dir encodings.dir<br />
<br />
These utilities need to be run from inside the directory of the new fonts. mkfontscale creates a fonts.scale file and mkfontdir creates a fonts.dir file. These files are used by the X Server, and only need to be done if the fonts are to be served through the FontPath of X.org. The encodings soft link allows the X Server to use these new fonts under all supported encodings. After all this, you should have 3 new files in the font dir : fonts.scale, fonts.dir, and encodings.dir.<br />
<br />
===fc-list and xlsfont utilities===<br />
These utilities will list, from the command line, all fonts available to each font subsystem. fc-list will list all fontconfig fonts, while xlsfont will list all X fonts. This is useful in combination with grep, i.e. "xlsfonts || grep -i bitstream" to see all bitstream fonts available.<br />
<br />
==Some Font Downloads==<br />
[http://www.vlaadworld.net/fontHow.php]<br />
[http://www.users.bigpond.net.au/gavindi/]<br />
[http://themes.freshmeat.net/projects/ppantsfonts/]<br />
[http://www.tobias-jung.de/seekingprofont/]<br />
<br />
==Goodies==<br />
===My fonts look like crap - I've configured everything right but it appears I just have no good fonts.===<br />
I would suggest the following packages from pacman to fix this:<br />
pacman -S ttf-ms-fonts ttf-cheapskate artwiz-fonts<br />
<br />
===I have some apps compiled against Gtk+ 2.2 and under and fonts still look like garbage.===<br />
Yeah, this happens. Modern GTK apps enable Xft by default, however, before 2.2 this was not the case. Maybe these apps should be updated to the newer GTK. If that is not an option, then adding the line '''export GDK''USE''XFT=1''' to a global settings file (/etc/profile, /etc/profile.d/gnome.sh, ~/.xinitrc, etc) will enable Xft for older apps<br />
<br />
===I have a similar problem as above with older Qt based apps.===<br />
Similar solution, add '''export QT_XFT=true''' somewhere.<br />
<br />
===Fonts in Gtk apps are too small when using KDE===<br />
Install gtk-qt-engine:<br />
*<pre># pacman -Sy gtk-qt-engine</pre><br />
*Change the font size for Gtk apps in `Control Center' -> `Appearance & Themes' -> `GTK Styles and Fonts'.<br />
<br />
===The bytecode interpreter makes my fonts look crappy, and it's compiled in, do I need to recompile?===<br />
Nope, not at all. Freetype's internal auto-hinting is just shut off. In some distros, the bytecode interpreter is compiled in and enabled by default. As a result, the bytecode interpreter overrides the freetype autohinter (which the developers are very proud of). To force the autohinter to be on, add the following to /etc/fonts/local.conf or ~/.fonts.conf<br />
<!-- Use the Autohinter --><br />
<match target="pattern"><br />
<edit name=<code>"autohint" mode=</code>"assign"><br />
<bool>true</bool><br />
</edit><br />
</match><br />
<br />
===Autohint works great but not for my bold fonts. How can I turn it off only for bold fonts?===<br />
Autohinter can give you nice fonts but often makes fonts too wide. This is especially annoying with bold fonts. Fortunatelly you can turn off autohinter for bold fonts while leaving it on for the rest.<br />
*First turn on autohinter (see above) and add the following to /etc/fonts/local.conf or ~/.fonts.conf<br />
<match target="font"><br />
<test name=<code>"weight" compare=</code>"more"><br />
<const>medium</const><br />
</test><br />
<edit name=<code>"autohint" mode=</code>"assign"><br />
<bool>false</bool><br />
</edit><br />
</match><br />
<br />
===I have a TFT/DFP/LCD display uses a DVI cable and fonts look odd and fuzzy===<br />
This is due to rendering differences between CRTs and non-CRTs. To fix this problem, you need to enable sub-pixel rendering. Edit the /etc/fonts/local.conf file and find the commented section with the "Enable subpixel rendering". Uncomment this section to enable this feature. NOTE that this will do nothing but a minor amount of extra work on CRTs and does not improve the display quality. Possible values for the '''const''' section include - rgb, bgr, vrgb, bgrv, and none.<br />
<!-- Enable sub-pixel rendering --><br />
<match target="font"><br />
<test qual=<code>"all" name=</code>"rgba"><const>unknown</const></test><br />
<edit name=<code>"rgba" mode=</code>"assign"><const>rgb</const></edit><br />
</match><br />
<br />
===I don't want my fonts Antialiased under a certain point size.===<br />
A sample of this is in the /etc/fonts/local.conf file. It is commented, just like the subpixel rendering section. Changes, if anything, should be made to the '''compare="less_eq"''' portion, and the '''<int>12</int>''' portion - these are the comparison operation and point size to compare, respectively.<br />
<!-- Disable anti-aliasing for fonts that are size <=12 --><br />
<match target="pattern"><br />
<test qual<code>"any" name</code>"size" compare="less_eq"><br />
<int>12</int><br />
</test><br />
<edit name<code>"antialias" mode</code>"assign"><bool>false</bool></edit><br />
</match><br />
<br />
===I'm using MS TrueType fonts (verdana) and want to enable anti-aliasing but only for bigger fonts that looks too jagged.===<br />
<?xml version="1.0"?><br />
<!DOCTYPE fontconfig SYSTEM "fonts.dtd"><br />
<fontconfig><br />
<br />
<match target="font" ><br />
<test compare<code>"more" name</code>"size" qual="any" ><br />
<double>12</double><br />
</test><br />
<edit mode<code>"assign" name</code>"antialias" ><br />
<bool>true</bool><br />
</edit><br />
</match><br />
<br />
<match target="font" ><br />
<test compare<code>"more" name</code>"pixelsize" qual="any" ><br />
<double>17</double><br />
</test><br />
<edit mode<code>"assign" name</code>"antialias" ><br />
<bool>true</bool><br />
</edit><br />
</match><br />
</fontconfig><br />
<br />
===I wanna add more fonts.===<br />
Save your fonts in a directory and add it to '''/etc/fonts/local.conf'''<br />
<br />
<!-- Additional font directories --><br />
<dir>/path/to/dir</dir><br />
<br />
===I want my font sizes to match my dpi settings===<br />
This goes into '''/etc/fonts/local.conf'''. This setting should match your dpi settings in either xorg.conf or your startx command. Use xdpyinfo to get your current dpi setting. Most people recommend/use a value of 96 or 100. Changing and setting the dpi of X is beyond the scope of this document (read: figure it out yourself... he he)<br />
<!-- Setup for DPI = 100 --><br />
<match target="pattern"><br />
<edit name<code>"dpi" mode</code>"assign"><double>100</double></edit><br />
</match><br />
<br />
===I don't like font <enter name here> and want to use <another font name> instead===<br />
Easy! Again, it's an entry in /etc/fonts/local.conf. Technically this just adds the "preferred" font in front of the list of names to be used, so it's not 100% guarenteed in the case of a missing font.<br />
<!-- Replace Helvetica with Bitstream Vera Sans Mono --><br />
<!-- Note, an alias for Helvetica should already exist in default local.conf files --><br />
<alias><br />
<family>Helvetica </family><br />
<prefer><family>Bitstream Vera Sans Mono</family></prefer><br />
<default><family>fixed</family></default><br />
</alias><br />
<br />
WikiMigration--[[User:Dlanor|dlanor]] 14:05, 23 Jul 2005 (EDT)</div>IBertushttps://wiki.archlinux.org/index.php?title=Font_configuration&diff=2648Font configuration2005-09-29T16:45:08Z<p>IBertus: /* Autohint works great but not for my bold fonts. How can I turn it off only for bold fonts? */</p>
<hr />
<div>[[Category:XServer]]<br />
by PhrakTure<br />
<br />
==X.org Font Configuration and beautification==<br />
:See the [http://www.x.org/X11R6.8.2/doc/fonts.html XOrg Font Documentation] for full details.<br />
:See the [http://freetype.sourceforge.net/freetype2/ FreeType2 Project Page] for details on the freetype X.org Module.<br />
<br />
===xorg.conf modules===<br />
*freetype - support for True Type (ttf, ttc), Type1 (pfa, pfb), CID (cid), CFF, Open Type, bitmap (bdf, pcf, snf), Windows (fnt), PFR, and Type42 fonts<br />
*type1 - support for Type1 (pfa, pfb) and CID (cid) fonts<br />
*speedo - support for Bitstream Speedo (spd) fonts<br />
*xtt - support for True Type (ttf, ttc) fonts ('''conflicts with freetype''')<br />
*bitmap - support for bitmap (bdf, pcf, snf) fonts<br />
<br />
As you can see, freetype provides everything provided by these other modules already. In addition, xtt will conflict with freetype.<br />
<br />
==X.org Font Path and /etc/fonts/==<br />
===xorg.conf font path===<br />
The font path described in the xorg.conf file is used for non-Xft fonts. It is worthwhile to specify a majority of fonts here. Applications which do not support Xft will fall back to the X Server's font path. Personally, I keep a minimum of fonts here - for use with xterm and it's ilk.<br />
<br />
===/etc/fonts/ font directories===<br />
The conf files in /etc/fonts (fonts.conf and local.conf) are used for fontconfig (Xft fonts). fonts.conf should never be changed, and all changes should be done in local.conf (for system wide changes) or ~/.fonts.conf (for user based changes).<br />
<br />
The directories listed in fonts.conf are scanned by fc-cache for use with fontconfig (/usr/share/fonts, /usr/X11R6/lib/X11/fonts, and ~/.fonts). All fonts should be placed in these directories. If installing new fonts, running '''fc-cache -fv''' will detect the changes.<br />
<br />
===Adding new fonts===<br />
When new fonts are added, they are just files on your system. A handful of utilities need to be run in order to tell the system that new fonts have been added.<br />
/usr/bin/fc-cache<br />
This will update the fontconfig cache, assuming the new fonts can be searched by fontconfig (see the above section about /etc/fonts)<br />
/usr/X11R6/bin/mkfontscale<br />
/usr/X11R6/bin/mkfontdir<br />
ln -s /usr/X11R6/lib/X11/fonts/encodings/encodings.dir encodings.dir<br />
<br />
These utilities need to be run from inside the directory of the new fonts. mkfontscale creates a fonts.scale file and mkfontdir creates a fonts.dir file. These files are used by the X Server, and only need to be done if the fonts are to be served through the FontPath of X.org. The encodings soft link allows the X Server to use these new fonts under all supported encodings. After all this, you should have 3 new files in the font dir : fonts.scale, fonts.dir, and encodings.dir.<br />
<br />
===fc-list and xlsfont utilities===<br />
These utilities will list, from the command line, all fonts available to each font subsystem. fc-list will list all fontconfig fonts, while xlsfont will list all X fonts. This is useful in combination with grep, i.e. "xlsfonts || grep -i bitstream" to see all bitstream fonts available.<br />
<br />
==Some Font Downloads==<br />
[http://www.vlaadworld.net/fontHow.php]<br />
[http://www.users.bigpond.net.au/gavindi/]<br />
[http://themes.freshmeat.net/projects/ppantsfonts/]<br />
[http://www.tobias-jung.de/seekingprofont/]<br />
<br />
==Goodies==<br />
===My fonts look like crap - I've configured everything right but it appears I just have no good fonts.===<br />
I would suggest the following packages from pacman to fix this:<br />
pacman -S ttf-ms-fonts ttf-cheapskate artwiz-fonts<br />
<br />
===I have some apps compiled against Gtk+ 2.2 and under and fonts still look like garbage.===<br />
Yeah, this happens. Modern GTK apps enable Xft by default, however, before 2.2 this was not the case. Maybe these apps should be updated to the newer GTK. If that is not an option, then adding the line '''export GDK''USE''XFT=1''' to a global settings file (/etc/profile, /etc/profile.d/gnome.sh, ~/.xinitrc, etc) will enable Xft for older apps<br />
<br />
===I have a similar problem as above with older Qt based apps.===<br />
Similar solution, add '''export QT_XFT=true''' somewhere.<br />
<br />
===Fonts in Gtk apps are too small when using KDE===<br />
Install gtk-qt-engine:<br />
*<pre># pacman -Sy gtk-qt-engine</pre><br />
*Change the font size for Gtk apps in `Control Center' -> `Appearance & Themes' -> `GTK Styles and Fonts'.<br />
<br />
===The bytecode interpreter makes my fonts look crappy, and it's compiled in, do I need to recompile?===<br />
Nope, not at all. Freetype's internal auto-hinting is just shut off. In some distros, the bytecode interpreter is compiled in and enabled by default. As a result, the bytecode interpreter overrides the freetype autohinter (which the developers are very proud of). To force the autohinter to be on, add the following to /etc/fonts/local.conf or ~/.fonts.conf<br />
<!-- Use the Autohinter --><br />
<match target="pattern"><br />
<edit name=<code>"autohint" mode=</code>"assign"><br />
<bool>true</bool><br />
</edit><br />
</match><br />
<br />
===Autohint works great but not for my bold fonts. How can I turn it off only for bold fonts?===<br />
Autohinter can give you nice fonts but often makes fonts too wide. This is especially annoying with bold fonts. Fortunatelly you can turn off autohinter for bold fonts while leaving it on for the rest.<br />
*First turn on autohinter (see above) and add the following to /etc/fonts/local.conf or ~/.fonts.conf<br />
<match target="font"><br />
<test name=<code>"weight" compare=</code>"more"><br />
<const>medium</const><br />
</test><br />
<edit name=<code>"autohint" mode=</code>"assign"><br />
<bool>false</bool><br />
</edit><br />
</match><br />
<br />
===I have a TFT/DFP/LCD display uses a DVI cable and fonts look odd and fuzzy===<br />
This is due to rendering differences between CRTs and non-CRTs. To fix this problem, you need to enable sub-pixel rendering. Edit the /etc/fonts/local.conf file and find the commented section with the "Enable subpixel rendering". Uncomment this section to enable this feature. NOTE that this will do nothing but a minor amount of extra work on CRTs and does not improve the display quality. Possible values for the '''const''' section include - rgb, bgr, vrgb, bgrv, and none.<br />
<!-- Enable sub-pixel rendering --><br />
<match target="font"><br />
<test qual<code>"all" name</code>"rgba"><const>unknown</const></test><br />
<edit name<code>"rgba" mode</code>"assign"><const>rgb</const></edit><br />
</match><br />
<br />
===I don't want my fonts Antialiased under a certain point size.===<br />
A sample of this is in the /etc/fonts/local.conf file. It is commented, just like the subpixel rendering section. Changes, if anything, should be made to the '''compare="less_eq"''' portion, and the '''<int>12</int>''' portion - these are the comparison operation and point size to compare, respectively.<br />
<!-- Disable anti-aliasing for fonts that are size <=12 --><br />
<match target="pattern"><br />
<test qual<code>"any" name</code>"size" compare="less_eq"><br />
<int>12</int><br />
</test><br />
<edit name<code>"antialias" mode</code>"assign"><bool>false</bool></edit><br />
</match><br />
<br />
===I'm using MS TrueType fonts (verdana) and want to enable anti-aliasing but only for bigger fonts that looks too jagged.===<br />
<?xml version="1.0"?><br />
<!DOCTYPE fontconfig SYSTEM "fonts.dtd"><br />
<fontconfig><br />
<br />
<match target="font" ><br />
<test compare<code>"more" name</code>"size" qual="any" ><br />
<double>12</double><br />
</test><br />
<edit mode<code>"assign" name</code>"antialias" ><br />
<bool>true</bool><br />
</edit><br />
</match><br />
<br />
<match target="font" ><br />
<test compare<code>"more" name</code>"pixelsize" qual="any" ><br />
<double>17</double><br />
</test><br />
<edit mode<code>"assign" name</code>"antialias" ><br />
<bool>true</bool><br />
</edit><br />
</match><br />
</fontconfig><br />
<br />
===I wanna add more fonts.===<br />
Save your fonts in a directory and add it to '''/etc/fonts/local.conf'''<br />
<br />
<!-- Additional font directories --><br />
<dir>/path/to/dir</dir><br />
<br />
===I want my font sizes to match my dpi settings===<br />
This goes into '''/etc/fonts/local.conf'''. This setting should match your dpi settings in either xorg.conf or your startx command. Use xdpyinfo to get your current dpi setting. Most people recommend/use a value of 96 or 100. Changing and setting the dpi of X is beyond the scope of this document (read: figure it out yourself... he he)<br />
<!-- Setup for DPI = 100 --><br />
<match target="pattern"><br />
<edit name<code>"dpi" mode</code>"assign"><double>100</double></edit><br />
</match><br />
<br />
===I don't like font <enter name here> and want to use <another font name> instead===<br />
Easy! Again, it's an entry in /etc/fonts/local.conf. Technically this just adds the "preferred" font in front of the list of names to be used, so it's not 100% guarenteed in the case of a missing font.<br />
<!-- Replace Helvetica with Bitstream Vera Sans Mono --><br />
<!-- Note, an alias for Helvetica should already exist in default local.conf files --><br />
<alias><br />
<family>Helvetica </family><br />
<prefer><family>Bitstream Vera Sans Mono</family></prefer><br />
<default><family>fixed</family></default><br />
</alias><br />
<br />
WikiMigration--[[User:Dlanor|dlanor]] 14:05, 23 Jul 2005 (EDT)</div>IBertushttps://wiki.archlinux.org/index.php?title=Font_configuration&diff=2647Font configuration2005-09-29T16:44:30Z<p>IBertus: /* The bytecode interpreter makes my fonts look crappy, and it's compiled in, do I need to recompile? */</p>
<hr />
<div>[[Category:XServer]]<br />
by PhrakTure<br />
<br />
==X.org Font Configuration and beautification==<br />
:See the [http://www.x.org/X11R6.8.2/doc/fonts.html XOrg Font Documentation] for full details.<br />
:See the [http://freetype.sourceforge.net/freetype2/ FreeType2 Project Page] for details on the freetype X.org Module.<br />
<br />
===xorg.conf modules===<br />
*freetype - support for True Type (ttf, ttc), Type1 (pfa, pfb), CID (cid), CFF, Open Type, bitmap (bdf, pcf, snf), Windows (fnt), PFR, and Type42 fonts<br />
*type1 - support for Type1 (pfa, pfb) and CID (cid) fonts<br />
*speedo - support for Bitstream Speedo (spd) fonts<br />
*xtt - support for True Type (ttf, ttc) fonts ('''conflicts with freetype''')<br />
*bitmap - support for bitmap (bdf, pcf, snf) fonts<br />
<br />
As you can see, freetype provides everything provided by these other modules already. In addition, xtt will conflict with freetype.<br />
<br />
==X.org Font Path and /etc/fonts/==<br />
===xorg.conf font path===<br />
The font path described in the xorg.conf file is used for non-Xft fonts. It is worthwhile to specify a majority of fonts here. Applications which do not support Xft will fall back to the X Server's font path. Personally, I keep a minimum of fonts here - for use with xterm and it's ilk.<br />
<br />
===/etc/fonts/ font directories===<br />
The conf files in /etc/fonts (fonts.conf and local.conf) are used for fontconfig (Xft fonts). fonts.conf should never be changed, and all changes should be done in local.conf (for system wide changes) or ~/.fonts.conf (for user based changes).<br />
<br />
The directories listed in fonts.conf are scanned by fc-cache for use with fontconfig (/usr/share/fonts, /usr/X11R6/lib/X11/fonts, and ~/.fonts). All fonts should be placed in these directories. If installing new fonts, running '''fc-cache -fv''' will detect the changes.<br />
<br />
===Adding new fonts===<br />
When new fonts are added, they are just files on your system. A handful of utilities need to be run in order to tell the system that new fonts have been added.<br />
/usr/bin/fc-cache<br />
This will update the fontconfig cache, assuming the new fonts can be searched by fontconfig (see the above section about /etc/fonts)<br />
/usr/X11R6/bin/mkfontscale<br />
/usr/X11R6/bin/mkfontdir<br />
ln -s /usr/X11R6/lib/X11/fonts/encodings/encodings.dir encodings.dir<br />
<br />
These utilities need to be run from inside the directory of the new fonts. mkfontscale creates a fonts.scale file and mkfontdir creates a fonts.dir file. These files are used by the X Server, and only need to be done if the fonts are to be served through the FontPath of X.org. The encodings soft link allows the X Server to use these new fonts under all supported encodings. After all this, you should have 3 new files in the font dir : fonts.scale, fonts.dir, and encodings.dir.<br />
<br />
===fc-list and xlsfont utilities===<br />
These utilities will list, from the command line, all fonts available to each font subsystem. fc-list will list all fontconfig fonts, while xlsfont will list all X fonts. This is useful in combination with grep, i.e. "xlsfonts || grep -i bitstream" to see all bitstream fonts available.<br />
<br />
==Some Font Downloads==<br />
[http://www.vlaadworld.net/fontHow.php]<br />
[http://www.users.bigpond.net.au/gavindi/]<br />
[http://themes.freshmeat.net/projects/ppantsfonts/]<br />
[http://www.tobias-jung.de/seekingprofont/]<br />
<br />
==Goodies==<br />
===My fonts look like crap - I've configured everything right but it appears I just have no good fonts.===<br />
I would suggest the following packages from pacman to fix this:<br />
pacman -S ttf-ms-fonts ttf-cheapskate artwiz-fonts<br />
<br />
===I have some apps compiled against Gtk+ 2.2 and under and fonts still look like garbage.===<br />
Yeah, this happens. Modern GTK apps enable Xft by default, however, before 2.2 this was not the case. Maybe these apps should be updated to the newer GTK. If that is not an option, then adding the line '''export GDK''USE''XFT=1''' to a global settings file (/etc/profile, /etc/profile.d/gnome.sh, ~/.xinitrc, etc) will enable Xft for older apps<br />
<br />
===I have a similar problem as above with older Qt based apps.===<br />
Similar solution, add '''export QT_XFT=true''' somewhere.<br />
<br />
===Fonts in Gtk apps are too small when using KDE===<br />
Install gtk-qt-engine:<br />
*<pre># pacman -Sy gtk-qt-engine</pre><br />
*Change the font size for Gtk apps in `Control Center' -> `Appearance & Themes' -> `GTK Styles and Fonts'.<br />
<br />
===The bytecode interpreter makes my fonts look crappy, and it's compiled in, do I need to recompile?===<br />
Nope, not at all. Freetype's internal auto-hinting is just shut off. In some distros, the bytecode interpreter is compiled in and enabled by default. As a result, the bytecode interpreter overrides the freetype autohinter (which the developers are very proud of). To force the autohinter to be on, add the following to /etc/fonts/local.conf or ~/.fonts.conf<br />
<!-- Use the Autohinter --><br />
<match target="pattern"><br />
<edit name=<code>"autohint" mode=</code>"assign"><br />
<bool>true</bool><br />
</edit><br />
</match><br />
<br />
===Autohint works great but not for my bold fonts. How can I turn it off only for bold fonts?===<br />
Autohinter can give you nice fonts but often makes fonts too wide. This is especially annoying with bold fonts. Fortunatelly you can turn off autohinter for bold fonts while leaving it on for the rest.<br />
*First turn on autohinter (see above) and add the following to /etc/fonts/local.conf or ~/.fonts.conf<br />
<match target="font"><br />
<test name<code>"weight" compare</code>"more"><br />
<const>medium</const><br />
</test><br />
<edit name<code>"autohint" mode</code>"assign"><br />
<bool>false</bool><br />
</edit><br />
</match><br />
<br />
===I have a TFT/DFP/LCD display uses a DVI cable and fonts look odd and fuzzy===<br />
This is due to rendering differences between CRTs and non-CRTs. To fix this problem, you need to enable sub-pixel rendering. Edit the /etc/fonts/local.conf file and find the commented section with the "Enable subpixel rendering". Uncomment this section to enable this feature. NOTE that this will do nothing but a minor amount of extra work on CRTs and does not improve the display quality. Possible values for the '''const''' section include - rgb, bgr, vrgb, bgrv, and none.<br />
<!-- Enable sub-pixel rendering --><br />
<match target="font"><br />
<test qual<code>"all" name</code>"rgba"><const>unknown</const></test><br />
<edit name<code>"rgba" mode</code>"assign"><const>rgb</const></edit><br />
</match><br />
<br />
===I don't want my fonts Antialiased under a certain point size.===<br />
A sample of this is in the /etc/fonts/local.conf file. It is commented, just like the subpixel rendering section. Changes, if anything, should be made to the '''compare="less_eq"''' portion, and the '''<int>12</int>''' portion - these are the comparison operation and point size to compare, respectively.<br />
<!-- Disable anti-aliasing for fonts that are size <=12 --><br />
<match target="pattern"><br />
<test qual<code>"any" name</code>"size" compare="less_eq"><br />
<int>12</int><br />
</test><br />
<edit name<code>"antialias" mode</code>"assign"><bool>false</bool></edit><br />
</match><br />
<br />
===I'm using MS TrueType fonts (verdana) and want to enable anti-aliasing but only for bigger fonts that looks too jagged.===<br />
<?xml version="1.0"?><br />
<!DOCTYPE fontconfig SYSTEM "fonts.dtd"><br />
<fontconfig><br />
<br />
<match target="font" ><br />
<test compare<code>"more" name</code>"size" qual="any" ><br />
<double>12</double><br />
</test><br />
<edit mode<code>"assign" name</code>"antialias" ><br />
<bool>true</bool><br />
</edit><br />
</match><br />
<br />
<match target="font" ><br />
<test compare<code>"more" name</code>"pixelsize" qual="any" ><br />
<double>17</double><br />
</test><br />
<edit mode<code>"assign" name</code>"antialias" ><br />
<bool>true</bool><br />
</edit><br />
</match><br />
</fontconfig><br />
<br />
===I wanna add more fonts.===<br />
Save your fonts in a directory and add it to '''/etc/fonts/local.conf'''<br />
<br />
<!-- Additional font directories --><br />
<dir>/path/to/dir</dir><br />
<br />
===I want my font sizes to match my dpi settings===<br />
This goes into '''/etc/fonts/local.conf'''. This setting should match your dpi settings in either xorg.conf or your startx command. Use xdpyinfo to get your current dpi setting. Most people recommend/use a value of 96 or 100. Changing and setting the dpi of X is beyond the scope of this document (read: figure it out yourself... he he)<br />
<!-- Setup for DPI = 100 --><br />
<match target="pattern"><br />
<edit name<code>"dpi" mode</code>"assign"><double>100</double></edit><br />
</match><br />
<br />
===I don't like font <enter name here> and want to use <another font name> instead===<br />
Easy! Again, it's an entry in /etc/fonts/local.conf. Technically this just adds the "preferred" font in front of the list of names to be used, so it's not 100% guarenteed in the case of a missing font.<br />
<!-- Replace Helvetica with Bitstream Vera Sans Mono --><br />
<!-- Note, an alias for Helvetica should already exist in default local.conf files --><br />
<alias><br />
<family>Helvetica </family><br />
<prefer><family>Bitstream Vera Sans Mono</family></prefer><br />
<default><family>fixed</family></default><br />
</alias><br />
<br />
WikiMigration--[[User:Dlanor|dlanor]] 14:05, 23 Jul 2005 (EDT)</div>IBertushttps://wiki.archlinux.org/index.php?title=Fluxbox/Style_guide&diff=4161Fluxbox/Style guide2005-08-16T00:11:35Z<p>IBertus: /* {round} */</p>
<hr />
<div>[[Category:Desktop]]<br />
<br />
This is a list of all the theme items that can be customized in a fluxbox theme.cfg<br><br />
This file is in two parts: the first explains what each of the items does the second part is a complete list that can be copied and pasted into a theme.cfg to get you started.<br><br />
This has been specially structured to group the relevant items<br />
<br />
==How the items work==<br />
<br />
Each item is structured main''object.sub''object.item: value e.g. toolbar.clock.pixmap: value<br />
<br />
The values that are available only depend on the item part e.g. .pixmap: {filename}<br />
<br />
The pixmap item needs a {filename} e.g. toolbar.clock.pixmap: clock.xpm<br />
<br />
That's it! All you need to know is the options for each value. Here I'll show what the different options can befor each value with some examples. Part 2 gives a list of all the items and the type of value needed for each and can be copied to a file by you.<br />
<br />
==={texture type}===<br />
<br />
pixmap options: requires a filename in *.pixmap<br />
pixmap<br />
tiled<br />
<br />
non-pixmap options: uses '''.color to color the objects, use '''.colorTo for gradients and highlights<br />
flat<br />
gradient<br />
vertical<br />
horizontal<br />
diagonal<br />
crossdiagonal<br />
pipecross<br />
elliptic<br />
rectangle<br />
pyramid<br />
e.g menu.frame: Flat Gradient Vertical<br><br />
or<br />
raised<br />
sunken<br />
bevel1<br />
bevel2<br />
gradient<br />
vertical<br />
horizontal<br />
diagonal<br />
crossdiagonal<br />
pipecross<br />
elliptic<br />
rectangle<br />
pyramid<br />
e.g. menu.title: Raised Bevel1 Gradient Vertical<br />
<br />
==={color}===<br />
any hex color<br />
<pre><br />
#ffffff<br />
#000000<br />
</pre><br />
e.g menu.title.textColor: #ffffff<br />
<br />
any rgb colour as shown in /usr/X11R6/lib/X11/rgb.txt<br />
rgb:4/3/2<br />
e.g menu.title.textColor: rgb:4/3/2<br />
<br />
any colour<br />
white<br />
black<br />
<br />
e.g menu.title.textColor: white<br />
<br />
==={filename}===<br />
the name of a .xpm file stored in pixmaps, which should be in the same directory as theme.cfg<br />
e.g. menu.title.pixmap: iconbarf.xpm<br />
<br />
==={integer}===<br />
a whole number that gives the height/width of something in pixels<br />
e.g window.title.height: 22<br />
<br />
==={boolean}===<br />
Something set to either on or off<br />
true<br />
false<br />
e.g.toolbar.shaped: true<br />
<br />
==={alpha}===<br />
a transparency setting - should be an integer between 0 and 255 where 0 is invisible/transparent<br><br />
and 255 is solid/opaque - 150 is popular<br />
<br />
e.g.window.alpha: 255<br />
<br />
==={round}===<br />
rounding options for corners<br />
TopLeft<br />
TopRight<br />
BottomLeft<br />
BottomRight<br />
e.g.window.roundCorners: TopLeft TopRight<br />
<br />
==={justify}===<br />
where text or an image is postioned<br />
Center<br />
Left<br />
Right<br />
e.g.window.justify: Center<br />
<br />
==={bullet}===<br />
only used for menu.bullet: option. for non pixmaps styles only.<br />
triangle<br />
square<br />
e.g.menu.bullet: triangle<br />
<br />
==={string}===<br />
<br />
only used for the root.command: option. lets you set the path to a wallapaper image and<br />
which application to display it<br />
fbsetbg -f wallpaper.png<br />
e.g.root.command: fbsetbg -a mywallpaper.png<br />
<br />
==={font}===<br />
what font to use!<br />
font-size<br />
e.g.menu.frame.font: trebuchet-10<br />
<br />
there are several options that can be used in any combination<br />
bold<br />
shadow<br />
italic<br />
these need to be colon or comma separated<br />
font-size:bold:shadow:italic<br />
e.g.menu.title.font: trebuchet-10:shadow:bold<br />
<br />
===Explanation of items that are a little confusing===<br />
<br />
.colorTo - if you use a gradient setting then the belnd is between .color and .colorTo<br />
<br />
.borderWidth - gives a border of {integer} width. 0 will give no border<br />
<br />
.bevelwidth - the bevel is between the border and the object e.g. in the menu,<br />
menu.bevelWidth increases the space between menu entries<br />
<br />
.picColor - sets the color of a default fluxbox image that is added on top of an item e.g. toolbar.button.picColor<br />
<br />
.alpha - a transparency setting<br />
<br />
===Notes for getting started===<br />
<br />
1. using window.label and window.title with window.bevelWidth<br />
<br />
When you use window.label this will overlay window.title. however, if you set<br />
window.bevelWidth the window.title will show as a "border" around window.label<br />
i.e. window.label floats over window.title<br />
This allows some quite simple but cool effects but does restrict window buttons (see below)<br />
<br />
2. using toolbar and toolbar.iconbar.*, toolbar.clock, toolbar.workspace, toolbar.button<br />
<br />
As with 1. above. toolbar is overlayed by toolbar.iconbar.*, toolbar.clock, toolbar.workspace<br />
and toolbar.button. Again setting toolbar.bevelWidth allows all of the these to float over<br />
toolbar, giving a border/layer effect<br />
<br />
3. using window buttons<br />
<br />
If window.bevelWidth is '''not''' used then all window.* buttons (close, icon, etc) may be any size<br />
but must be '''square''' and all have the '''same dimensions'''. This allows some very creative button designs and most styles at Fluxmod use this method<br />
<br />
However, if window.bevelWidth '''is''' used then the buttons are restricted in size by the '''font''' used for window.label. Here the best thing to do is choose the font size you want for window.label then make your pixmaps to the correct size. Or, in this case, you could set the window.button options to give a background and allow fluxbox to overlay with the default pixmaps (you can choose the colour with window.button.*.picColor) or create your own to the correct dimensions.<br />
<br />
4. using * (wildcards)<br />
<br />
==structured items==<br />
a theme.cfg template, laid out as below, is available for you to download and edit here http://dtw.jiwe.org/share/StyleItems.txt<br />
<br />
<pre><br />
This work is licensed under the Creative Commons<br />
Attribution-NonCommercial-ShareAlike License.<br />
To view a copy of this license, visit<br />
http://creativecommons.org/licenses/by-nc-sa/1.0/<br />
or send a letter to Creative Commons,<br />
559 Nathan Abbott Way, Stanford, California 94305, USA.<br />
<br />
---------------------------------------------<br />
FluxMOD http://www.fluxmod.dk<br />
Style Name:<br />
Style Author:<br />
Style Date:<br />
---------------------------------------------<br />
</pre><br />
<br />
===The toolbar===<br />
<br />
====general settings====<br />
<br />
toolbar.borderWidth: {integer}<br><br />
toolbar.borderColor: {color}<br><br />
<br />
toolbar.shaped: {boolean}<br><br />
toolbar.alpha: {alpha}<br><br />
toolbar.height: {integer}<br><br />
<br />
====The clock area====<br />
toolbar.clock.font: {font}<br><br />
toolbar.clock.textColor: {color}<br><br />
toolbar.clock.justify: {justify}<br><br />
<br />
toolbar.clock: {texture type}<br><br />
toolbar.clock.pixmap: {filename}<br><br />
toolbar.clock.color: {color}<br><br />
toolbar.clock.colorTo: {color}<br><br />
toolbar.clock.borderWidth: {integer}<br><br />
toolbar.clock.borderColor: {color}<br><br />
<br />
====The workspace title area====<br />
toolbar.workspace.font: {font}<br><br />
toolbar.workspace.textColor: {color}<br><br />
toolbar.workspace.justify: {justify}<br><br />
<br />
toolbar.workspace: {texture type}<br><br />
toolbar.workspace.pixmap: {filename}<br><br />
toolbar.workspace.color: {color}<br><br />
toolbar.workspace.colorTo: {color}<br><br />
toolbar.workspace.borderWidth: {integer}<br><br />
toolbar.workspace.borderColor: {color}<br><br />
<br />
====The iconbar====<br />
where windows are shown depending on Iconbar Mode which is set by right-clicking on the fluxbox toolbar<br><br />
<br />
toolbar.iconbar.borderWidth: {integer}<br><br />
toolbar.iconbar.borderColor: {color}<br><br />
<br />
====Empty - when no windows are shown as icons====<br />
toolbar.iconbar.empty: {texture type}<br><br />
toolbar.iconbar.empty.pixmap: {filename}<br><br />
toolbar.iconbar.empty.color: {color}<br><br />
toolbar.iconbar.empty.colorTo: {color}<br><br />
<br />
====Focused window icon====<br />
toolbar.iconbar.focused.font: {font}<br><br />
toolbar.iconbar.focused.textColor: {color}<br><br />
toolbar.iconbar.focused.justify: {justify}<br><br />
toolbar.iconbar.focused: {texture type}<br><br />
toolbar.iconbar.focused.pixmap: {filename}<br><br />
toolbar.iconbar.focused.color: {color}<br><br />
toolbar.iconbar.focused.colorTo: {color}<br><br />
toolbar.iconbar.focused.borderWidth: {integer}<br><br />
toolbar.iconbar.focused.borderColor: {color}<br><br />
<br />
====Unfocused window icon====<br />
toolbar.iconbar.unfocused.font: {font}<br><br />
toolbar.iconbar.unfocused.textColor: {color}<br><br />
toolbar.iconbar.unfocused.justify: {justify}<br><br />
toolbar.iconbar.unfocused: {texture type}<br><br />
toolbar.iconbar.unfocused.pixmap: {filename}<br><br />
toolbar.iconbar.unfocused.color: {color}<br><br />
toolbar.iconbar.unfocused.colorTo: {color}<br><br />
toolbar.iconbar.unfocused.borderWidth: {integer}<br><br />
toolbar.iconbar.unfocused.borderColor: {color}<br><br />
<br />
====The toolbar buttons for prevworkspace, nextworkspace, prevwindow and next window====<br />
toolbar.button {texture type}<br><br />
toolbar.button.pixmap: {filename}<br><br />
toolbar.button.color: {color}<br><br />
toolbar.button.colorTo: {color}<br><br />
toolbar.button.picColor: {color}<br><br />
toolbar.button.pressed: {texture type}<br><br />
toolbar.button.pressed.pixmap: {filename}<br><br />
toolbar.button.pressed.color: {color}<br><br />
toolbar.button.pressed.colorTo: {color}<br><br />
toolbar.button.pressed.picColor: {color}<br><br />
<br />
===The windows===<br />
focus is the currently selected window - unfocus is in the background<br />
<br />
====general====<br />
window.font: {font}<br><br />
window.justify: {justify}<br><br />
window.roundCorners: {round}<br><br />
window.alpha: {alpha}<br><br />
window.bevelWidth: {integer}<br><br />
window.borderWidth: {integer}<br><br />
window.borderColor: {color}<br><br />
<br />
===focused and unfocused window===<br />
<br />
====titlebar====<br />
the "background" of the window title. This is layered under window.label - see the note in part one<br />
<br />
window.title.height: {integer} <br><br />
window.title.focus: {texture type}<br><br />
window.title.focus.pixmap: {filename}<br><br />
window.title.focus.color: {color}<br><br />
window.title.focus.colorTo: {color}<br><br />
window.title.unfocus: {texture type}<br><br />
window.title.unfocus.pixmap: {filename}<br><br />
window.title.unfocus.color: {color}<br><br />
window.title.unfocus.colorTo: {color}<br><br />
<br />
====label====<br />
the text background. This is layered over window.title - see the note in part one<br />
<br />
window.label.focus: {texture type}<br><br />
window.label.focus.pixmap: {filename}<br><br />
window.label.focus.color: {color}<br><br />
window.label.focus.colorTo: {color}<br><br />
window.label.focus.textColor: {color}<br><br />
window.label.unfocus: {texture type}<br><br />
window.label.unfocus.pixmap: {filename}<br><br />
window.label.unfocus.color: {color}<br><br />
window.label.unfocus.colorTo: {color}<br><br />
window.label.unfocus.textColor: {color}<br><br />
<br />
====handle====<br />
the bar along the bottom of the window for resizing vertically<br />
<br />
window.handleWidth: {integer}<br><br />
window.handle.focus: {texture type}<br><br />
window.handle.focus.pixmap: {filename}<br><br />
window.handle.focus.color: {color}<br><br />
window.handle.focus.colorTo: {color}<br><br />
window.handle.unfocus: {texture type}<br><br />
window.handle.unfocus.pixmap: {filename}<br><br />
window.handle.unfocus.color: {color}<br><br />
window.handle.unfocus.colorTo: {color}<br><br />
<br />
====grips====<br />
either side of the handle for resizing in horizontally and vertically<br />
<br />
window.grip.focus: {texture type}<br><br />
window.grip.focus.pixmap: {filename}<br><br />
window.grip.focus.color: {color}<br><br />
window.grip.focus.colorTo: {color}<br><br />
window.grip.unfocus: {texture type}<br><br />
window.grip.unfocus.pixmap: {filename}<br><br />
window.grip.unfocus.color: {color}<br><br />
window.grip.unfocus.colorTo: {color}<br><br />
<br />
====button====<br />
sets the background for the window buttons - not visible if window buttons (below) are used<br />
<br />
window.button.focus: {texture type}<br><br />
window.button.focus.pixmap: {filename}<br><br />
window.button.focus.color: {color}<br><br />
window.button.focus.colorTo: {color}<br><br />
window.button.focus.picColor: {color}<br><br />
window.button.unfocus: {texture type}<br><br />
window.button.unfocus.pixmap: {filename}<br><br />
window.button.unfocus.color: {color}<br><br />
window.button.unfocus.colorTo: {color}<br><br />
window.button.unfocus.picColor: {color}<br><br />
window.button.pressed: {texture type}<br><br />
window.button.pressed.pixmap: {filename}<br><br />
window.button.pressed.color: {color}<br><br />
window.button.pressed.colorTo: {color}<br><br />
<br />
====window buttons====<br />
close, max and min, shade, stick and stuck<br />
<br />
====close====<br />
window.close.pixmap: {filename}<br><br />
window.close.unfocus.pixmap: {filename}<br><br />
window.close.pressed.pixmap: {filename}<br><br />
<br />
====max====<br />
window.maximize.pixmap: {filename}<br><br />
window.maximize.unfocus.pixmap: {filename}<br><br />
window.maximize.pressed.pixmap: {filename}<br><br />
<br />
====icon====<br />
window.iconify.pixmap: {filename}<br><br />
window.iconify.unfocus.pixmap: {filename}<br><br />
window.iconify.pressed.pixmap: {filename}<br><br />
<br />
====stick====<br />
window.stick.pixmap: {filename}<br><br />
window.stick.unfocus.pixmap: {filename}<br><br />
window.stick.pressed.pixmap: {filename}<br><br />
<br />
====stuck====<br />
window.stuck.pixmap: {filename}<br><br />
window.stuck.unfocus.pixmap: {filename}<br><br />
<br />
===The menu===<br />
<br />
====general settings====<br />
menu.borderWidth: {integer}<br><br />
menu.bevelWidth: {integer}<br><br />
menu.borderColor: {color}<br><br />
<br />
====title - top of each menu====<br />
menu.title.font: {font}<br><br />
menu.title.textColor: {color}<br><br />
menu.title.justify: {justify}<br><br />
menu.title: {texture type}<br><br />
menu.title.pixmap: {filename}<br><br />
menu.title.color: {color}<br><br />
menu.title.colorTo: {color}<br><br />
<br />
====frame - menu body====<br />
menu.frame.font: {font}<br><br />
menu.frame.textColor: {color}<br><br />
menu.frame.disableColor: {color}<br><br />
menu.frame.justify: {justify}<br><br />
menu.frame: {texture type}<br><br />
menu.frame.pixmap: {filename}<br><br />
menu.frame.color: {color}<br><br />
menu.frame.colorTo: {color}<br><br />
<br />
====hilite====<br />
how the options are highlighted when mouse is over them<br />
<br />
menu.hilite.textColor: {color}<br><br />
menu.hilite: {texture type}<br><br />
menu.hilite.pixmap: {filename}<br><br />
menu.hilite.color: {color}<br><br />
menu.hilite.colorTo: {color}<br><br />
<br />
====details====<br />
menu.roundCorners: {round}<br><br />
menu.bullet.position: {justify}<br><br />
menu.bullet: {bullet}<br><br />
menu.submenu.pixmap: {filename}<br><br />
menu.selected.pixmap: {filename}<br><br />
menu.unselected.pixmap: {filename}<br><br />
<br />
<br />
====set the wallpaper with an app...====<br />
rootCommand: {string}<br><br />
<br />
====The slit====<br />
settings for the slit - not applicable if slit alpha is set to 0<br />
<br />
slit: {texture type}<br><br />
slit.pixmap: {filename}<br><br />
slit.color: {color}<br><br />
slit.colorTo: {color}<br><br />
slit.borderWidth: {integer}<br><br />
slit.bevelWidth: {integer}<br><br />
slit.borderColor: {color}<br></div>IBertushttps://wiki.archlinux.org/index.php?title=Fluxbox/Style_guide&diff=1846Fluxbox/Style guide2005-08-10T04:49:13Z<p>IBertus: /* titlebar */</p>
<hr />
<div>[[Category:Desktop]]<br />
<br />
This is a list of all the theme items that can be customized in a fluxbox theme.cfg<br><br />
This file is in two parts: the first explains what each of the items does the second part is a complete list that can be copied and pasted into a theme.cfg to get you started.<br><br />
This has been specially structured to group the relevant items<br />
<br />
==How the items work==<br />
<br />
Each item is structured main''object.sub''object.item: value e.g. toolbar.clock.pixmap: value<br />
<br />
The values that are available only depend on the item part e.g. .pixmap: {filename}<br />
<br />
The pixmap item needs a {filename} e.g. toolbar.clock.pixmap: clock.xpm<br />
<br />
That's it! All you need to know is the options for each value. Here I'll show what the different options can befor each value with some examples. Part 2 gives a list of all the items and the type of value needed for each and can be copied to a file by you.<br />
<br />
==={texture type}===<br />
<br />
pixmap options: requires a filename in *.pixmap<br />
pixmap<br />
tiled<br />
<br />
non-pixmap options: uses '''.color to color the objects, use '''.colorTo for gradients and highlights<br />
flat<br />
gradient<br />
vertical<br />
horizontal<br />
diagonal<br />
crossdiagonal<br />
pipecross<br />
elliptic<br />
rectangle<br />
pyramid<br />
e.g menu.frame: Flat Gradient Vertical<br><br />
or<br />
raised<br />
sunken<br />
bevel1<br />
bevel2<br />
gradient<br />
vertical<br />
horizontal<br />
diagonal<br />
crossdiagonal<br />
pipecross<br />
elliptic<br />
rectangle<br />
pyramid<br />
e.g. menu.title: Raised Bevel1 Gradient Vertical<br />
<br />
==={color}===<br />
any hex color<br />
<pre><br />
#ffffff<br />
#000000<br />
</pre><br />
e.g menu.title.textColor: #ffffff<br />
<br />
any rgb colour as shown in /usr/X11R6/lib/X11/rgb.txt<br />
rgb:4/3/2<br />
e.g menu.title.textColor: rgb:4/3/2<br />
<br />
any colour<br />
white<br />
black<br />
<br />
e.g menu.title.textColor: white<br />
<br />
==={filename}===<br />
the name of a .xpm file stored in pixmaps, which should be in the same directory as theme.cfg<br />
e.g. menu.title.pixmap: iconbarf.xpm<br />
<br />
==={integer}===<br />
a whole number that gives the height/width of something in pixels<br />
e.g window.title.height: 22<br />
<br />
==={boolean}===<br />
Something set to either on or off<br />
true<br />
false<br />
e.g.toolbar.shaped: true<br />
<br />
==={alpha}===<br />
a transparency setting - should be an integer between 0 and 255 where 0 is invisible/transparent<br><br />
and 255 is solid/opaque - 150 is popular<br />
<br />
e.g.window.alpha: 255<br />
<br />
==={round}===<br />
rounding options for corners<br />
TopLeft<br />
TopRight<br />
BottomLeft<br />
BottomRight<br />
e.g.window.roundCorners: Topleft Topright<br />
<br />
==={justify}===<br />
where text or an image is postioned<br />
Center<br />
Left<br />
Right<br />
e.g.window.justify: Center<br />
<br />
==={bullet}===<br />
only used for menu.bullet: option. for non pixmaps styles only.<br />
triangle<br />
square<br />
e.g.menu.bullet: triangle<br />
<br />
==={string}===<br />
<br />
only used for the root.command: option. lets you set the path to a wallapaper image and<br />
which application to display it<br />
fbsetbg -f wallpaper.png<br />
e.g.root.command: fbsetbg -a mywallpaper.png<br />
<br />
==={font}===<br />
what font to use!<br />
font-size<br />
e.g.menu.frame.font: trebuchet-10<br />
<br />
there are several options that can be used in any combination<br />
bold<br />
shadow<br />
italic<br />
these need to be colon or comma separated<br />
font-size:bold:shadow:italic<br />
e.g.menu.title.font: trebuchet-10:shadow:bold<br />
<br />
===Explanation of items that are a little confusing===<br />
<br />
.colorTo - if you use a gradient setting then the belnd is between .color and .colorTo<br />
<br />
.borderWidth - gives a border of {integer} width. 0 will give no border<br />
<br />
.bevelwidth - the bevel is between the border and the object e.g. in the menu,<br />
menu.bevelWidth increases the space between menu entries<br />
<br />
.picColor - sets the color of a default fluxbox image that is added on top of an item e.g. toolbar.button.picColor<br />
<br />
.alpha - a transparency setting<br />
<br />
===Notes for getting started===<br />
<br />
1. using window.label and window.title with window.bevelWidth<br />
<br />
When you use window.label this will overlay window.title. however, if you set<br />
window.bevelWidth the window.title will show as a "border" around window.label<br />
i.e. window.label floats over window.title<br />
This allows some quite simple but cool effects but does restrict window buttons (see below)<br />
<br />
2. using toolbar and toolbar.iconbar.*, toolbar.clock, toolbar.workspace, toolbar.button<br />
<br />
As with 1. above. toolbar is overlayed by toolbar.iconbar.*, toolbar.clock, toolbar.workspace<br />
and toolbar.button. Again setting toolbar.bevelWidth allows all of the these to float over<br />
toolbar, giving a border/layer effect<br />
<br />
3. using window buttons<br />
<br />
If window.bevelWidth is '''not''' used then all window.* buttons (close, icon, etc) may be any size<br />
but must be '''square''' and all have the '''same dimensions'''. This allows some very creative button designs and most styles at Fluxmod use this method<br />
<br />
However, if window.bevelWidth '''is''' used then the buttons are restricted in size by the '''font''' used for window.label. Here the best thing to do is choose the font size you want for window.label then make your pixmaps to the correct size. Or, in this case, you could set the window.button options to give a background and allow fluxbox to overlay with the default pixmaps (you can choose the colour with window.button.*.picColor) or create your own to the correct dimensions.<br />
<br />
4. using * (wildcards)<br />
<br />
==structured items==<br />
a theme.cfg template, laid out as below, is available for you to download and edit here http://dtw.jiwe.org/StyleItems.txt<br />
<br />
<pre><br />
This work is licensed under the Creative Commons<br />
Attribution-NonCommercial-ShareAlike License.<br />
To view a copy of this license, visit<br />
http://creativecommons.org/licenses/by-nc-sa/1.0/<br />
or send a letter to Creative Commons,<br />
559 Nathan Abbott Way, Stanford, California 94305, USA.<br />
<br />
---------------------------------------------<br />
FluxMOD http://www.fluxmod.dk<br />
Style Name:<br />
Style Author:<br />
Style Date:<br />
---------------------------------------------<br />
</pre><br />
<br />
===The toolbar===<br />
<br />
====general settings====<br />
<br />
toolbar.borderWidth: {integer}<br><br />
toolbar.borderColor: {color}<br><br />
<br />
toolbar.shaped: {boolean}<br><br />
toolbar.alpha: {alpha}<br><br />
toolbar.height: {integer}<br><br />
<br />
====The clock area====<br />
toolbar.clock.font: {font}<br><br />
toolbar.clock.textColor: {color}<br><br />
toolbar.clock.justify: {justify}<br><br />
<br />
toolbar.clock: {texture type}<br><br />
toolbar.clock.pixmap: {filename}<br><br />
toolbar.clock.color: {color}<br><br />
toolbar.clock.colorTo: {color}<br><br />
toolbar.clock.borderWidth: {integer}<br><br />
toolbar.clock.borderColor: {color}<br><br />
<br />
====The workspace title area====<br />
toolbar.workspace.font: {font}<br><br />
toolbar.workspace.textColor: {color}<br><br />
toolbar.workspace.justify: {justify}<br><br />
<br />
toolbar.workspace: {texture type}<br><br />
toolbar.workspace.pixmap: {filename}<br><br />
toolbar.workspace.color: {color}<br><br />
toolbar.workspace.colorTo: {color}<br><br />
toolbar.workspace.borderWidth: {integer}<br><br />
toolbar.workspace.borderColor: {color}<br><br />
<br />
====The iconbar====<br />
where windows are shown depending on Iconbar Mode which is set by right-clicking on the fluxbox toolbar<br><br />
<br />
toolbar.iconbar.borderWidth: {integer}<br><br />
toolbar.iconbar.borderColor: {color}<br><br />
<br />
====Empty - when no windows are shown as icons====<br />
toolbar.iconbar.empty: {texture type}<br><br />
toolbar.iconbar.empty.pixmap: {filename}<br><br />
toolbar.iconbar.empty.color: {color}<br><br />
toolbar.iconbar.empty.colorTo: {color}<br><br />
<br />
====Focused window icon====<br />
toolbar.iconbar.focused.font: {font}<br><br />
toolbar.iconbar.focused.textColor: {color}<br><br />
toolbar.iconbar.focused.justify: {justify}<br><br />
toolbar.iconbar.focused: {texture type}<br><br />
toolbar.iconbar.focused.pixmap: {filename}<br><br />
toolbar.iconbar.focused.color: {color}<br><br />
toolbar.iconbar.focused.colorTo: {color}<br><br />
toolbar.iconbar.focused.borderWidth: {integer}<br><br />
toolbar.iconbar.focused.borderColor: {color}<br><br />
<br />
====Unfocused window icon====<br />
toolbar.iconbar.unfocused.font: {font}<br><br />
toolbar.iconbar.unfocused.textColor: {color}<br><br />
toolbar.iconbar.unfocused.justify: {justify}<br><br />
toolbar.iconbar.unfocused: {texture type}<br><br />
toolbar.iconbar.unfocused.pixmap: {filename}<br><br />
toolbar.iconbar.unfocused.color: {color}<br><br />
toolbar.iconbar.unfocused.colorTo: {color}<br><br />
toolbar.iconbar.unfocused.borderWidth: {integer}<br><br />
toolbar.iconbar.unfocused.borderColor: {color}<br><br />
<br />
====The toolbar buttons for prevworkspace, nextworkspace, prevwindow and next window====<br />
toolbar.button {texture type}<br><br />
toolbar.button.pixmap: {filename}<br><br />
toolbar.button.color: {color}<br><br />
toolbar.button.colorTo: {color}<br><br />
toolbar.button.picColor: {color}<br><br />
toolbar.button.pressed: {texture type}<br><br />
toolbar.button.pressed.pixmap: {filename}<br><br />
toolbar.button.pressed.color: {color}<br><br />
toolbar.button.pressed.colorTo: {color}<br><br />
toolbar.button.pressed.picColor: {color}<br><br />
<br />
===The windows===<br />
focus is the currently selected window - unfocus is in the background<br />
<br />
====general====<br />
window.font: {font}<br><br />
window.justify: {justify}<br><br />
window.roundCorners: {round}<br><br />
window.alpha: {alpha}<br><br />
window.bevelWidth: {integer}<br><br />
window.borderWidth: {integer}<br><br />
window.borderColor: {color}<br><br />
<br />
===focused and unfocused window===<br />
<br />
====titlebar====<br />
the "background" of the window title. This is layered under window.label - see the note in part one<br />
<br />
window.title.height: {integer} <br><br />
window.title.focus: {texture type}<br><br />
window.title.focus.pixmap: {filename}<br><br />
window.title.focus.color: {color}<br><br />
window.title.focus.colorTo: {color}<br><br />
window.title.unfocus: {texture type}<br><br />
window.title.unfocus.pixmap: {filename}<br><br />
window.title.unfocus.color: {color}<br><br />
window.title.unfocus.colorTo: {color}<br><br />
<br />
====label====<br />
the text background. This is layered over window.title - see the note in part one<br />
<br />
window.label.focus: {texture type}<br><br />
window.label.focus.pixmap: {filename}<br><br />
window.label.focus.color: {color}<br><br />
window.label.focus.colorTo: {color}<br><br />
window.label.focus.textColor: {color}<br><br />
window.label.unfocus: {texture type}<br><br />
window.label.unfocus.pixmap: {filename}<br><br />
window.label.unfocus.color: {color}<br><br />
window.label.unfocus.colorTo: {color}<br><br />
window.label.unfocus.textColor: {color}<br><br />
<br />
====handle====<br />
the bar along the bottom of the window for resizing vertically<br />
<br />
window.handleWidth: {integer}<br><br />
window.handle.focus: {texture type}<br><br />
window.handle.focus.pixmap: {filename}<br><br />
window.handle.focus.color: {color}<br><br />
window.handle.focus.colorTo: {color}<br><br />
window.handle.unfocus: {texture type}<br><br />
window.handle.unfocus.pixmap: {filename}<br><br />
window.handle.unfocus.color: {color}<br><br />
window.handle.unfocus.colorTo: {color}<br><br />
<br />
====grips====<br />
either side of the handle for resizing in horizontally and vertically<br />
<br />
window.grip.focus: {texture type}<br><br />
window.grip.focus.pixmap: {filename}<br><br />
window.grip.focus.color: {color}<br><br />
window.grip.focus.colorTo: {color}<br><br />
window.grip.unfocus: {texture type}<br><br />
window.grip.unfocus.pixmap: {filename}<br><br />
window.grip.unfocus.color: {color}<br><br />
window.grip.unfocus.colorTo: {color}<br><br />
<br />
====button====<br />
sets the background for the window buttons - not visible if window buttons (below) are used<br />
<br />
window.button.focus: {texture type}<br><br />
window.button.focus.pixmap: {filename}<br><br />
window.button.focus.color: {color}<br><br />
window.button.focus.colorTo: {color}<br><br />
window.button.focus.picColor: {color}<br><br />
window.button.unfocus: {texture type}<br><br />
window.button.unfocus.pixmap: {filename}<br><br />
window.button.unfocus.color: {color}<br><br />
window.button.unfocus.colorTo: {color}<br><br />
window.button.unfocus.picColor: {color}<br><br />
window.button.pressed: {texture type}<br><br />
window.button.pressed.pixmap: {filename}<br><br />
window.button.pressed.color: {color}<br><br />
window.button.pressed.colorTo: {color}<br><br />
<br />
====window buttons====<br />
close, max and min, shade, stick and stuck<br />
<br />
====close====<br />
window.close.pixmap: {filename}<br><br />
window.close.unfocus.pixmap: {filename}<br><br />
window.close.pressed.pixmap: {filename}<br><br />
<br />
====max====<br />
window.maximize.pixmap: {filename}<br><br />
window.maximize.unfocus.pixmap: {filename}<br><br />
window.maximize.pressed.pixmap: {filename}<br><br />
<br />
====icon====<br />
window.iconify.pixmap: {filename}<br><br />
window.iconify.unfocus.pixmap: {filename}<br><br />
window.iconify.pressed.pixmap: {filename}<br><br />
<br />
====stick====<br />
window.stick.pixmap: {filename}<br><br />
window.stick.unfocus.pixmap: {filename}<br><br />
window.stick.pressed.pixmap: {filename}<br><br />
<br />
====stuck====<br />
window.stuck.pixmap: {filename}<br><br />
window.stuck.unfocus.pixmap: {filename}<br><br />
<br />
===The menu===<br />
<br />
====general settings====<br />
menu.borderWidth: {integer}<br><br />
menu.bevelWidth: {integer}<br><br />
menu.borderColor: {color}<br><br />
<br />
====title - top of each menu====<br />
menu.title.font: {font}<br><br />
menu.title.textColor: {color}<br><br />
menu.title.justify: {justify}<br><br />
menu.title: {texture type}<br><br />
menu.title.pixmap: {filename}<br><br />
menu.title.color: {color}<br><br />
menu.title.colorTo: {color}<br><br />
<br />
====frame - menu body====<br />
menu.frame.font: {font}<br><br />
menu.frame.textColor: {color}<br><br />
menu.frame.disableColor: {color}<br><br />
menu.frame.justify: {justify}<br><br />
menu.frame: {texture type}<br><br />
menu.frame.pixmap: {filename}<br><br />
menu.frame.color: {color}<br><br />
menu.frame.colorTo: {color}<br><br />
<br />
====hilite====<br />
how the options are highlighted when mouse is over them<br />
<br />
menu.hilite.textColor: {color}<br><br />
menu.hilite: {texture type}<br><br />
menu.hilite.pixmap: {filename}<br><br />
menu.hilite.color: {color}<br><br />
menu.hilite.colorTo: {color}<br><br />
<br />
====details====<br />
menu.roundCorners: {round}<br><br />
menu.bullet.position: {justify}<br><br />
menu.bullet: {bullet}<br><br />
menu.submenu.pixmap: {filename}<br><br />
menu.selected.pixmap: {filename}<br><br />
menu.unselected.pixmap: {filename}<br><br />
<br />
<br />
====set the wallpaper with an app...====<br />
rootCommand: {string}<br><br />
<br />
====The slit====<br />
settings for the slit - not applicable if slit alpha is set to 0<br />
<br />
slit: {texture type}<br><br />
slit.pixmap: {filename}<br><br />
slit.color: {color}<br><br />
slit.colorTo: {color}<br><br />
slit.borderWidth: {integer}<br><br />
slit.bevelWidth: {integer}<br><br />
slit.borderColor: {color}<br></div>IBertushttps://wiki.archlinux.org/index.php?title=Talk:Fluxbox/Style_guide&diff=4401Talk:Fluxbox/Style guide2005-08-10T04:38:19Z<p>IBertus: </p>
<hr />
<div>Just a note: the link to the sample style is broken.</div>IBertus