hjem/collection: add firefox module
This commit is contained in:
parent
876153ba2c
commit
9774000f64
2 changed files with 216 additions and 151 deletions
|
@ -4,8 +4,8 @@
|
|||
config,
|
||||
...
|
||||
}: let
|
||||
inherit (builtins) readFile;
|
||||
inherit (config.local.systemVars) username;
|
||||
toINI = lib.generators.toINI {};
|
||||
|
||||
betterfox = pkgs.fetchFromGitHub {
|
||||
owner = "yokoffing";
|
||||
|
@ -13,9 +13,14 @@
|
|||
rev = "e026ed7d3a763c5d3f96c2680d7bc3340831af4f";
|
||||
hash = "sha256-hpkEO5BhMVtINQG8HN4xqfas/R6q5pYPZiFK8bilIDs=";
|
||||
};
|
||||
in {
|
||||
config = lib.mkIf config.local.profiles.desktop.enable {
|
||||
hjem.users.${username} = {
|
||||
programs.firefox = {
|
||||
enable = true;
|
||||
inherit username;
|
||||
|
||||
firefox = pkgs.wrapFirefox pkgs.firefox-esr-unwrapped {
|
||||
extraPolicies = {
|
||||
policies = {
|
||||
DisableTelemetry = true;
|
||||
DisablePocket = true;
|
||||
DisableFeedbackCommands = true;
|
||||
|
@ -147,27 +152,13 @@
|
|||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
in {
|
||||
config = lib.mkIf config.local.profiles.desktop.enable {
|
||||
hjem.users.${username} = {
|
||||
packages = [firefox];
|
||||
files = {
|
||||
".mozilla/firefox/profiles.ini".text = toINI {
|
||||
Profile0 = {
|
||||
# creates user profile and sets it as default
|
||||
Name = "${username}";
|
||||
IsRelative = 1;
|
||||
Path = "${username}";
|
||||
Default = 1;
|
||||
};
|
||||
};
|
||||
".mozilla/firefox/${username}/user.js".text = builtins.concatStringsSep "\n" [
|
||||
(builtins.readFile "${betterfox}/user.js")
|
||||
(builtins.readFile "${betterfox}/Securefox.js")
|
||||
(builtins.readFile "${betterfox}/Fastfox.js")
|
||||
(builtins.readFile "${betterfox}/Peskyfox.js")
|
||||
(builtins.readFile "${betterfox}/Smoothfox.js")
|
||||
|
||||
extraConfig = builtins.concatStringsSep "\n" [
|
||||
(readFile "${betterfox}/user.js")
|
||||
(readFile "${betterfox}/Securefox.js")
|
||||
(readFile "${betterfox}/Fastfox.js")
|
||||
(readFile "${betterfox}/Peskyfox.js")
|
||||
(readFile "${betterfox}/Smoothfox.js")
|
||||
];
|
||||
};
|
||||
};
|
||||
|
|
74
shared/modules/hjem/collection/programs/firefox.nix
Normal file
74
shared/modules/hjem/collection/programs/firefox.nix
Normal file
|
@ -0,0 +1,74 @@
|
|||
{
|
||||
lib,
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
}: let
|
||||
inherit (lib.options) mkEnableOption mkOption;
|
||||
inherit (lib.types) attrs lines package str;
|
||||
|
||||
toINI = lib.generators.toINI {};
|
||||
|
||||
cfg = config.programs.firefox;
|
||||
firefox = pkgs.wrapFirefox cfg.package {
|
||||
extraPolicies = cfg.policies;
|
||||
};
|
||||
in {
|
||||
options.programs.firefox = {
|
||||
enable = mkEnableOption "firefox module.";
|
||||
package = mkOption {
|
||||
type = package;
|
||||
default = pkgs.firefox-esr-unwrapped;
|
||||
example = pkgs.firefox-unwrapped;
|
||||
description = ''
|
||||
The Firefox package to use. As hjem's module implementation of Firefox uses wrapping, this package
|
||||
is expected to be one of the unwrapped versions. Changing this is not recommended, as some policies
|
||||
(i.e. SearchEngines) are only available on the ESR version of Firefox.
|
||||
'';
|
||||
};
|
||||
policies = mkOption {
|
||||
type = attrs;
|
||||
default = {};
|
||||
example = {
|
||||
CaptivePortal = false;
|
||||
DisableFirefoxStudies = true;
|
||||
DisablePocket = true;
|
||||
DisableTelemetry = true;
|
||||
DisableFirefoxAccounts = true;
|
||||
};
|
||||
description = ''
|
||||
An attribute set of policies to add to Firefox. The full list of policies can be found
|
||||
[here](https://mozilla.github.io/policy-templates/).
|
||||
'';
|
||||
};
|
||||
extraConfig = mkOption {
|
||||
type = lines;
|
||||
default = "";
|
||||
description = ''
|
||||
Extra preferences to add to user.js.
|
||||
'';
|
||||
};
|
||||
|
||||
username = mkOption {
|
||||
type = str;
|
||||
example = "user";
|
||||
description = ''
|
||||
Name of the Firefox profile to be created.
|
||||
'';
|
||||
};
|
||||
};
|
||||
config = lib.mkIf cfg.enable {
|
||||
packages = [firefox];
|
||||
files = {
|
||||
".mozilla/firefox/profiles.ini".text = toINI {
|
||||
Profile0 = {
|
||||
Name = "${cfg.username}";
|
||||
IsRelative = 1;
|
||||
Path = "${cfg.username}";
|
||||
Default = 1;
|
||||
};
|
||||
};
|
||||
".mozilla/firefox/${cfg.username}/user.js".text = cfg.extraConfig;
|
||||
};
|
||||
};
|
||||
}
|
Loading…
Add table
Reference in a new issue