Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
## 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` if `XDG_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 <DefaultDirectoryDirs> element
- or at `/usr/share/desktop-directories/` if `XDG_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 <DefaultAppDirs> element
- or at `/usr/share/applications` if `XDG_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` if `XDG_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/`