nixos-config/home/modules/firefox.nix
2024-09-16 19:12:08 +02:00

270 lines
8.2 KiB
Nix

{
inputs,
outputs,
config,
pkgs,
...
}:
with inputs; {
home.sessionVariables.DEFAULT_BROWSER = "${pkgs.firefox}/bin/firefox";
programs.firefox = {
enable = true;
package =
pkgs.firefox.override {cfg = {enableGnomeExtensions = true;};};
profiles.xqtc = {
isDefault = true;
extensions = with inputs.firefox-addons.packages.${pkgs.system}; [
ublock-origin
sponsorblock
dearrow
pronoundb
tabcenter-reborn
firefox-color
unpaywall
bitwarden
sidebery
leechblock-ng
darkreader
ipvfoo
stylus
shinigami-eyes
violentmonkey
vimium-c
noscript
];
search = {
default = "DuckDuckGo";
force = true;
engines = {
"SearX" = {
urls = [
{
template = "https://searx.org/search";
params = [
{
name = "q";
value = "{searchTerms}";
}
];
}
];
iconUpdateURL = "https://searx.org/favicon.ico";
definedAliases = ["@sx"];
};
"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"];
};
"Nix Options" = {
urls = [
{
template = "https://search.nixos.org/options";
params = [
{
name = "type";
value = "options";
}
{
name = "query";
value = "{searchTerms}";
}
];
}
];
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
definedAliases = ["@no"];
};
"Nix Dev" = {
urls = [
{
template = "https://nix.dev/search.html";
params = [
{
name = "q";
value = "{searchTerms}";
}
];
}
];
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
definedAliases = ["@nd"];
};
"NixOS Wiki" = {
urls = [
{
template = "https://nixos.wiki/index.php?search={searchTerms}";
}
];
iconUpdateURL = "https://nixos.wiki/favicon.png";
updateInterval = 24 * 60 * 60 * 1000; # every day
definedAliases = ["@nw"];
};
"nixpkgs PR Tracker" = {
urls = [
{
template = "https://nixpk.gs/pr-tracker.html?pr={searchTerms}";
}
];
iconUpdateURL = "https://nixos.wiki/favicon.png";
updateInterval = 24 * 60 * 60 * 1000; # every day
definedAliases = ["@npr"];
};
"Reddit" = {
urls = [
{
template = "https://reddit.com/r/{searchTerms}";
}
];
iconUpdateURL = "https://reddit.com/favicon.ico";
updateInterval = 24 * 60 * 60 * 1000; # every day
definedAliases = ["@r"];
};
"Github Repos" = {
urls = [
{
template = "https://github.com/search?q={searchTerms}&type=repositories";
}
];
iconUpdateURL = "https://github.com/favicon.ico";
updateInterval = 24 * 60 * 60 * 1000; # every day
definedAliases = ["@ghr"];
};
"Github Code" = {
urls = [
{
template = "https://github.com/search?q={searchTerms}&type=code";
}
];
iconUpdateURL = "https://github.com/favicon.ico";
updateInterval = 24 * 60 * 60 * 1000; # every day
definedAliases = ["@ghc"];
};
"Github PRs" = {
urls = [
{
template = "https://github.com/search?q={searchTerms}&type=pullrequests";
}
];
iconUpdateURL = "https://github.com/favicon.ico";
updateInterval = 24 * 60 * 60 * 1000; # every day
definedAliases = ["@ghpr"];
};
"Github Users" = {
urls = [
{
template = "https://github.com/search?q={searchTerms}&type=users";
}
];
iconUpdateURL = "https://github.com/favicon.ico";
updateInterval = 24 * 60 * 60 * 1000; # every day
definedAliases = ["@ghu"];
};
"Hackage" = {
urls = [
{
template = "https://hackage.haskell.org/packages/browse?terms={searchTerms}";
}
];
iconUpdateURL = "https://hackage.haskell.org/static/favicon.png";
updateInterval = 24 * 60 * 60 * 1000; # every day
definedAliases = ["@hak"];
};
"crates.io" = {
urls = [
{
template = "https://crates.io/search?q={searchTerms}";
}
];
iconUpdateURL = "https://crates.io/favicon.ico";
updateInterval = 24 * 60 * 60 * 1000; # every day
definedAliases = ["@cio"];
};
"OSDev Wiki" = {
urls = [
{
template = "https://wiki.osdev.org/index.php?search={searchTerms}";
}
];
iconUpdateURL = "https://wiki.osdev.org/favicon.ico";
updateInterval = 24 * 60 * 60 * 1000; # every day
definedAliases = ["@osdev"];
};
"YouTube" = {
urls = [
{
template = "https://youtube.com/results?search_query={searchTerms}";
}
];
iconUpdateURL = "https://youtube.com/favicon.ico";
updateInterval = 24 * 60 * 60 * 1000; # every day
definedAliases = ["@yt"];
};
"Bing".metaData.hidden = true;
"Google".metaData.hidden = true;
"DuckDuckGo".metaData.alias = "@ddg";
};
};
settings = {
"app.normandy.first_run" = false;
"app.shield.optoutstudies.enabled" = false;
"privacy.donotttrackheader.enabled" = true;
"browser.startup.homepage" = "about:home";
"browser.search.region" = "DE";
"browser.search.isUS" = false;
"browser.theme.content-theme" = "0";
"browser.theme.toolbar-theme" = "0";
"browser.newtabpage.activity-stream.showSponsored" = false;
"browser.newtabpage.activity-stream.showSponsoredTopSites" = false;
"media.eme.enabled" = true;
"services.sync.prefs.sync.browser.newtabpage.activity-stream.showSponsored" =
false;
"services.sync.prefs.sync.browser.newtabpage.activity-stream.showSponsoredTopSites" =
false;
"browser.toolbars.bookmarks.visibility" = "never";
"general.useragent.locale" = "de-DE";
"distribution.searchplugins.defaultLocale" = "de-DE";
"signon.rememberSignons" = false;
"toolkit.legacyUserProfileCustomizations.stylesheets" =
true; # Needed to allow userChrome.css
};
# userChrome = ''
# #TabsToolbar {
# display: none; !important
# }
# #sidebar-header {
# display: none;
# }
# '';
userChrome = builtins.readFile ../config-files/catpuccin-firefox.css;
};
};
}