Skip to content
fossil-skin Artifact [bf8a3a9b48]
Login

Artifact [bf8a3a9b48]

Artifact bf8a3a9b48034fb182855d3ee94ec04753def91bcdb08f4b46c8fffeb8f7a414:


# 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.