{ inputs, ... }: { flake.homeModules.nathan-firefox = { config, lib, pkgs, ... }: { config = { home.sessionVariables.BROWSER = "${config.programs.firefox.package}/bin/firefox"; home.packages = lib.mkIf (builtins.any (x: x == pkgs.pywal16) config.home.packages) [ pkgs.pywalfox-native ]; home.file.".mozilla/native-messaging-hosts/pywalfox.json".text = let pywalfox-wrapper = pkgs.writeShellScriptBin "pywalfox-wrapper" '' ${pkgs.pywalfox-native}/bin/pywalfox start ''; in lib.replaceStrings [ "" ] [ "${pywalfox-wrapper}/bin/pywalfox-wrapper" ] (lib.readFile "${pkgs.pywalfox-native}/lib/python3.13/site-packages/pywalfox/assets/manifest.json"); programs.firefox = { enable = true; package = pkgs.firefox; profiles.nathan = { search = { default = "ddg"; privateDefault = "ddg"; force = true; }; bookmarks = { force = true; settings = [ { name = "toolbar"; toolbar = true; bookmarks = [ { name = "NixOS Search - Packages"; url = "https://search.nixos.org/packages"; } ]; } ]; }; extensions.packages = with inputs.firefox-addons.packages.${pkgs.stdenv.hostPlatform.system}; [ ublock-origin keepassxc-browser pywalfox ]; }; }; }; }; }