wip(home): refactor home modules *WILL NOT BUILD*
This commit is contained in:
		
							parent
							
								
									2033810429
								
							
						
					
					
						commit
						6a591ecbf7
					
				
					 115 changed files with 1028 additions and 791 deletions
				
			
		
							
								
								
									
										62
									
								
								sys/modules/base/host/hardware/monitors.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										62
									
								
								sys/modules/base/host/hardware/monitors.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,62 @@ | |||
| { lib, config, ... }: | ||||
| 
 | ||||
| let | ||||
|   inherit (lib) mkOption types; | ||||
|   cfg = config.ooknet.host.hardware.monitors; | ||||
| in | ||||
| { | ||||
|   options.ooknet.host.hardware.monitors = mkOption { | ||||
|     type = types.listOf (types.submodule { | ||||
|       options = { | ||||
|         name = mkOption { | ||||
|           type = types.str; | ||||
|           example = "DP-1"; | ||||
|         }; | ||||
|         primary = mkOption { | ||||
|           type = types.bool; | ||||
|           default = false; | ||||
|         }; | ||||
|         width = mkOption { | ||||
|           type = types.int; | ||||
|           example = 1920; | ||||
|         }; | ||||
|         height = mkOption { | ||||
|           type = types.int; | ||||
|           example = 1080; | ||||
|         }; | ||||
|         refreshRate = mkOption { | ||||
|           type = types.int; | ||||
|           default = 60; | ||||
|         }; | ||||
|         x = mkOption { | ||||
|           type = types.int; | ||||
|           default = 0; | ||||
|         }; | ||||
|         y = mkOption { | ||||
|           type = types.int; | ||||
|           default = 0; | ||||
|         }; | ||||
|         transform = mkOption { | ||||
|           type = types.int; | ||||
|           default = 0; | ||||
|         }; | ||||
|         enabled = mkOption { | ||||
|           type = types.bool; | ||||
|           default = true; | ||||
|         }; | ||||
|         workspace = mkOption { | ||||
|           type = types.nullOr types.str; | ||||
|           default = null; | ||||
|         }; | ||||
|       }; | ||||
|     }); | ||||
|     default = [ ]; | ||||
|   }; | ||||
|   config = { | ||||
|     assertions = [{ | ||||
|       assertion = ((lib.length cfg) != 0) -> | ||||
|         ((lib.length (lib.filter (m: m.primary) cfg)) == 1); | ||||
|       message = "Exactly one monitor must be set to primary."; | ||||
|     }]; | ||||
|   }; | ||||
| } | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue