71 lines
		
	
	
	
		
			2.2 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			71 lines
		
	
	
	
		
			2.2 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
{
 | 
						|
  pkgs,
 | 
						|
  lib,
 | 
						|
  inputs',
 | 
						|
  osConfig,
 | 
						|
  ...
 | 
						|
}: let
 | 
						|
  inherit (lib) mkIf mkMerge;
 | 
						|
  inherit (osConfig.ooknet.host) admin;
 | 
						|
  inherit (osConfig.ooknet.appearance) colorscheme fonts;
 | 
						|
  inherit (colorscheme) palette;
 | 
						|
  inherit (osConfig.ooknet.workstation) default;
 | 
						|
 | 
						|
  addons = inputs'.firefox-addons.packages;
 | 
						|
  cfg = osConfig.ooknet.workstation.programs.firefox;
 | 
						|
  firefoxMime = {
 | 
						|
    "text/html" = ["firefox.desktop"];
 | 
						|
    "x-scheme-handler/http" = ["firefox.desktop"];
 | 
						|
    "x-scheme-handler/https" = ["firefox.desktop"];
 | 
						|
    "x-scheme-handler/ftp" = ["firefox.desktop"];
 | 
						|
    "x-scheme-handler/about" = ["firefox.desktop"];
 | 
						|
    "x-scheme-handler/unknown" = ["firefox.desktop"];
 | 
						|
    "application/x-extension-htm" = ["firefox.desktop"];
 | 
						|
    "application/x-extension-html" = ["firefox.desktop"];
 | 
						|
    "application/x-extension-shtml" = ["firefox.desktop"];
 | 
						|
    "application/xhtml+xml" = ["firefox.desktop"];
 | 
						|
    "application/x-extension-xhtml" = ["firefox.desktop"];
 | 
						|
    "application/x-extension-xht" = ["firefox.desktop"];
 | 
						|
    "application/json" = ["firefox.desktop"];
 | 
						|
  };
 | 
						|
in {
 | 
						|
  imports = [./tridactyl.nix];
 | 
						|
  config = mkMerge [
 | 
						|
    (mkIf (cfg.enable || default.browser == "firefox") {
 | 
						|
      programs.firefox = {
 | 
						|
        enable = true;
 | 
						|
        nativeMessagingHosts = [pkgs.tridactyl-native];
 | 
						|
        profiles.${admin.name} = {
 | 
						|
          id = 0;
 | 
						|
          isDefault = true;
 | 
						|
          extensions = with addons; [
 | 
						|
            ublock-origin
 | 
						|
            darkreader
 | 
						|
            tridactyl
 | 
						|
            # onepassword-password-manager # cannot get this to work unfree issue.
 | 
						|
          ];
 | 
						|
          settings = import ./settings/ooksJs.nix;
 | 
						|
          userChrome = import ./theme/ooksfox.nix {inherit fonts palette;};
 | 
						|
          userContent = import ./theme/penguinFoxContent.nix;
 | 
						|
        };
 | 
						|
        profiles.testing = {
 | 
						|
          id = 1;
 | 
						|
          extensions = with addons; [
 | 
						|
            ublock-origin
 | 
						|
            tridactyl
 | 
						|
            darkreader
 | 
						|
          ];
 | 
						|
        };
 | 
						|
      };
 | 
						|
    })
 | 
						|
 | 
						|
    (mkIf (default.browser == "firefox") {
 | 
						|
      home.sessionVariables.BROWSER = "firefox";
 | 
						|
      ooknet.binds.browser = "firefox";
 | 
						|
      xdg.mimeApps = {
 | 
						|
        associations.added = firefoxMime;
 | 
						|
        defaultApplications = firefoxMime;
 | 
						|
      };
 | 
						|
    })
 | 
						|
  ];
 | 
						|
}
 |