nixos-config/home/modules/firefox.nix

222 lines
6.5 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
unpaywall
bitwarden
sidebery
leechblock-ng
darkreader
stylus
violentmonkey
vimium-c
noscript
];
search = {
default = "SearX";
force = true;
engines = {
"SearX" = {
urls = [
{
template = "https://searx.org/search";
params = [
{
name = "q";
value = "{searchTerms}";
}
];
}
];
};
"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"];
};
"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" = "https://xqtc161.github.io";
"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;
"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 = ''
@import "firefox-gnome-theme/userChrome.css";
#TabsToolbar {
display: none; !important
}
#sidebar-header {
display: none;
}
'';
};
};
}