If no `##` version exists and no files match the current CLASS/OS/HOSTNAME/USER,
then no link will be created.
| OS is determined by running `uname -s`, HOSTNAME by running `hostname -s`, and
USER by running `id -u -n`. **yadm** will automatically create these links by
default. This can be disabled using the `yadm.auto-alt` configuration. Even if
disabled, links can be manually created by running **yadm** alt.
| **CLASS** must be manually set using `yadm config local.class <class>`.
| **OS** is determined by running `uname -s`.
| **HOSTNAME** by running `hostname` and removing any domain.
| **USER** by running `id -u -n`.
**yadm** will automatically create these links by default. This can be disabled using the `yadm.auto-alt` configuration. Even if disabled, links can be manually created by running **yadm** alt.
## Wildcards
It is possible to use `%` as a "wildcard" in place of `CLASS`, `OS`, `HOSTNAME`,
or `USER`. For example, The following file could be linked for *any host* when the
user is "harvey".
```
$HOME/path/example.txt##%.%.harvey
```
## Class and Overrides
Class is a special value which is stored locally on each host (inside the local
repository). To use alternate symlinks using `CLASS`, you must set the value of
class using the configuration `local.class`. This is set like any other **yadm**
configuration—with the `yadm config` command. The following sets the `CLASS` to
be "Work".
yadm config local.class Work
Similarly, the values of `OS`, `HOSTNAME`, and `USER` can be manually
overridden using the configuration options `local.os`, `local.hostname`, and
`local.user`.
## Strategies for alternate files on different systems