{ pkgs, ... }: let extensions-repo = pkgs.nur.repos.rycee.firefox-addons; extensions = with extensions-repo; [ augmented-steam # improve the Steam store experience bitwarden # password manager darkreader # dark mode for any website 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)" "GitHub" "ProtonDB" "Nix Packages" "Nix Options" "NixOS Wiki" "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" ]; }; "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" ]; }; "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" ]; }; "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" ]; }; "GitHub" = { urls = [ { template = "https://github.com/search?q={searchTerms}"; } ]; iconUpdateURL = "https://github.com/favicon.ico"; updateInterval = 24 * 60 * 60 * 1000; # every day definedAliases = [ "@gh" ]; }; "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" ]; }; "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" ]; }; }; }; }; }; }; }