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
1.6 KiB
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.
- Upstream: https://github.com/bmFtZQ/edge-frfox
- License: MIT
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.