mirror of
https://github.com/nix-community/home-manager.git
synced 2026-10-02 19:49:18 +00:00
Added a new config option programs.firefox.profiles.<name>.storeId. Setting this option now writes the StoreID both to the profiles.ini and to the settings."toolkit.profiles.storeID" of the profile. Firefox has two different profile implementations; - the old one that home-manager module can declare - the new "Selectable Profile Service" introduced in 150 The new profiles are managed in a runtime db, and reads from profiles.ini Migration without database operations is not possible right now, but when it becomes available, this option will stop home-manager from clobbering the linked storeIDs.
71 lines
1.6 KiB
Nix
71 lines
1.6 KiB
Nix
modulePath:
|
|
{
|
|
config,
|
|
lib,
|
|
pkgs,
|
|
...
|
|
}:
|
|
|
|
let
|
|
|
|
cfg = lib.getAttrFromPath modulePath config;
|
|
|
|
firefoxMockOverlay = import ../../setup-firefox-mock-overlay.nix modulePath;
|
|
|
|
in
|
|
{
|
|
imports = [ firefoxMockOverlay ];
|
|
|
|
config = lib.mkIf config.test.enableBig (
|
|
lib.setAttrByPath modulePath {
|
|
enable = true;
|
|
profiles = {
|
|
basic.isDefault = true;
|
|
test = {
|
|
id = 1;
|
|
storeId = "1a2b3c4d";
|
|
settings = {
|
|
"browser.bookmarks.file" = ./bookmarks.html;
|
|
"general.smoothScroll" = false;
|
|
"browser.newtabpage.pinned" = [
|
|
{
|
|
title = "NixOS";
|
|
url = "https://nixos.org";
|
|
}
|
|
];
|
|
};
|
|
};
|
|
};
|
|
}
|
|
// {
|
|
nmt.script =
|
|
let
|
|
binPath =
|
|
if pkgs.stdenv.hostPlatform.isDarwin then
|
|
"Applications/${cfg.darwinAppName}.app/Contents/MacOS"
|
|
else
|
|
"bin";
|
|
expectedUserJs = pkgs.writeText "expected-user.js" (builtins.readFile ./expected-user.js + "\n");
|
|
in
|
|
''
|
|
assertFileRegex \
|
|
"home-path/${binPath}/${cfg.finalPackage.meta.mainProgram}" \
|
|
MOZ_APP_LAUNCHER
|
|
|
|
assertDirectoryExists "home-files/${cfg.profilesPath}/basic"
|
|
|
|
settingsUserJs=$(normalizeStorePaths \
|
|
"home-files/${cfg.profilesPath}/test/user.js")
|
|
|
|
assertFileContent \
|
|
"$settingsUserJs" \
|
|
${expectedUserJs}
|
|
|
|
assertFileRegex \
|
|
"home-files/${cfg.configPath}/profiles.ini" \
|
|
"StoreID=1a2b3c4d"
|
|
'';
|
|
}
|
|
);
|
|
}
|