forked from jan-leila/nix-config
		
	main #2
					 2 changed files with 36 additions and 26 deletions
				
			
		|  | @ -41,7 +41,7 @@ in { | |||
|           ]; | ||||
|         }; | ||||
|       }) | ||||
|       (lib.mkIf userConfig.isDesktopUser { | ||||
|       (lib.mkIf config.user.isDesktopUser { | ||||
|         vscode = { | ||||
|           enable = true; | ||||
|           package = pkgs.vscodium; | ||||
|  |  | |||
|  | @ -3,31 +3,41 @@ | |||
|   config, | ||||
|   osConfig, | ||||
|   ... | ||||
| }: { | ||||
|   # TODO: map firefox impermanence | ||||
| }: let | ||||
|   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) { | ||||
|     # firefox profiles are defined by: programs.firefox.profile | ||||
|     # 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}" = { | ||||
|     #   directories = [ | ||||
|     #     ".mozilla/firefox/default/extensions" | ||||
|     #   ]; | ||||
|     #   files = [ | ||||
|     #     ".mozilla/firefox/default/cookies.sqlite" | ||||
|     #     ".mozilla/firefox/default/favicons.sqlite" | ||||
|     #     # Permissions and zoom levels for each site | ||||
|     #     ".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; | ||||
|     # }; | ||||
|     home.persistence."/persist${config.home.homeDirectory}" = lib.mkMerge ( | ||||
|       ( | ||||
|         lib.attrsets.mapAttrsToList | ||||
|         (profile: _: buildProfilePersistence profile) | ||||
|         config.programs.firefox.profiles | ||||
|       ) | ||||
|       ++ ( | ||||
|         lib.lists.optional | ||||
|         ((builtins.length (lib.attrsets.mapAttrsToList (key: value: value) config.programs.firefox.profiles)) == 0) | ||||
|         (buildProfilePersistence "default") | ||||
|       ) | ||||
|     ); | ||||
|   }; | ||||
| } | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue