zen: copy the real binary into the wrapper so autoconfig is read
wrapFirefox only copies the exe matching binaryName ("zen-beta"), but Gecko
execs lib/zen-bin-*/zen, a symlink into the unwrapped package. The app dir
resolved there, so mozilla.cfg and defaults/pref were never read.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
parent
657da242d4
commit
d9604900e3
1 changed files with 16 additions and 2 deletions
18
apps/zen.nix
18
apps/zen.nix
|
|
@ -100,7 +100,7 @@ in
|
||||||
{
|
{
|
||||||
config = lib.mkIf (lib.elem config.networking.hostName [ "FredOS-Gaming" "FredOS-Macbook" ]) {
|
config = lib.mkIf (lib.elem config.networking.hostName [ "FredOS-Gaming" "FredOS-Macbook" ]) {
|
||||||
environment.systemPackages = [
|
environment.systemPackages = [
|
||||||
(inputs.zen-browser.packages.${pkgs.stdenv.hostPlatform.system}.default.override {
|
((inputs.zen-browser.packages.${pkgs.stdenv.hostPlatform.system}.default.override {
|
||||||
# Lands in defaults/pref/autoconfig.js, the only place this pref is
|
# Lands in defaults/pref/autoconfig.js, the only place this pref is
|
||||||
# read — setting it from mozilla.cfg is too late to unsandbox itself.
|
# read — setting it from mozilla.cfg is too late to unsandbox itself.
|
||||||
extraAutoConfig = ''
|
extraAutoConfig = ''
|
||||||
|
|
@ -108,7 +108,21 @@ in
|
||||||
pref("fred.zenTheme.autoconfig", true);
|
pref("fred.zenTheme.autoconfig", true);
|
||||||
'';
|
'';
|
||||||
extraPrefs = themeHotReload;
|
extraPrefs = themeHotReload;
|
||||||
})
|
}).overrideAttrs (old: {
|
||||||
|
# wrapFirefox copies the executable it knows by name so that Gecko,
|
||||||
|
# which derives its application directory from the binary's *resolved*
|
||||||
|
# path, lands in the wrapper's tree. It knows this one as "zen-beta"
|
||||||
|
# (binaryName), but the binary actually exec'd is lib/zen-bin-*/zen —
|
||||||
|
# left behind as a symlink into the unwrapped package. So the app dir
|
||||||
|
# resolved to the unwrapped tree, which has no defaults/pref and no
|
||||||
|
# mozilla.cfg, and every pref and script above was silently skipped.
|
||||||
|
buildCommand = old.buildCommand + ''
|
||||||
|
for exe in "$out"/lib/zen*/zen "$out"/lib/zen*/zen-bin; do
|
||||||
|
cp --remove-destination "$(readlink -f "$exe")" "$exe"
|
||||||
|
chmod u+w "$exe"
|
||||||
|
done
|
||||||
|
'';
|
||||||
|
}))
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue