set up firefox impermanence
This commit is contained in:
		
							parent
							
								
									8d86de4a2d
								
							
						
					
					
						commit
						89373ac243
					
				
					 2 changed files with 36 additions and 26 deletions
				
			
		|  | @ -41,7 +41,7 @@ in { | ||||||
|           ]; |           ]; | ||||||
|         }; |         }; | ||||||
|       }) |       }) | ||||||
|       (lib.mkIf userConfig.isDesktopUser { |       (lib.mkIf config.user.isDesktopUser { | ||||||
|         vscode = { |         vscode = { | ||||||
|           enable = true; |           enable = true; | ||||||
|           package = pkgs.vscodium; |           package = pkgs.vscodium; | ||||||
|  |  | ||||||
|  | @ -3,31 +3,41 @@ | ||||||
|   config, |   config, | ||||||
|   osConfig, |   osConfig, | ||||||
|   ... |   ... | ||||||
| }: { | }: let | ||||||
|   # TODO: map firefox impermanence |   buildProfilePersistence = profile: { | ||||||
|  |     directories = [ | ||||||
|  |       ".mozilla/firefox/${profile}/extensions" | ||||||
|  |     ]; | ||||||
|  |     files = [ | ||||||
|  |       ".mozilla/firefox/${profile}/cookies.sqlite" | ||||||
|  |       ".mozilla/firefox/${profile}/favicons.sqlite" | ||||||
|  |       # Permissions and ${profileName} levels for each site | ||||||
|  |       ".mozilla/firefox/${profile}/permissions.sqlite" | ||||||
|  |       ".mozilla/firefox/${profile}/content-prefs.sqlite" | ||||||
|  |       # Browser history and bookmarks | ||||||
|  |       ".mozilla/firefox/${profile}/places.sqlite" | ||||||
|  |       # I guess this is useful? | ||||||
|  |       # https://bugzilla.mozilla.org/show_bug.cgi?id=1511384 | ||||||
|  |       # https://developer.mozilla.org/en-US/docs/Web/API/Storage_API/Storage_quotas_and_eviction_criteria | ||||||
|  |       ".mozilla/firefox/${profile}/storage.sqlite" | ||||||
|  |       # Extension configuration | ||||||
|  |       ".mozilla/firefox/${profile}/extension-settings.json" | ||||||
|  |     ]; | ||||||
|  |     allowOther = true; | ||||||
|  |   }; | ||||||
|  | in { | ||||||
|   config = lib.mkIf (config.programs.firefox.enable && osConfig.host.impermanence.enable) { |   config = lib.mkIf (config.programs.firefox.enable && osConfig.host.impermanence.enable) { | ||||||
|     # firefox profiles are defined by: programs.firefox.profile |     home.persistence."/persist${config.home.homeDirectory}" = lib.mkMerge ( | ||||||
|     # TODO: only set these if we arn't using custom firefox profiles. If we are using custom profiles then we should set this for each firefox profile |       ( | ||||||
|     # home.persistence."/persist${config.home.homeDirectory}" = { |         lib.attrsets.mapAttrsToList | ||||||
|     #   directories = [ |         (profile: _: buildProfilePersistence profile) | ||||||
|     #     ".mozilla/firefox/default/extensions" |         config.programs.firefox.profiles | ||||||
|     #   ]; |       ) | ||||||
|     #   files = [ |       ++ ( | ||||||
|     #     ".mozilla/firefox/default/cookies.sqlite" |         lib.lists.optional | ||||||
|     #     ".mozilla/firefox/default/favicons.sqlite" |         ((builtins.length (lib.attrsets.mapAttrsToList (key: value: value) config.programs.firefox.profiles)) == 0) | ||||||
|     #     # Permissions and zoom levels for each site |         (buildProfilePersistence "default") | ||||||
|     #     ".mozilla/firefox/default/permissions.sqlite" |       ) | ||||||
|     #     ".mozilla/firefox/default/content-prefs.sqlite" |     ); | ||||||
|     #     # Browser history and bookmarks |  | ||||||
|     #     ".mozilla/firefox/default/places.sqlite" |  | ||||||
|     #     # I guess this is useful? |  | ||||||
|     #     # https://bugzilla.mozilla.org/show_bug.cgi?id=1511384 |  | ||||||
|     #     # https://developer.mozilla.org/en-US/docs/Web/API/Storage_API/Storage_quotas_and_eviction_criteria |  | ||||||
|     #     ".mozilla/firefox/default/storage.sqlite" |  | ||||||
|     #     # Extension configuration |  | ||||||
|     #     ".mozilla/firefox/default/extension-settings.json" |  | ||||||
|     #   ]; |  | ||||||
|     #   allowOther = true; |  | ||||||
|     # }; |  | ||||||
|   }; |   }; | ||||||
| } | } | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue