277 lines
8.6 KiB
Nix
277 lines
8.6 KiB
Nix
self: {
|
|
config,
|
|
lib,
|
|
pkgs,
|
|
...
|
|
}: let
|
|
inherit (pkgs.scopedPackages) firefoxAddons;
|
|
|
|
inherit (lib) attrsToList attrValues mkIf mkOption singleton types;
|
|
|
|
mainProfile = "dev-edition-default";
|
|
cfg = config.programs.firefox;
|
|
|
|
custom-css = pkgs.callPackage ./custom-css {};
|
|
in {
|
|
options.programs.firefox.enableCustomConf = mkOption {
|
|
type = types.bool;
|
|
default = false;
|
|
};
|
|
|
|
config = mkIf cfg.enableCustomConf {
|
|
programs.firefox = {
|
|
enable = true;
|
|
|
|
package = pkgs.firefox-devedition;
|
|
|
|
profiles.${mainProfile} = {
|
|
isDefault = true;
|
|
id = 0;
|
|
|
|
userChrome = ''
|
|
@import url("file://${custom-css}");
|
|
'';
|
|
|
|
settings = {
|
|
# Developer Edition Settings
|
|
"xpinstall.signatures.required" = false;
|
|
"extensions.experiments.enabled" = true;
|
|
|
|
# Use the normal file picker
|
|
"widget.use-xdg-desktop-portal.file-picker" = 0;
|
|
|
|
# Firefox-gx user.js
|
|
/*
|
|
Default rules
|
|
*/
|
|
"toolkit.legacyUserProfileCustomizations.stylesheets" = true;
|
|
"svg.context-properties.content.enabled" = true;
|
|
"layout.css.color-mix.enabled" = true;
|
|
"browser.tabs.delayHidingAudioPlayingIconMS" = 0;
|
|
"layout.css.backdrop-filter.enabled" = true;
|
|
"browser.newtabpage.activity-stream.improvesearch.handoffToAwesomebar" = false;
|
|
"browser.newtabpage.activity-stream.newtabWallpapers.enabled" = true;
|
|
"browser.newtabpage.activity-stream.newtabWallpapers.v2.enabled" = true;
|
|
|
|
/*
|
|
To activate container tabs without any extension
|
|
*/
|
|
"privacy.userContext.enabled" = true;
|
|
"privacy.userContext.ui.enabled" = true;
|
|
"privacy.userContext.longPressBehavior" = 2;
|
|
|
|
# Open previous windows and tabs
|
|
"browser.startup.page" = 3;
|
|
|
|
# Prefs
|
|
"apz.overscroll.enabled" = false;
|
|
"layout.css.devPixelsPerPx" = 1.12;
|
|
"browser.search.widget.inNavBar" = true;
|
|
"browser.toolbars.bookmarks.visibility" = "always";
|
|
"browser.toolbars.bookmarks.showInPrivateBrowsing" = true;
|
|
"ui.key.menuAccessKey" = 0;
|
|
|
|
# remove telemetry
|
|
"datareporting.policy.dataSubmissionEnabled" = false;
|
|
"datareporting.healthreport.uploadEnabled" = false;
|
|
"datareporting.healthreport.infoURL" = "";
|
|
"dom.security.https_only_mode" = true;
|
|
|
|
# remove first run and warning stuff
|
|
"datareporting.policy.firstRunURL" = "";
|
|
"extensions.autoDisableScopes" = 0;
|
|
"browser.aboutwelcome.enabled" = false;
|
|
"browser.aboutConfig.showWarning" = false;
|
|
|
|
# Disable firefox autofill
|
|
"signon.rememberSignons" = false;
|
|
"extensions.formautofill.addresses.enabled" = false;
|
|
"extensions.formautofill.creditCards.enabled" = false;
|
|
|
|
# remove new tab stuff
|
|
"extensions.pocket.enabled" = false;
|
|
"services.sync.prefs.sync.browser.newtabpage.activity-stream.feeds.section.topstories" = false;
|
|
"browser.newtabpage.activity-stream.section.highlights.includePocket" = false;
|
|
"browser.newtabpage.activity-stream.feeds.system.topstories" = false;
|
|
"browser.newtabpage.activity-stream.feeds.section.topstories" = false;
|
|
"browser.newtabpage.activity-stream.feeds.topsites" = false;
|
|
"browser.newtabpage.activity-stream.asrouter.userprefs.cfr.addons" = false;
|
|
"browser.newtabpage.activity-stream.asrouter.userprefs.cfr.features" = false;
|
|
};
|
|
|
|
search = {
|
|
default = "searxng";
|
|
force = true;
|
|
|
|
engines = {
|
|
searxng = {
|
|
name = "SearXNG";
|
|
urls = singleton {
|
|
template = "https://search.nelim.org/search";
|
|
params = attrsToList {
|
|
"q" = "{searchTerms}";
|
|
};
|
|
};
|
|
icon = "https://search.nelim.org/favicon.ico";
|
|
definedAliases = ["@s"];
|
|
};
|
|
|
|
code = {
|
|
name = "Github Search Code";
|
|
urls = singleton {
|
|
template = "https://github.com/search";
|
|
params = attrsToList {
|
|
"type" = "code";
|
|
"q" = "NOT is:fork {searchTerms}";
|
|
};
|
|
};
|
|
icon = "https://icon.horse/icon/github.com";
|
|
definedAliases = ["@gs"];
|
|
};
|
|
|
|
nixcode = {
|
|
name = "Github Nix Code";
|
|
urls = singleton {
|
|
template = "https://github.com/search";
|
|
params = attrsToList {
|
|
"type" = "code";
|
|
"q" = "lang:Nix NOT is:fork {searchTerms}";
|
|
};
|
|
};
|
|
icon = "https://icon.horse/icon/github.com";
|
|
definedAliases = ["@gn"];
|
|
};
|
|
|
|
nixpkgs = {
|
|
name = "Nixpkgs";
|
|
urls = singleton {
|
|
template = "https://github.com/search";
|
|
params = attrsToList {
|
|
"type" = "code";
|
|
"q" = "repo:NixOS/nixpkgs {searchTerms}";
|
|
};
|
|
};
|
|
icon = "https://icon.horse/icon/github.com";
|
|
definedAliases = ["@pkgs"];
|
|
};
|
|
|
|
nixwiki = {
|
|
name = "NixOS Wiki";
|
|
urls = singleton {
|
|
template = "https://wiki.nixos.org/w/index.php";
|
|
params = attrsToList {
|
|
"search" = "{searchTerms}";
|
|
};
|
|
};
|
|
icon = "https://wiki.nixos.org/favicon.ico";
|
|
definedAliases = ["@nw"];
|
|
};
|
|
|
|
mynixos = {
|
|
name = "MyNixos";
|
|
urls = singleton {
|
|
template = "https://mynixos.com/search";
|
|
params = attrsToList {
|
|
"q" = "{searchTerms}";
|
|
};
|
|
};
|
|
icon = "https://mynixos.com/favicon.ico";
|
|
definedAliases = ["@mn"];
|
|
};
|
|
|
|
noogle = {
|
|
name = "Noogle";
|
|
urls = singleton {
|
|
template = "https://noogle.dev/q";
|
|
params = attrsToList {
|
|
"term" = "{searchTerms}";
|
|
};
|
|
};
|
|
icon = "https://noogle.dev/favicon.ico";
|
|
definedAliases = ["@ng"];
|
|
};
|
|
|
|
extensions = {
|
|
name = "Firefox Add-ons";
|
|
urls = singleton {
|
|
template = "https://addons.mozilla.org/en-US/firefox/search";
|
|
params = attrsToList {
|
|
"q" = "{searchTerms}";
|
|
};
|
|
};
|
|
icon = "https://addons.mozilla.org/favicon.ico";
|
|
definedAliases = ["@fa"];
|
|
};
|
|
|
|
protondb = {
|
|
name = "ProtonDB";
|
|
urls = singleton {
|
|
template = "https://www.protondb.com/search";
|
|
params = attrsToList {
|
|
"q" = "{searchTerms}";
|
|
};
|
|
};
|
|
icon = "https://www.protondb.com/favicon.ico";
|
|
definedAliases = ["@pdb"];
|
|
};
|
|
|
|
youtube = {
|
|
name = "YouTube";
|
|
urls = singleton {
|
|
template = "https://www.youtube.com/results";
|
|
params = attrsToList {
|
|
"search_query" = "{searchTerms}";
|
|
};
|
|
};
|
|
icon = "https://www.youtube.com/favicon.ico";
|
|
definedAliases = ["@yt" "@youtube"];
|
|
};
|
|
|
|
bing.metaData.hidden = true;
|
|
google.metaData.hidden = true;
|
|
ebay.metaData.hidden = true;
|
|
};
|
|
|
|
order = [
|
|
"searxng"
|
|
"ddg"
|
|
"mynixos"
|
|
"nixwiki"
|
|
"code"
|
|
"nixcode"
|
|
"nixpkgs"
|
|
"noogle"
|
|
"wikipedia"
|
|
"youtube"
|
|
"extensions"
|
|
"protondb"
|
|
];
|
|
};
|
|
|
|
extensions.packages = attrValues {
|
|
inherit
|
|
(firefoxAddons)
|
|
auto-refresh-page
|
|
bitwarden
|
|
darkreader
|
|
floccus
|
|
frankerfacez
|
|
google-container
|
|
image-search-options
|
|
istilldontcareaboutcookies
|
|
return-youtube-dislikes
|
|
sponsorblock
|
|
sound-volume
|
|
stylus
|
|
ttv-lol-pro
|
|
ublock-origin
|
|
undoclosetabbutton
|
|
;
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
# For accurate stack trace
|
|
_file = ./default.nix;
|
|
}
|