# SPDX-FileCopyrightText: 2025 Ethan Reece # # SPDX-License-Identifier: MIT { config, inputs, lib, pkgs, system, ... }: let wrapPkg = pkg: if config.targets.genericLinux.enable then (config.lib.nixGL.wrap pkg) else pkg; in lib.mkIf (config.flakeSettings.graphical && lib.hasSuffix "-linux" system) { # imports = [ { nixpkgs.overlays = [ inputs.nur.overlays.default ]; } ]; # https://nix.catppuccin.com/search/rolling/ catppuccin = { floorp.profiles.default.force = true; }; # https://nix-community.github.io/stylix/options/modules/alacritty.html stylix.targets = { floorp = { profileNames = [ "default" ]; }; }; programs = { # TODO: Add https://www.reddit.com/r/lumetrium_definer/comments/1buwmoa/tuja_vortaro_esperanto_dictionary_at/?context=3 # TODO: Add Auto Tab Discard unless Floorp has that built-in floorp = { enable = true; package = wrapPkg pkgs.floorp-bin; languagePacks = [ "eo" "en-US" ]; policies = { ExtensionSettings = let # mozilla.github.io/policy-templates mkMozillaAddonUrl = id: "https://addons.mozilla.org/firefox/downloads/latest/${id}/latest.xpi"; in { # "*".installation_mode = "blocked"; "*".installation_mode = "allowed"; # PopUpOFF "{154cddeb-4c8b-4627-a478-c7e5b427ffdf}" = { installation_mode = "force_installed"; install_url = mkMozillaAddonUrl "{154cddeb-4c8b-4627-a478-c7e5b427ffdf}"; }; # The wall "{4df1496d-becb-4eb8-9f3e-08a52cf3dd6a}" = { installation_mode = "force_installed"; install_url = mkMozillaAddonUrl "{4df1496d-becb-4eb8-9f3e-08a52cf3dd6a}"; }; # MWMBL Web Crawler "{53f57a68-a73e-4b31-ba0c-97cf722602ae}" = { installation_mode = "force_installed"; install_url = mkMozillaAddonUrl "{53f57a68-a73e-4b31-ba0c-97cf722602ae}"; }; # Video Speed Controller "{7be2ba16-0f1e-4d93-9ebc-5164397477a9}" = { installation_mode = "force_installed"; install_url = mkMozillaAddonUrl "{7be2ba16-0f1e-4d93-9ebc-5164397477a9}"; }; # Boycat "boycat@extension.io" = { installation_mode = "force_installed"; install_url = mkMozillaAddonUrl "boycat@extension.io"; }; # Go European "goeuropean@example.com" = { installation_mode = "force_installed"; install_url = mkMozillaAddonUrl "goeuropean@example.com"; }; # Bypass Paywalls Clean "magnolia@12.34.xpi" = { installation_mode = "force_installed"; install_url = "https://gitflic.ru/project/magnolia1234/bpc_uploads/blob/?file=bypass_paywalls_clean-latest.xpi&branch=main"; }; # Sky Follower Bridge "sky-follower-bridge@ryo.kawamata" = { installation_mode = "force_installed"; install_url = mkMozillaAddonUrl "sky-follower-bridge@ryo.kawamata"; }; # Support Canadian "supportcanadian@example.com" = { installation_mode = "force_installed"; install_url = mkMozillaAddonUrl "supportcanadian@example.com"; }; # Syrup "syrup@extension" = { installation_mode = "force_installed"; install_url = mkMozillaAddonUrl "syrup@extension"; }; # TrackMeNot "trackmenot@mrl.nyu.edu" = { installation_mode = "force_installed"; install_url = mkMozillaAddonUrl "trackmenot@mrl.nyu.edu"; }; }; SearchEngines = { Default = "Kagi"; }; SanitizeOnShutdown = true; HttpsOnlyMode = "force_enabled"; PromptForDownloadLocation = true; DisplayBookmarksToolbar = "newtab"; RequestedLocales = "eo,en-US"; PasswordManagerEnabled = false; }; profiles.default = { extensions = { force = true; packages = with pkgs; [ # https://nur.nix-community.org/repos/rycee/ nur.repos.rycee.firefox-addons.adnauseam nur.repos.rycee.firefox-addons.amp2html # nur.repos.rycee.firefox-addons.aria2-integration nur.repos.rycee.firefox-addons.bitwarden nur.repos.rycee.firefox-addons.blocktube nur.repos.rycee.firefox-addons.clearurls nur.repos.rycee.firefox-addons.cliget nur.repos.rycee.firefox-addons.control-panel-for-twitter nur.repos.rycee.firefox-addons.dearrow nur.repos.rycee.firefox-addons.don-t-fuck-with-paste nur.repos.rycee.firefox-addons.fediact nur.repos.rycee.firefox-addons.firefox-color nur.repos.rycee.firefox-addons.foxyproxy-standard nur.repos.rycee.firefox-addons.geminize nur.repos.rycee.firefox-addons.gesturefy nur.repos.rycee.firefox-addons.github-file-icons nur.repos.rycee.firefox-addons.github-issue-link-status # nur.repos.rycee.firefox-addons.iina-open-in-mpv nur.repos.rycee.firefox-addons.ipfs-companion nur.repos.rycee.firefox-addons.istilldontcareaboutcookies nur.repos.rycee.firefox-addons.kagi-search nur.repos.rycee.firefox-addons.leechblock-ng nur.repos.rycee.firefox-addons.localcdn nur.repos.rycee.firefox-addons.lovely-forks nur.repos.rycee.firefox-addons.notifier-for-github nur.repos.rycee.firefox-addons.octotree nur.repos.rycee.firefox-addons.old-reddit-redirect nur.repos.rycee.firefox-addons.peertubeify nur.repos.rycee.firefox-addons.private-grammar-checker-harper nur.repos.rycee.firefox-addons.protoots nur.repos.rycee.firefox-addons.reddit-enhancement-suite nur.repos.rycee.firefox-addons.shinigami-eyes nur.repos.rycee.firefox-addons.simple-translate nur.repos.rycee.firefox-addons.snowflake nur.repos.rycee.firefox-addons.sponsorblock nur.repos.rycee.firefox-addons.streetpass-for-mastodon nur.repos.rycee.firefox-addons.terms-of-service-didnt-read nur.repos.rycee.firefox-addons.translate-web-pages nur.repos.rycee.firefox-addons.tree-style-tab nur.repos.rycee.firefox-addons.twiter-x-video-downloader nur.repos.rycee.firefox-addons.ublacklist nur.repos.rycee.firefox-addons.user-agent-string-switcher nur.repos.rycee.firefox-addons.web-archives nur.repos.rycee.firefox-addons.web-scrobbler nur.repos.rycee.firefox-addons.youtube-high-definition nur.repos.rycee.firefox-addons.youtube-no-translation nur.repos.rycee.firefox-addons.youtube-shorts-block ]; }; isDefault = true; name = "Main"; settings = { "dom.securecontext.allowlist_onions" = true; # "extensions.autoDisableScopes" = 0; # "extensions.checkCompatibility.128.0" = false; # "extensions.checkCompatibility.128.1" = false; # "extensions.checkCompatibility.128.10" = false; # "extensions.checkCompatibility.128.11" = false; # "extensions.checkCompatibility.128.12" = false; # "extensions.checkCompatibility.128.13" = false; # "extensions.checkCompatibility.128.14" = false; # "extensions.checkCompatibility.128.15" = false; # "extensions.checkCompatibility.128.2" = false; # "extensions.checkCompatibility.128.3" = false; # "extensions.checkCompatibility.128.4" = false; # "extensions.checkCompatibility.128.5" = false; # "extensions.checkCompatibility.128.6" = false; # "extensions.checkCompatibility.128.7" = false; # "extensions.checkCompatibility.128.8" = false; # "extensions.checkCompatibility.128.9" = false; # "extensions.checkCompatibility.nightly" = false; # "floorp.browser.sidebar.enable" = false; # "floorp.browser.sidebar.is.displayed" = false; "floorp.browser.ssb.enabled" = true; # "floorp.browser.tabs.verticaltab" = true; "floorp.tabsleep.enabled" = true; "floorp.titlebar.favicon.color" = true; # "floorp.verticaltab.hover.enabled" = true; "network.dns.blockDotOnion" = false; "sidebar.verticalTabs" = true; }; bookmarks = { force = true; settings = [ { name = "DFW"; toolbar = true; bookmarks = [ { name = "DART Trip Planner"; url = "https://www.dart.org/trip/trip-planner/trip-planner-map"; } ]; } { name = "Dokumentado"; toolbar = true; bookmarks = [ { name = "Catppuccin Options"; url = "https://nix.catppuccin.com/search/rolling/"; } { name = "Firefox Policy Templates"; url = "mozilla.github.io/policy-templates"; } { name = "flake-parts treefmt-nix Documentation"; url = "flake.parts/options/treefmt-nix.html"; } { name = "flake-parts git-hook-nix Documentation"; url = "https://flake.parts/options/git-hooks-nix.html"; } { name = "GitHub - Helix"; url = "https://github.com/helix-editor/helix"; } { name = "GitHub - home-manager"; url = "https://github.com/nix-community/home-manager"; } { name = "GitHub - nixpkgs"; url = "https://github.com/NixOS/nixpkgs"; } { name = "Guix Packages"; url = "https://toys.whereis.social/"; } { name = "Harper Supported Languages"; url = "https://writewithharper.com/docs/integrations/language-server#Supported-Languages"; } { name = "Helix Commands"; url = "https://docs.helix-editor.com/commands.html"; } { name = "Helix Language Support"; url = "https://docs.helix-editor.com/lang-support.html"; } { name = "Helix Formatter Support"; url = "https://helix-editor.vercel.app/reference/formatters"; } { name = "Helix Keymap"; url = "https://docs.helix-editor.com/keymap.html"; } { name = "Helix languages.toml"; url = "https://github.com/helix-editor/helix/blob/master/languages.toml"; } { name = "Home Manager Configuration Options"; url = "https://nix-community.github.io/home-manager/options.xhtml"; } { name = "ltex-plus Supported Languages"; url = "https://ltex-plus.github.io/ltex-plus/supported-languages.html"; } { name = "Nerd Fonts Cheatsheet"; url = "https://www.nerdfonts.com/cheat-sheet"; } { name = "Nix Firefox Addons Search"; url = "https://nur.nix-community.org/repos/rycee/"; } { name = "NixOS Configuration Options"; url = "https://nixos.org/manual/nixos/unstable/options"; } { name = "NixOS Package Search"; url = "https://search.nixos.org/packages"; } { name = "Stylix Options"; url = "https://nix-community.github.io/stylix/options/modules/alacritty.html"; } { name = "Vale Supported Languages"; url = "https://vale.sh/docs/formats/code"; } ]; } { name = "Linvgo"; toolbar = true; bookmarks = [ { name = "Vikipedio"; url = "https://eo.wikipedia.org"; } { name = "Tuja Vortaro"; url = "https://www.tujavortaro.net/?lingvo=en"; } { name = "Wiktionary"; url = "https://en.wiktionary.org"; } ]; } { name = "Lokaj retejoj"; toolbar = true; bookmarks = [ { name = "CUPS"; url = "http://localhost:631/"; } { name = "Syncthing"; url = "http://localhost:8384/"; } ]; } { name = "Memgastigado"; toolbar = true; bookmarks = [ { name = "ArchiveTeam Warrior"; url = "http://docker:8001/"; } { name = "OpenRouter Chat"; url = "https://openrouter.ai/chat"; } { name = "Proxmox"; url = "https://gamingserver:8006"; } { name = "Portainer"; url = "http://docker:9000"; } { name = "Syncthing"; url = "http://docker:8384/"; } { name = "The Indie Beat"; url = "https://theindiebeat.fm/"; } { name = "TrueNAS"; url = "https://10.10.10.5:444/"; } ]; } { name = "UT Dallas"; toolbar = true; bookmarks = [ { name = "Comet Calendar"; url = "https://calendar.utdallas.edu/"; } { name = "eLearning"; url = "https://elearning.utdallas.edu/"; } { name = "UT Dallas Map"; url = "https://map.utdallas.edu/"; } ]; } ]; }; }; }; }; }