nixcfg/modules/nixos/apps/firefox/default.nix

67 lines
2.3 KiB
Nix
Raw Normal View History

2024-01-11 11:26:46 +01:00
{ 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://hamho.me";
"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;
services.gnome.gnome-browser-connector.enable = config.plusultra.desktop.gnome.enable;
plusultra.home = {
file = {
".mozilla/native-messaging-hosts/com.dannyvankooten.browserpass.json".source = "${pkgs.browserpass}/lib/mozilla/native-messaging-hosts/com.dannyvankooten.browserpass.json";
".mozilla/native-messaging-hosts/org.gnome.chrome_gnome_shell.json".source = mkIf config.plusultra.desktop.gnome.enable "${pkgs.chrome-gnome-shell}/lib/mozilla/native-messaging-hosts/org.gnome.chrome_gnome_shell.json";
};
extraOptions = {
programs.firefox = {
enable = true;
package = pkgs.firefox.override (
{
cfg = {
enableBrowserpass = true;
enableGnomeExtensions = config.plusultra.desktop.gnome.enable;
};
extraNativeMessagingHosts =
optional
config.plusultra.desktop.gnome.enable
pkgs.gnomeExtensions.gsconnect;
}
);
profiles.${config.plusultra.user.name} = {
inherit (cfg) extraConfig userChrome settings;
id = 0;
name = config.plusultra.user.name;
};
};
};
};
};
}