Fonts, Fonts, Fonts
introduction
We have three solutions for fonts in the X11-world:
- FontPath in xorg.conf
- X Font Service (xfs)
- fontconfig
Most modern application today use fontconfig
, xorg.conf
is an ugly looking fallback, and xfs
is (in general) not used anymore.
So we ensure FontPath
is working and add a Section "Files"
to our xorg.conf.d
and for modern true type fonts we configure fontconfig
.
enable fontconfig
This is a work-around as fontconfig
does not allow us in another way to set the path to the configuration file fonts.conf
at a arbitory path
export XDG_CONFIG_HOME=${EBROOTXSERVER}/config
-> XDG_CONFIG_HOME/fontconfig/fonts.conf
Sadly we have to set $XDG_CONFIG_HOME
to a place it should not point (as the user has no write permission here).
But I do not see another option (beside patching fontconfig, of course).
Desktop Menu
All details can be found here: https://specifications.freedesktop.org/menu-spec/latest/
menu definition
The menu is defined here
$XDG_CONFIG_DIRS/menus/${XDG_MENU_PREFIX}applications.menu
- or at
/etc/xdg/menus
ifXDG_CONFIG_DIRS
is empty
More infos: https://specifications.freedesktop.org/basedir-spec/latest/ar01s03.html
desktop directories
The menu point to *.directory
files, which define the look and action of the menu´s directories.
They are located at
-
$XDG_DATA_DIRS/desktop-directories/
if the menu file includes the element - or at
/usr/share/desktop-directories/
ifXDG_DATA_DIRS
is empty
desktop files
The menu points to *.desktop
files, which define the look and action of the menu entries.
They are located at
-
$XDG_DATA_DIRS/applications/
if the menu file includes the element - or at
/usr/share/applications
ifXDG_DATA_DIRS
is empty
More infos: https://developer.gnome.org/integration-guide/stable/desktop-files.html.en
desktop icons
They are located at
$XDG_DATA_DIRS/icons
- or at
/usr/share/pixmaps
ifXDG_DATA_DIRS
is empty
-> enabling our own Desktop Menu
So we add a path at first place to $XDG_CONFIG_DIRS
to define our own menu:
export XDG_CONFIG_DIRS=${EBROOTXSERVER}/config:${XDG_CONFIG_DIRS}
Then, as we do not want to see the system-wide entries,
- we also add a
${XDG_MENU_PREFIX}=jsc-
- and define our menu in
$XDG_CONFIG_DIRS/menus/jsc-applications.menu
And finally we add a path at first place to $XDG_DATA_DIRS
:
export XDG_DATA_DIRS=${EBROOTXSERVER}/data:${XDG_DATA_DIRS}
- to define our own desktop directories in
$XDG_DATA_DIRS/desktop-directories/
- to define our own desktop entries in
$XDG_DATA_DIRS/applications/