Files
Panama/config/firefox
Gabriel Brown 88497826ec Let a machine say what it is for, and give Firefox its face back
Phase 4: the optional application categories, and the Firefox chrome.

Everything Panama installed until now was what every machine gets, which meant a
work laptop acquired emulators and a desktop that wanted Steam had to be told
about it by hand. The interview now offers the categories in
setup/packages/extras/ as a checklist -- gaming, creative, communication,
virtualization -- and nothing is preselected, because a default here installs
applications nobody chose on a machine whose owner answered a question they
thought was about something else.

A category is one file, and a category mixes both package managers because the
applications do: Steam is in RPM Fusion, Slack publishes only a flatpak. So a
bare line is a dnf package and a flatpak: line is a Flathub ID, and one file
holds the whole answer rather than splitting each category across two. The menu
is read from the directory rather than written down, so adding a category is
adding a file. Every name in all four was resolved against the actual
repositories before being written down, and the contract re-resolves them --
the point of admitting applications one at a time is that they stay installable,
and a typo here fails on somebody else's machine, not this one.

Firefox is declared, and its chrome is Edge-Frfox, vendored into config/firefox.
sunhat carried that theme with no license and no attribution; it is MIT, and now
it says so and says whose it is.

It is the only piece of Panama's configuration that does not go to a path this
repository chooses. Firefox owns the profile directory, names it with a random
salt, and does not create one until the browser has been run -- so link-dotfiles
finds or creates a profile and links both halves into it. Both, or neither works:
chrome/ is the CSS and user.js sets the preference that makes Firefox read chrome/
at all, without which the theme is a directory of dead files.

Two assumptions there were wrong, and the contract exists for both. Firefox has
moved to the XDG directories -- the profile root is ~/.config/mozilla/firefox on
this build, not ~/.mozilla/firefox, and writing to the wrong one themes nothing
and says nothing about it. And -CreateProfile turns out to be non-interactive, so
a fresh machine gets the theme on the first install rather than the second. The
contract runs link-dotfiles for real against a throwaway home with no profile in
it and looks at what came out; it was checked by pointing the search at the
legacy path only and watching it fail.

Also: the enrolment/enrollment spellings from the last commit are corrected. This
repository is US-spelled everywhere else -- color 1131 times against colour never
-- and consistency in prose is worth as much as it is in code.

Claude-Session: https://claude.ai/code/session_01NvgBuSWB5sE43yWmg21ozj
2026-08-20 21:24:15 -04:00
..

Firefox chrome

This directory is not Panama's work. It is Edge-Frfox — "a Firefox userChrome.css theme that aims to recreate the look and feel of Microsoft Edge" — vendored here, plus two local tweaks.

link-dotfiles places user.js and chrome/ into the Firefox profile. The preferences in user.js are what the theme needs to work at all — toolkit.legacyUserProfileCustomizations.stylesheets in particular, without which Firefox ignores chrome/ entirely.

Why it is vendored rather than fetched

The same reason the cursor theme is: downloading it during the install would add a URL that can rot, and this repository is trying to stop installing things that way. 732K in git once, and then the theme is simply there.

Two things to know before editing

userChrome.css imports custom.css last, deliberately — local changes go there, not into the upstream files, so a future update to the theme is a directory replacement rather than a merge. The imports of tweaks/hide-tabs-bar.css and tweaks/shrink-sideberry.css are personal choices carried over from sunhat, not upstream defaults.

userChrome.css is unsupported by Mozilla. It breaks on major Firefox releases, and when it does, the fix is upstream's or none. Panama installs Firefox as a second engine to test pages against; if the theme ever costs more than it is worth, deleting this directory and the link-dotfiles block that reads it leaves a working browser behind.