397 lines
12 KiB
Nix
397 lines
12 KiB
Nix
let
|
|
profile = "default";
|
|
prf = ".mozilla/firefox/${profile}";
|
|
extstorage = "${prf}/browser-extension-data";
|
|
in
|
|
{ config, pkgs, lib, firefox-addons, ... }:
|
|
let
|
|
fa = firefox-addons.packages.${pkgs.system};
|
|
buildFirefoxXpiAddon = firefox-addons.lib.${pkgs.system}.buildFirefoxXpiAddon;
|
|
mozlz4 = n: x:
|
|
pkgs.runCommand "${n}.mozlz4" { buildInputs = [ pkgs.mozlz4a ]; } ''
|
|
mozlz4a ${builtins.toFile "${n}" (builtins.toJSON x)} $out
|
|
'';
|
|
in
|
|
{
|
|
home.file."${prf}/extension-preferences.json.tmp".source = pkgs.emptyFile;
|
|
home.file."${prf}/extension-settings.json.tmp".source = pkgs.emptyFile;
|
|
home.file."${prf}/search.json.mozlz4.tmp".source = pkgs.emptyFile;
|
|
home.file."${prf}/storage/default".source = pkgs.emptyDirectory;
|
|
home.file."${prf}/addonStartup.json.lz4".source = mozlz4 "addonStartup.json" {};
|
|
home.file."${prf}/addonStartup.json.lz4.tmp".source = pkgs.emptyFile;
|
|
|
|
home.file."${prf}/extension-preferences.json".text = builtins.toJSON {
|
|
"{3c078156-979c-498b-8990-85f7987dd929}" = {
|
|
origins = ["<all_urls>"];
|
|
permissions = ["proxy" "bookmarks" "tabHide" "clipboardWrite" "history" "downloads" "<all_urls>"];
|
|
};
|
|
"newtaboverride@agenedia.com" = {
|
|
origins = ["https://www.soeren-hentzschel.at/*"];
|
|
permissions = [];
|
|
};
|
|
};
|
|
|
|
home.file."${prf}/extension-settings.json".text = builtins.toJSON {
|
|
commands = {};
|
|
default_search = {};
|
|
homepageNotification = {};
|
|
newTabNotification = {
|
|
"newtaboverride@agenedia.com" = {
|
|
initialValue = false;
|
|
precedenceList = [
|
|
{
|
|
enabled = true;
|
|
id = "newtaboverride@agenedia.com";
|
|
installDate = 1000;
|
|
value = true;
|
|
}
|
|
];
|
|
};
|
|
};
|
|
prefs = {
|
|
"network.networkPredictionEnabled" = {
|
|
initialValue = {};
|
|
precedenceList = [
|
|
{
|
|
enabled = true;
|
|
id = "uBlock0@raymondhill.net";
|
|
installDate = 1000;
|
|
value = false;
|
|
}
|
|
];
|
|
};
|
|
"privacy.containers" = {
|
|
initialValue = {};
|
|
precedenceList = [
|
|
{
|
|
enabled = true;
|
|
id = "CanvasBlocker@kkapsner.de";
|
|
installDate = 1000;
|
|
value = "CanvasBlocker@kkapsner.de";
|
|
}
|
|
];
|
|
};
|
|
"websites.hyperlinkAuditingEnabled" = {
|
|
initialValue = {};
|
|
precedenceList = [
|
|
{
|
|
enabled = true;
|
|
id = "uBlock0@raymondhill.net";
|
|
installDate = 1000;
|
|
value = false;
|
|
}
|
|
];
|
|
};
|
|
};
|
|
tabHideNotification = {};
|
|
url_overrides = {
|
|
newTabURL = {
|
|
initialValue = "about:newtab";
|
|
precedenceList = [
|
|
{
|
|
enabled = true;
|
|
id = "newtaboverride@agenedia.com";
|
|
installDate = 1000;
|
|
value = "moz-extension://5ba70e66-a52e-41b3-9364-b4f0a14f3854/html/newtab.html";
|
|
}
|
|
];
|
|
};
|
|
};
|
|
version = 3;
|
|
};
|
|
|
|
home.file."${extstorage}/redirector@einaregilsson.com/storage.js".text = builtins.toJSON {
|
|
redirects = map ({ includePattern, redirectUrl, description }: {
|
|
appliesTo = ["main_frame"];
|
|
inherit description;
|
|
disabled = false;
|
|
error = null;
|
|
exampleResult = "";
|
|
exampleUrl = "";
|
|
excludePattern = "";
|
|
grouped = false;
|
|
inherit includePattern;
|
|
patternDesc = "";
|
|
patternType = "W";
|
|
processMatches = "noProcessing";
|
|
inherit redirectUrl;
|
|
}) [
|
|
{
|
|
includePattern = "https://*youtube.com/watch?*v=*";
|
|
redirectUrl = "https://yewtu.be/watch?$2v=$3}";
|
|
description = "invidious";
|
|
}
|
|
{
|
|
includePattern = "https://*youtube.com/results?*search_query=*";
|
|
redirectUrl = "https://yewtu.be/search?$2q=$3";
|
|
description = "invidious search";
|
|
}
|
|
];
|
|
enableNotifications = false;
|
|
};
|
|
|
|
home.file."${extstorage}/newtaboverride@agenedia.com/storage.js".text = builtins.toJSON {
|
|
url = "https://lobste.rs";
|
|
};
|
|
|
|
programs.firefox = {
|
|
enable = true;
|
|
package = pkgs.firefox.override {
|
|
extraPolicies = {
|
|
CaptivePortal = false;
|
|
DisableFirefoxStudies = true;
|
|
DisablePocket = true;
|
|
DisableTelemetry = true;
|
|
DisableFirefoxAccounts = true;
|
|
FirefoxHome = {
|
|
Pocket = false;
|
|
Snippets = false;
|
|
};
|
|
UserMessaging = {
|
|
ExtensionRecommendations = false;
|
|
SkipOnboarding = true;
|
|
};
|
|
OverrideFirstRunPage = "";
|
|
Extensions.Install = map (x: x.src.outPath) config.programs.firefox.profiles."default".extensions.packages;
|
|
SearchEngines.Default = "DuckDuckGo";
|
|
ExtensionSettings = {
|
|
"google@search.mozilla.org" = { installation_mode = "blocked"; };
|
|
"amazondotcom@search.mozilla.org" = { installation_mode = "blocked"; };
|
|
"wikipedia@search.mozilla.org" = { installation_mode = "blocked"; };
|
|
"bing@search.mozilla.org" = { installation_mode = "blocked"; };
|
|
};
|
|
};
|
|
};
|
|
profiles.default = {
|
|
userChrome = ''
|
|
/* Catppuccin Mocha */
|
|
:root {
|
|
--ctp-base: #1e1e2e;
|
|
--ctp-mantle: #181825;
|
|
--ctp-crust: #11111b;
|
|
--ctp-surface0:#313244;
|
|
--ctp-surface1:#45475a;
|
|
--ctp-surface2:#585b70;
|
|
--ctp-overlay0:#6c7086;
|
|
--ctp-overlay1:#7f849c;
|
|
--ctp-text: #cdd6f4;
|
|
--ctp-subtext0:#a6adc8;
|
|
--ctp-lavender:#b4befe;
|
|
--ctp-blue: #89b4fa;
|
|
--ctp-mauve: #cba6f7;
|
|
--ctp-pink: #f38ba8;
|
|
--ctp-peach: #fab387;
|
|
--ctp-green: #a6e3a1;
|
|
--ctp-teal: #94e2d5;
|
|
}
|
|
|
|
#main-window,
|
|
#navigator-toolbox,
|
|
#TabsToolbar,
|
|
#nav-bar,
|
|
#PersonalToolbar {
|
|
background-color: var(--ctp-mantle) !important;
|
|
color: var(--ctp-text) !important;
|
|
border-color: var(--ctp-surface0) !important;
|
|
}
|
|
|
|
.tabbrowser-tab .tab-background {
|
|
background-color: var(--ctp-surface0) !important;
|
|
border-radius: 6px !important;
|
|
}
|
|
|
|
.tabbrowser-tab[selected] .tab-background {
|
|
background-color: var(--ctp-base) !important;
|
|
}
|
|
|
|
.tabbrowser-tab .tab-label {
|
|
color: var(--ctp-subtext0) !important;
|
|
}
|
|
|
|
.tabbrowser-tab[selected] .tab-label {
|
|
color: var(--ctp-text) !important;
|
|
}
|
|
|
|
.tabbrowser-tab[selected] .tab-background::before {
|
|
content: "";
|
|
display: block;
|
|
height: 2px;
|
|
background: var(--ctp-mauve) !important;
|
|
border-radius: 2px 2px 0 0;
|
|
position: absolute;
|
|
top: 0;
|
|
left: 0;
|
|
right: 0;
|
|
}
|
|
|
|
#urlbar-background {
|
|
background-color: var(--ctp-surface0) !important;
|
|
border-color: var(--ctp-surface1) !important;
|
|
border-radius: 8px !important;
|
|
}
|
|
|
|
#urlbar[focused] #urlbar-background {
|
|
border-color: var(--ctp-mauve) !important;
|
|
box-shadow: 0 0 0 1px var(--ctp-mauve) !important;
|
|
}
|
|
|
|
#urlbar-input {
|
|
color: var(--ctp-text) !important;
|
|
}
|
|
|
|
toolbar button,
|
|
toolbarbutton {
|
|
color: var(--ctp-text) !important;
|
|
}
|
|
|
|
toolbar button:hover,
|
|
toolbarbutton:hover {
|
|
background-color: var(--ctp-surface1) !important;
|
|
border-radius: 4px !important;
|
|
}
|
|
|
|
#sidebar-box {
|
|
background-color: var(--ctp-mantle) !important;
|
|
color: var(--ctp-text) !important;
|
|
}
|
|
|
|
menupopup,
|
|
panel {
|
|
background-color: var(--ctp-surface0) !important;
|
|
color: var(--ctp-text) !important;
|
|
border-color: var(--ctp-surface1) !important;
|
|
border-radius: 8px !important;
|
|
}
|
|
|
|
menuitem:hover {
|
|
background-color: var(--ctp-surface1) !important;
|
|
color: var(--ctp-text) !important;
|
|
border-radius: 4px !important;
|
|
}
|
|
|
|
#PersonalToolbar toolbarbutton {
|
|
color: var(--ctp-subtext0) !important;
|
|
}
|
|
|
|
#PersonalToolbar toolbarbutton:hover {
|
|
color: var(--ctp-text) !important;
|
|
background-color: var(--ctp-surface0) !important;
|
|
border-radius: 4px !important;
|
|
}
|
|
|
|
scrollbar {
|
|
background-color: var(--ctp-mantle) !important;
|
|
}
|
|
|
|
scrollbar thumb {
|
|
background-color: var(--ctp-surface2) !important;
|
|
border-radius: 4px !important;
|
|
}
|
|
'';
|
|
search = {
|
|
default = "DuckDuckGo";
|
|
force = true;
|
|
engines = {
|
|
"Nix Packages" = {
|
|
urls = [{
|
|
template = "https://search.nixos.org/packages";
|
|
params = [
|
|
{ name = "type"; value = "packages"; }
|
|
{ name = "query"; value = "{searchTerms}"; }
|
|
];
|
|
}];
|
|
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
|
|
definedAliases = ["!np"];
|
|
};
|
|
"Home Manager" = {
|
|
urls = [{
|
|
template = "https://mipmip.github.io/home-manager-option-search/";
|
|
params = [
|
|
{ name = "query"; value = "{searchTerms}"; }
|
|
];
|
|
}];
|
|
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
|
|
definedAliases = ["!hm"];
|
|
};
|
|
"Invidious" = {
|
|
urls = [{
|
|
template = "https://yewtu.be/search";
|
|
params = [
|
|
{ name = "q"; value = "{searchTerms}"; }
|
|
];
|
|
}];
|
|
iconUpdateURL = "https://invidious.io/favicon.ico";
|
|
definedAliases = ["!yt"];
|
|
};
|
|
"Cyberchef" = {
|
|
urls = [{
|
|
template = ''javascript:q="%s";location.href="https://cyberchef.org/#recipe=Magic(3,false,false,\'\')&input="+btoa(q)'';
|
|
params = [
|
|
{ name = "q"; value = "{searchTerms}"; }
|
|
];
|
|
}];
|
|
iconUpdateURL = "https://cyberchef.org/favicon.ico";
|
|
definedAliases = ["!cc"];
|
|
};
|
|
};
|
|
};
|
|
|
|
extraConfig =
|
|
builtins.readFile (
|
|
builtins.fetchurl {
|
|
url = "https://raw.githubusercontent.com/arkenfox/user.js/master/user.js";
|
|
sha256 = "sha256:067bfw8zm6gi82a79cfb3y6hgqf5bsykx1k4z31nby320j4ch74g";
|
|
}
|
|
)
|
|
+ ''
|
|
user_pref('keyword.enabled', true);
|
|
user_pref("browser.startup.homepage", "https://lobste.rs");
|
|
user_pref("browser.startup.page", 1);
|
|
user_pref("privacy.resistFingerprinting", false);
|
|
user_pref("privacy.resistFingerprinting.letterboxing", false);
|
|
user_pref("browser.search.hiddenOneOffs","Google,Bing,Amazon.com,eBay,Twitter,Wikipedia (en)");
|
|
'';
|
|
|
|
settings = {
|
|
"toolkit.legacyUserProfileCustomizations.stylesheets" = true;
|
|
"browser.newtabpage.pinned" = [{ url = "https://lobste.rs"; }];
|
|
"extensions.activeThemeID" = "{e410fec2-1cbd-4098-9944-e21e708418af}";
|
|
"svg.context-properties.content.enabled" = true;
|
|
"browser.toolbars.bookmarks.visibility" = "always";
|
|
"browser.uidensity" = 1;
|
|
"browser.aboutConfig.showWarning" = false;
|
|
"browser.shell.checkDefaultBrowser" = false;
|
|
"browser.newtabpage.activity-stream.improvesearch.topSiteSearchShortcuts" = false;
|
|
"browser.search.hiddenOneOffs" = "Google,Bing,Amazon.com,eBay,Twitter,Wikipedia (en)";
|
|
"browser.download.dir" = config.xdg.userDirs.download;
|
|
};
|
|
|
|
extensions.packages = [
|
|
fa.ublock-origin
|
|
fa.clearurls
|
|
fa.privacy-possum
|
|
fa.skip-redirect
|
|
fa.canvasblocker
|
|
fa.darkreader
|
|
fa.vimium
|
|
(buildFirefoxXpiAddon {
|
|
pname = "sidebery";
|
|
version = "v5.0.0rc4";
|
|
addonId = "{3c078156-979c-498b-8990-85f7987dd929}";
|
|
url = "https://github.com/mbnuqw/sidebery/releases/download/v5.0.0rc4/sidebery-5.0.0rc4.xpi";
|
|
sha256 = "sha256-YsH9yYfGefClRS93dMV/eLMFuoPFKPrx0NL2hIv4dEk=";
|
|
meta = with lib; {
|
|
homepage = "https://github.com/mbnuqw/sidebery";
|
|
description = "Tabs tree and bookmarks in sidebar with advanced containers configuration.";
|
|
license = licenses.mit;
|
|
platforms = platforms.all;
|
|
};
|
|
})
|
|
fa.redirector
|
|
fa.kristofferhagen-nord-theme
|
|
fa.new-tab-override
|
|
fa.snowflake
|
|
];
|
|
};
|
|
};
|
|
}
|