53 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			53 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
| { config, lib, pkgs, ... }:
 | |
| 
 | |
| with lib;
 | |
| 
 | |
| let
 | |
| 
 | |
|   tzdir = "${pkgs.tzdata}/share/zoneinfo";
 | |
| 
 | |
| in
 | |
| 
 | |
| {
 | |
|   options = {
 | |
| 
 | |
|     time = {
 | |
| 
 | |
|       timeZone = mkOption {
 | |
|         default = "UTC";
 | |
|         type = types.str;
 | |
|         example = "America/New_York";
 | |
|         description = ''
 | |
|           The time zone used when displaying times and dates. See <link
 | |
|           xlink:href="https://en.wikipedia.org/wiki/List_of_tz_database_time_zones"/>
 | |
|           for a comprehensive list of possible values for this setting.
 | |
|         '';
 | |
|       };
 | |
| 
 | |
|       hardwareClockInLocalTime = mkOption {
 | |
|         default = false;
 | |
|         type = types.bool;
 | |
|         description = "If set, keep the hardware clock in local time instead of UTC.";
 | |
|       };
 | |
| 
 | |
|     };
 | |
|   };
 | |
| 
 | |
|   config = {
 | |
| 
 | |
|     environment.sessionVariables.TZDIR = "/etc/zoneinfo";
 | |
| 
 | |
|     # This way services are restarted when tzdata changes.
 | |
|     systemd.globalEnvironment.TZDIR = tzdir;
 | |
| 
 | |
|     environment.etc.localtime =
 | |
|       { source = "/etc/zoneinfo/${config.time.timeZone}";
 | |
|         mode = "direct-symlink";
 | |
|       };
 | |
| 
 | |
|     environment.etc.zoneinfo.source = tzdir;
 | |
| 
 | |
|   };
 | |
| 
 | |
| }
 | 
