Skip to content
fossil-skin Artifact [bf8a3a9b48]
Login

Artifact [bf8a3a9b48]

Artifact bf8a3a9b48034fb182855d3ee94ec04753def91bcdb08f4b46c8fffeb8f7a414:


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 craftdesign-skin.cfg from this repo, 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.