[mythtv-users] OSD fonts

Michael T. Dean mtdean at thirdcontact.com
Thu Jan 22 22:25:19 UTC 2009


On 01/21/2009 11:24 PM, Josh White wrote:
> I've noticed that most OSD themes I try to use do not match the 
> screenshots I see.  The screenshots show very nice looking menus and 
> descriptions of what show is on, but when I install them on my 
> machine, the fonts are always a basic, not-so-attractive font that 
> doesn't match at all. I would think that whatever font is required 
> would be included with the OSD theme, but maybe I'm wrong in that 
> assumption. 
>
> Grey OSD is the only theme that works as-advertised on my machines. 
>
> I'm running 3 Ubuntu/Mythbuntu machines (8.10), and a Debian machine 
> (etch), and I see the same results on all of them. 
>
> Am I missing something obvious?  

Some OSD themes provide their own fonts (i.e. Gray-OSD provides 
DejaVuSans, Retro-OSD provides Vera and Vera Bold, and Mepo-wide OSD 
provides HandelGotD ).  Others used to, but because of issues in some 
versions of freetype2 that were shipped with popular distros have 
commented out the font <filename> information and no longer use 
theme-provided fonts (i.e. blootube-osd, ProjectGrayhem-OSD, and 
glass-wide OSD --OK, technically, blootube-osd and ProjectGrayhem-OSD 
still provide the fonts--Vera and Vera Bold--but they don't use them 
anymore).  One, Titivillus-OSD , tries to specify the font Arial (but 
does so incorrectly***); however, even if it had done so correctly, it 
could not provide its font because of license issues (it's copyright 
Microsoft Corp.)  Note that in trunk, Retro-OSD once again specifies the 
font (Vera Sans).

When an OSD requests a specific font (as specified by the <filename> 
sub-element of the <font> element in osd.xml)***, Myth attempts to 
locate that font in the Myth font dirs ($HOME/.mythtv , then 
$PREFIX/share/mythtv , then the OSD theme directory , then just trying 
whatever value was provided in the filename element as if it's an 
absolute filename).  If it cannot create the font using the filename 
specified, the OSD will not contain text.

If the OSD does /not/ request a specific font ( blootube-osd , 
ProjectGrayhem-OSD , Retro-OSD , blueosd , isthmus , Iulius-OSD, 
glass-wide OSD ), Myth uses the font specified in the setting, "OSD 
font", in frontend settings under Setup|TV Settings|Playback OSD.  Note 
that Myth will /only/ allow you to select a font that's found in the 
Myth share dir (but /not/ the selected OSD theme dir, in case you change 
your OSD theme; nor the conf dir ($HOME/.mythtv) in case you run Myth as 
a different user).  That means that in a "standard" installation of 
Myth, you have only 3 choices--FreeSans, FreeSansBold, and FreeMono.  If 
you hack the DB (don't, please) and put in a value that does not 
correspond to the filename of a font in the Myth share dir, your OSD 
will not contain text.

If you put other fonts in the share dir ( $PREFIX/share/mythtv ), you 
can choose additional fonts.

If you use a theme that does not specify a font (see osd.xml and look 
for the the <filename> sub-element under the <font> element), you get 
whatever font /you/ specify.  If you use a theme that specifies a font, 
you should get the specified font.  This is why your system "never" 
looks the same as the screenshots you've seen, with the exception of 
Grey-OSD (which provides DejaVuSans) and, if you were to try them,  
Retro-OSD (which provides Vera and Vera Bold), and Mepo-wide OSD (which 
provides HandelGotD).

If you want to change the font, verify that no <filename> is specified 
for the <font> in osd.xml and set the "OSD font" to the desired font.  
Or specify the <filename> of the desired font in osd.xml.

Mike

***Many osd.xml files provide the face attribute to the <font> element; 
however, it looks like this attribute is not used for OSD fonts.  
Instead, themers who had done UI themes (where the attribute is used) 
probably just "carried over" that attribute/habit of using that 
attribute to OSD theme creation.


More information about the mythtv-users mailing list