flake/home-manager/browser.nix

190 lines
7.2 KiB
Nix

{ pkgs, ... }:
let
extensions-repo = pkgs.nur.repos.rycee.firefox-addons;
extensions = with extensions-repo; [
augmented-steam # improve the Steam store experience
bitwarden # password manager
dearrow # crowdsourced YouTube thumbnails and titles with the goal of being less sensationalist
docsafterdark # dark mode for Google Workspace
fastforwardteam # bypass url shorteners
honey # automatically find and try coupon codes on digital stores
indie-wiki-buddy # automatically redirect from Fandom to standalone wikis or Breezewiki
modrinthify # add Modrinth links to Curseforge and Spigot projects that are also on Modrinth
plasma-integration # NOTE - replace with gnome-browser-integration if you use gnome, remove if you don't use either plasma or gnome
privacy-badger # block invisible trackers
prometheus-formatter # format Prometheus endpoints
protondb-for-steam # add ProtonDB information to Steam game store pages
#pwas-for-firefox # a tool to install, manage, and use Progressive Web Apps (PWAs) in Firefox, not necessary with Floorp
return-youtube-dislikes # re-add the dislike counter to YouTube
#sidebery # vertical tabs in Firefox, not necessary with Floorp
sponsorblock # block YouTube video sponsored segments
stylus # user stylesheet editor and manager
tampermonkey # userscript manager
ublock-origin # the best adblocker ❤️
wayback-machine # access the Wayback Machine / Internet Archive from any page, also supports automatically saving a page to the Wayback Machine
web-scrobbler # last.fm scrobbling
youtube-nonstop # removes the "Video paused. Continue watching?" confirmation prompt from YouTube
youtube-shorts-block # remove YouTube shorts from the homepage and video suggestions
];
in
{
programs.floorp = {
enable = true;
policies = {
"DisableAppUpdate" = true; # updates should be handled by NixOS
"DisplayBookmarksToolbar" = "always";
"DisableTelemetry" = true;
# For extensions that aren't in NUR
"ExtensionSettings" = {
# Catppuccin Selector
"catppuccin@federicoscodelaro.com" = {
install_url = "https://addons.mozilla.org/firefox/downloads/latest/catppuccin-selector/latest.xpi";
installation_mode = "force_installed";
};
};
};
profiles = {
"cswimr (personal)" = {
id = 0;
isDefault = true;
extensions = extensions;
settings = {
"extensions.autoDisableScopes" = 0;
"floorp.browser.sidebar.enable" = false;
"floorp.browser.sidebar.useIconProvider" = "duckduckgo";
"floorp.browser.sidebar2.hide.to.unload.panel.enabled" = true;
"floorp.extensions.allowPrivateBrowsingByDefault.is.enabled" = true;
};
search = {
default = "DuckDuckGo";
force = true;
order = [
"DuckDuckGo"
"Google (udm14)"
"Nix Packages"
"Nix Options"
"NixOS Wiki"
"ProtonDB"
"Modrinth Mods"
"Modrinth Modpacks"
"Modrinth Plugins"
"Modrinth Datapacks"
];
engines = {
"Bing".metaData.hidden = true;
"Google".metaData.hidden = true;
"Startpage".metaData.hidden = true;
"You.com".metaData.hidden = true;
"Google (udm14)" = {
urls = [ { template = "https://google.com/search?q={searchTerms}&udm14"; } ];
iconUpdateURL = "https://google.com/favicon.ico";
updateInterval = 24 * 60 * 60 * 1000; # every day
definedAliases = [
"@g"
"@google"
"@udm14"
"udm14"
];
};
"Nix Packages" = {
urls = [
{
template = "https://search.nixos.org/packages";
params = [
{
"name" = "query";
"value" = "{searchTerms}";
}
{
"name" = "channel";
"value" = "unstable";
}
];
}
];
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
definedAliases = [
"@np"
"pkgs"
"pkg"
];
};
"Nix Options" = {
urls = [
{
template = "https://search.nixos.org/options";
params = [
{
"name" = "query";
"value" = "{searchTerms}";
}
{
"name" = "channel";
"value" = "unstable";
}
];
}
];
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
definedAliases = [
"@no"
"opts"
"opt"
];
};
"NixOS Wiki" = {
urls = [ { template = "https://wiki.nixos.org/w/index.php?search={searchTerms}"; } ];
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
definedAliases = [
"@nw"
"nix"
];
};
"ProtonDB" = {
urls = [ { template = "https://www.protondb.com/search?q={searchTerms}"; } ];
iconUpdateURL = "https://www.protondb.com/favicon.ico";
updateInterval = 24 * 60 * 60 * 1000; # every day
definedAliases = [
"@pd"
"proton"
];
};
"Modrinth Mods" = {
urls = [ { template = "https://modrinth.com/mod/{searchTerms}"; } ];
iconUpdateURL = "https://modrinth.com/favicon.ico";
updateInterval = 24 * 60 * 60 * 1000; # every day
definedAliases = [
"@mm"
];
};
"Modrinth Modpacks" = {
urls = [ { template = "https://modrinth.com/modpack/{searchTerms}"; } ];
iconUpdateURL = "https://modrinth.com/favicon.ico";
updateInterval = 24 * 60 * 60 * 1000; # every day
definedAliases = [
"@mmp"
];
};
"Modrinth Plugins" = {
urls = [ { template = "https://modrinth.com/plugin/{searchTerms}"; } ];
iconUpdateURL = "https://modrinth.com/favicon.ico";
updateInterval = 24 * 60 * 60 * 1000; # every day
definedAliases = [
"@mp"
];
};
"Modrinth Datapacks" = {
urls = [ { template = "https://modrinth.com/datapack/{searchTerms}"; } ];
iconUpdateURL = "https://modrinth.com/favicon.ico";
updateInterval = 24 * 60 * 60 * 1000; # every day
definedAliases = [
"@md"
];
};
};
};
};
};
};
}