# fossil-skin
A dark skin for [Fossil](https://fossil-scm.org): Fossil's default layout, rendered for a
dark page with WCAG AA contrast, Instrument Sans, the Bone Hive logo, and fixes for every
place Fossil hard-codes light colours (timeline graph, diffs, ticket reports, chat, forum,
pikchr, tickets). It also carries a main menu with a Search entry.
Two ways to use it.
## Use it on any Fossil repository
The file `dist/craftdesign-skin.cfg` is self-contained: fonts, favicon and the small
accessibility script are embedded, so it needs nothing but Fossil.
```sh
fossil config import craftdesign-skin.cfg -R /path/to/repo.fossil
```
That sets the skin (css, header, footer, details), the logo, and the main menu. Restart
nothing; the next page load uses it. To take it back off, pick any built-in skin under
Admin → Skins.
[Download craftdesign-skin.cfg](../../raw/dist/craftdesign-skin.cfg?ci=trunk) from this repo, or build it yourself from the sources:
```sh
python3 skin/build.py # writes dist/craftdesign-skin.cfg
```
Two optional things the skin cannot do for you, because they are per-repo settings:
```sh
# Full-text search, so the Search menu entry has something to show
fossil fts-config enable check-in wiki ticket forum document -R repo.fossil
fossil fts-config index on -R repo.fossil
# A wiki page as the home page (the skin hides Fossil's extra "index" / "Home" title)
fossil config -R repo.fossil set index-page '/wiki?name=index'
```
Requires Fossil 2.20 or newer for the `mainmenu` setting; older versions ignore it and use
their built-in menu.
## This server (fossil.craftdesign.group)
The hosted repos use the same sources, with the fonts and script served by Caddy instead of
embedded, plus a landing page, per-repo metadata and git mirrors:
| Path | What |
|------|------|
| `skin/` | `css.txt`, `header.txt`, `footer.txt`, `logo.png`, `icons/`, `apply.py`, `build.py` |
| `www/` | landing page, `a11y.js`, favicon, fonts |
| `repos/*.meta` | per-repo icon, description and public access, read by `apply.py` |
| `mirror/` | hourly git → fossil mirror script |
| `docs/` | setup notes and the skin's token table |
| `Caddyfile` | serves `www/` and proxies the rest to Fossil |
Deploying a change: copy the edited files to `/var/fossil/skin` or `/var/fossil/www` on the
server and run `python3 /var/fossil/skin/apply.py`, which pushes the skin into every repo and
regenerates the landing page. Adding a repository is documented on the server at
`fossil-skin/wiki/new-repo`.
## Licences
Skin: MIT. Instrument Sans: SIL Open Font License. Icons: Phosphor, MIT.