59 lines
2 KiB
Nix
59 lines
2 KiB
Nix
{ options
|
|
, config
|
|
, lib
|
|
, pkgs
|
|
, ...
|
|
}:
|
|
with lib;
|
|
with lib.plusultra; let
|
|
cfg = config.plusultra.apps.firefox;
|
|
defaultSettings = {
|
|
"browser.aboutwelcome.enabled" = false;
|
|
"browser.meta_refresh_when_inactive.disabled" = true;
|
|
"browser.startup.homepage" = "https://start.duckduckgo.com/?kak=-1&kal=-1&kao=-1&kaq=-1&kt=Hack+Nerd+Font&kae=d&ks=m&k7=2e3440&kj=3b4252&k9=eceff4&kaa=d8dee9&ku=1&k8=d8dee9&kx=81a1c1&k21=3b4252&k18=1&k5=2&kp=-2&k1=-1&kaj=u&kay=b&kk=-1&kax=-1&kap=-1&kau=-1";
|
|
"browser.bookmarks.showMobileBookmarks" = true;
|
|
"browser.urlbar.suggest.quicksuggest.sponsored" = false;
|
|
"browser.newtabpage.activity-stream.showSponsoredTopSites" = false;
|
|
"browser.aboutConfig.showWarning" = false;
|
|
"browser.ssb.enabled" = true;
|
|
};
|
|
in
|
|
{
|
|
options.plusultra.apps.firefox = with types; {
|
|
enable = mkBoolOpt false "Whether or not to enable Firefox.";
|
|
extraConfig =
|
|
mkOpt str "" "Extra configuration for the user profile JS file.";
|
|
userChrome =
|
|
mkOpt str "" "Extra configuration for the user chrome CSS file.";
|
|
settings = mkOpt attrs defaultSettings "Settings to apply to the profile.";
|
|
};
|
|
|
|
config = mkIf cfg.enable {
|
|
plusultra.desktop.addons.firefox-nordic-theme = enabled;
|
|
|
|
plusultra.home = {
|
|
extraOptions = {
|
|
programs.firefox = {
|
|
enable = true;
|
|
package = pkgs.firefox.override {
|
|
cfg = {
|
|
# FIXME: This method of enabling browser pass support is
|
|
# deprecated, but the suggested solution requires using
|
|
# the NixOS module rather than Home-Manager. Update this
|
|
# if/when Home-Manager gets support for:
|
|
# `programs.firefox.extraNativeMessagingHosts.packages`
|
|
enableBrowserpass = true;
|
|
};
|
|
};
|
|
|
|
profiles.${config.plusultra.user.name} = {
|
|
inherit (cfg) extraConfig userChrome settings;
|
|
id = 0;
|
|
name = config.plusultra.user.name;
|
|
};
|
|
};
|
|
};
|
|
};
|
|
};
|
|
}
|