Artifact 31cf973355b96ad475b7911e687bf262368bcd0f7a497536a153dc56ecaec1d2:
- File README.md — part of check-in [9ae1bcf937] at 2026-10-14 01:12:06 on branch trunk — Portable skin: build.py folds fonts, script and favicon into one importable config file; README (user: dmestas, size: 2562) [annotate] [blame] [check-ins using]
fossil-skin
A dark skin for Fossil: 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.
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 the file from this repo's Files page, or build it yourself from the sources:
python3 skin/build.py # writes dist/craftdesign-skin.cfg
Two optional things the skin cannot do for you, because they are per-repo settings:
# 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.