refactor(browser): create single browser module
This commit is contained in:
19
home/modules/browser/bookmarks.nix
Normal file
19
home/modules/browser/bookmarks.nix
Normal file
@@ -0,0 +1,19 @@
|
||||
{
|
||||
nixos = {
|
||||
name = "NixOS";
|
||||
bookmarks = [
|
||||
{
|
||||
name = "wiki";
|
||||
url = "https://wiki.nixos.org/wiki/NixOS_Wiki";
|
||||
}
|
||||
{
|
||||
name = "packages";
|
||||
url = "https://search.nixos.org/packages";
|
||||
}
|
||||
{
|
||||
name = "options";
|
||||
url = "https://search.nixos.org/options";
|
||||
}
|
||||
];
|
||||
};
|
||||
}
|
||||
12
home/modules/browser/chromium.nix
Normal file
12
home/modules/browser/chromium.nix
Normal file
@@ -0,0 +1,12 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
config = lib.mkIf (config.browser.primary == "chromium" || config.browser.secondary == "chromium") {
|
||||
home.packages = [ pkgs.chromium ];
|
||||
};
|
||||
}
|
||||
33
home/modules/browser/default.nix
Normal file
33
home/modules/browser/default.nix
Normal file
@@ -0,0 +1,33 @@
|
||||
{ lib, ... }:
|
||||
|
||||
{
|
||||
options.browser = {
|
||||
primary = lib.mkOption {
|
||||
type = lib.types.enum [
|
||||
"firefox"
|
||||
"chromium"
|
||||
"librewolf"
|
||||
];
|
||||
default = "firefox";
|
||||
description = "Primary web browser";
|
||||
};
|
||||
|
||||
secondary = lib.mkOption {
|
||||
type = lib.types.nullOr (
|
||||
lib.types.enum [
|
||||
"firefox"
|
||||
"chromium"
|
||||
"librewolf"
|
||||
]
|
||||
);
|
||||
default = null;
|
||||
description = "Optional secondary web browser";
|
||||
};
|
||||
};
|
||||
|
||||
imports = [
|
||||
./firefox.nix
|
||||
./librewolf.nix
|
||||
./chromium.nix
|
||||
];
|
||||
}
|
||||
83
home/modules/browser/firefox.nix
Normal file
83
home/modules/browser/firefox.nix
Normal file
@@ -0,0 +1,83 @@
|
||||
{ config, inputs, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
bookmarks = import ./bookmarks.nix;
|
||||
in
|
||||
|
||||
{
|
||||
config = lib.mkIf (config.browser.primary == "firefox" || config.browser.secondary == "firefox") {
|
||||
programs.firefox = {
|
||||
enable = true;
|
||||
nativeMessagingHosts = with pkgs; [
|
||||
tridactyl-native
|
||||
];
|
||||
profiles = {
|
||||
default = {
|
||||
settings = {
|
||||
"signon.rememberSignons" = false;
|
||||
"findbar.highlightAll" = true;
|
||||
"extensions.autoDisableScopes" = 0;
|
||||
};
|
||||
extensions = {
|
||||
packages = with inputs.firefox-addons.packages.${pkgs.system}; [
|
||||
duckduckgo-privacy-essentials
|
||||
istilldontcareaboutcookies
|
||||
libredirect
|
||||
keepassxc-browser
|
||||
react-devtools
|
||||
sponsorblock
|
||||
tridactyl
|
||||
ublock-origin
|
||||
];
|
||||
};
|
||||
bookmarks = {
|
||||
force = true;
|
||||
settings = [
|
||||
{
|
||||
toolbar = true;
|
||||
bookmarks = [
|
||||
bookmarks.nixos
|
||||
];
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
policies = {
|
||||
DefaultDownloadDirectory = "\${home}/dl";
|
||||
ExtensionSettings = {
|
||||
"jid1-ZAdIEUB7XOzOJw@jetpack" = {
|
||||
default_area = "navbar";
|
||||
private_browsing = true;
|
||||
};
|
||||
"idcac-pub@guus.ninja" = {
|
||||
default_area = "navbar";
|
||||
private_browsing = true;
|
||||
};
|
||||
"7esoorv3@alefvanoon.anonaddy.me" = {
|
||||
default_area = "navbar";
|
||||
};
|
||||
"keepassxc-browser@keepassxc.org" = {
|
||||
default_area = "navbar";
|
||||
private_browsing = true;
|
||||
};
|
||||
"@react-devtools" = {
|
||||
default_area = "navbar";
|
||||
private_browsing = true;
|
||||
};
|
||||
"sponsorBlocker@ajay.app" = {
|
||||
default_area = "navbar";
|
||||
private_browsing = true;
|
||||
};
|
||||
"tridactyl.vim@cmcaine.co.uk".settings = {
|
||||
private_browsing = true;
|
||||
};
|
||||
"uBlock0@raymondhill.net".settings = {
|
||||
default_area = "navbar";
|
||||
private_browsing = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
83
home/modules/browser/librewolf.nix
Normal file
83
home/modules/browser/librewolf.nix
Normal file
@@ -0,0 +1,83 @@
|
||||
{ config, inputs, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
bookmarks = import ./bookmarks.nix;
|
||||
in
|
||||
|
||||
{
|
||||
config = lib.mkIf (config.browser.primary == "librewolf" || config.browser.secondary == "librewolf") {
|
||||
programs.librewolf = {
|
||||
enable = true;
|
||||
nativeMessagingHosts = with pkgs; [
|
||||
tridactyl-native
|
||||
];
|
||||
profiles = {
|
||||
default = {
|
||||
settings = {
|
||||
"signon.rememberSignons" = false;
|
||||
"findbar.highlightAll" = true;
|
||||
"extensions.autoDisableScopes" = 0;
|
||||
};
|
||||
extensions = {
|
||||
packages = with inputs.firefox-addons.packages.${pkgs.system}; [
|
||||
duckduckgo-privacy-essentials
|
||||
istilldontcareaboutcookies
|
||||
libredirect
|
||||
keepassxc-browser
|
||||
react-devtools
|
||||
sponsorblock
|
||||
tridactyl
|
||||
ublock-origin
|
||||
];
|
||||
};
|
||||
bookmarks = {
|
||||
force = true;
|
||||
settings = [
|
||||
{
|
||||
toolbar = true;
|
||||
bookmarks = [
|
||||
bookmarks.nixos
|
||||
];
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
policies = {
|
||||
DefaultDownloadDirectory = "\${home}/dl";
|
||||
ExtensionSettings = {
|
||||
"jid1-ZAdIEUB7XOzOJw@jetpack" = {
|
||||
default_area = "navbar";
|
||||
private_browsing = true;
|
||||
};
|
||||
"idcac-pub@guus.ninja" = {
|
||||
default_area = "navbar";
|
||||
private_browsing = true;
|
||||
};
|
||||
"7esoorv3@alefvanoon.anonaddy.me" = {
|
||||
default_area = "navbar";
|
||||
};
|
||||
"keepassxc-browser@keepassxc.org" = {
|
||||
default_area = "navbar";
|
||||
private_browsing = true;
|
||||
};
|
||||
"@react-devtools" = {
|
||||
default_area = "navbar";
|
||||
private_browsing = true;
|
||||
};
|
||||
"sponsorBlocker@ajay.app" = {
|
||||
default_area = "navbar";
|
||||
private_browsing = true;
|
||||
};
|
||||
"tridactyl.vim@cmcaine.co.uk".settings = {
|
||||
private_browsing = true;
|
||||
};
|
||||
"uBlock0@raymondhill.net".settings = {
|
||||
default_area = "navbar";
|
||||
private_browsing = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user