1
0
Fork 0
Find a file

LibreWolf configuration

A portable LibreWolf setup for macOS and Fedora, built on FF Ultima with a custom opaque Midnight/Graphite palette.

This repository intentionally contains configuration only. It never includes cookies, browsing history, bookmarks, saved passwords, extension data, session state, account identifiers, or site permissions.

What is synchronized

  • FF Ultima at a pinned revision (as a Git submodule)
  • custom browser and new-tab CSS
  • the Midnight theme choices and toolbar layout
  • selected UI, behavior, and fingerprinting-protection preferences

uBlock Origin and Bitwarden are referenced by the toolbar layout but their data is not synchronized. LibreWolf normally ships with uBlock Origin. Install Bitwarden on each new profile before judging the final toolbar spacing.

Install

Install LibreWolf and start it once so that it creates a profile. Then close it and run:

git clone --recurse-submodules \
  ssh://git@ignis.nrve.dev:32222/ak1lles/librewolf-config.git \
  ~/src/librewolf-config
cd ~/src/librewolf-config
./bin/install

The installer discovers these profile layouts automatically:

  • macOS: ~/Library/Application Support/librewolf
  • native Linux: ~/.librewolf
  • Flatpak: ~/.var/app/io.gitlab.librewolf-community/.librewolf

The installer uses physical copies on every platform. This avoids LibreWolf loading CSS through a linked chrome directory while failing to load image resources referenced by that CSS. Run ./bin/install after a direct CSS edit; sync pull and sync push already reapply the files automatically. Existing chrome and user.js paths are moved to a timestamped .librewolf-config-backups directory inside the profile before replacement.

Use ./bin/install --dry-run to preview, or pass --profile PATH if automatic profile selection is not the one you want.

Keep machines in sync

Pull and apply changes made elsewhere:

./bin/sync pull

After changing the toolbar or one of the tracked about:config preferences, close LibreWolf and publish the change:

./bin/sync push "Describe the LibreWolf change"

sync push captures only the allowlisted portable preferences, commits them, rebases on the remote, pushes, and reapplies the result. Inspect the exact set at any time with git diff -- user.js or ./bin/sync status.

Edit CSS directly under chrome/, then run ./bin/install. The Graphite colors are shared by macOS and Linux, while native macOS window-control behavior remains platform-specific.

Upstream theme updates

Update FF Ultima deliberately, test it, and then commit the new submodule pin:

git -C vendor/FF-ULTIMA fetch origin
git -C vendor/FF-ULTIMA switch --detach origin/main
git add vendor/FF-ULTIMA
git commit -m "Update FF Ultima"
git push

FF Ultima is licensed separately under MPL-2.0; see vendor/FF-ULTIMA/LICENSE after initializing the submodule.