project-plus: home-manager module init
This commit is contained in:
		
							parent
							
								
									1898815955
								
							
						
					
					
						commit
						f59c08deb5
					
				
					 4 changed files with 144 additions and 0 deletions
				
			
		|  | @ -11,6 +11,7 @@ in { | ||||||
|     ./wine.nix |     ./wine.nix | ||||||
|     ./bottles.nix |     ./bottles.nix | ||||||
|     ./emulation.nix |     ./emulation.nix | ||||||
|  |     ./project-plus | ||||||
|   ]; |   ]; | ||||||
|   config = mkIf (elem "gaming" profiles) { |   config = mkIf (elem "gaming" profiles) { | ||||||
|     ooknet.binds = { |     ooknet.binds = { | ||||||
|  |  | ||||||
|  | @ -2,6 +2,7 @@ | ||||||
|   lib, |   lib, | ||||||
|   osConfig, |   osConfig, | ||||||
|   pkgs, |   pkgs, | ||||||
|  |   self', | ||||||
|   ... |   ... | ||||||
| }: let | }: let | ||||||
|   inherit (lib) mkIf elem; |   inherit (lib) mkIf elem; | ||||||
|  | @ -14,6 +15,14 @@ in { | ||||||
|         (pkgs) |         (pkgs) | ||||||
|         ryujinx |         ryujinx | ||||||
|         ; |         ; | ||||||
|  |       inherit | ||||||
|  |         (self'.packages) | ||||||
|  |         wii-u-gc-adapter | ||||||
|  |         ; | ||||||
|  |     }; | ||||||
|  |     ooknet.gaming.project-plus = { | ||||||
|  |       enable = true; | ||||||
|  |       netplay.nickname = "ooks"; | ||||||
|     }; |     }; | ||||||
|   }; |   }; | ||||||
| } | } | ||||||
|  |  | ||||||
							
								
								
									
										5
									
								
								modules/home/workstation/gaming/project-plus/default.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								modules/home/workstation/gaming/project-plus/default.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,5 @@ | ||||||
|  | { | ||||||
|  |   imports = [ | ||||||
|  |     ./options.nix | ||||||
|  |   ]; | ||||||
|  | } | ||||||
							
								
								
									
										129
									
								
								modules/home/workstation/gaming/project-plus/options.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										129
									
								
								modules/home/workstation/gaming/project-plus/options.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,129 @@ | ||||||
|  | { | ||||||
|  |   lib, | ||||||
|  |   self', | ||||||
|  |   config, | ||||||
|  |   ... | ||||||
|  | }: let | ||||||
|  |   inherit (lib) mkOption mkEnableOption mkIf; | ||||||
|  |   inherit (lib.types) package str path attrsOf anything bool int; | ||||||
|  |   cfg = config.ooknet.gaming.project-plus; | ||||||
|  | in { | ||||||
|  |   options.ooknet.gaming.project-plus = { | ||||||
|  |     enable = mkEnableOption "Enable Project Plus"; | ||||||
|  |     package = mkOption { | ||||||
|  |       type = package; | ||||||
|  |       default = self'.packages.project-plus.override { | ||||||
|  |         inherit (cfg) userDir; | ||||||
|  |       }; | ||||||
|  |     }; | ||||||
|  |     userDir = mkOption { | ||||||
|  |       type = str; | ||||||
|  |       default = "${config.xdg.configHome}/project-plus"; | ||||||
|  |       description = '' | ||||||
|  |         Location of the Dolphin User directory, this is the path that the wrapped package | ||||||
|  |         will use for User configuration. defaults to "\$\{config.xdg.configHome}/project-plus" | ||||||
|  |       ''; | ||||||
|  |     }; | ||||||
|  | 
 | ||||||
|  |     launcherSource = mkOption { | ||||||
|  |       type = path; | ||||||
|  |       default = "${self'.packages.fpp-launcher}/Launcher"; | ||||||
|  |       description = '' | ||||||
|  |         Location of the faster-project-plus launcher files. | ||||||
|  |       ''; | ||||||
|  |     }; | ||||||
|  |     sdCardSource = mkOption { | ||||||
|  |       type = path; | ||||||
|  |       default = "${self'.packages.fpp-sd}/sd.raw"; | ||||||
|  |       description = '' | ||||||
|  |         Location of the faster-project-plus sd card | ||||||
|  |       ''; | ||||||
|  |     }; | ||||||
|  |     userSource = mkOption { | ||||||
|  |       type = path; | ||||||
|  |       default = "${self'.packages.fpp-config}/Binaries/User"; | ||||||
|  |     }; | ||||||
|  | 
 | ||||||
|  |     netplay = { | ||||||
|  |       nickname = mkOption { | ||||||
|  |         type = str; | ||||||
|  |         default = "Player"; | ||||||
|  |         description = "Netplay nickname displayed to other players"; | ||||||
|  |       }; | ||||||
|  |       disableMusic = mkOption { | ||||||
|  |         type = bool; | ||||||
|  |         default = true; | ||||||
|  |         description = "Whether to disable music during netplay"; | ||||||
|  |       }; | ||||||
|  |       buffer = mkOption { | ||||||
|  |         type = int; | ||||||
|  |         default = 4; | ||||||
|  |         description = "Default netplay buffer"; | ||||||
|  |       }; | ||||||
|  |     }; | ||||||
|  | 
 | ||||||
|  |     gamesDir = mkOption { | ||||||
|  |       type = str; | ||||||
|  |       default = "./Games"; | ||||||
|  |       description = '' | ||||||
|  |         Location of the directory that stores all game isos, this is where you should store | ||||||
|  |         your brawl iso. Defaults to "./Brawl" (The . is relative to the User dolphin directory) | ||||||
|  |       ''; | ||||||
|  |     }; | ||||||
|  | 
 | ||||||
|  |     extraSettings = mkOption { | ||||||
|  |       type = attrsOf anything; | ||||||
|  |       default = {}; | ||||||
|  |       description = '' | ||||||
|  |         Additional settings for Dolphin.ini | ||||||
|  |       ''; | ||||||
|  |     }; | ||||||
|  |   }; | ||||||
|  |   config = mkIf cfg.enable { | ||||||
|  |     home.packages = [cfg.package]; | ||||||
|  |     xdg.configFile = { | ||||||
|  |       "project-plus/Config/Dolphin.ini" = { | ||||||
|  |         text = lib.generators.toINI {} { | ||||||
|  |           # default settings to ensure project-plus works OOTB. | ||||||
|  |           General = { | ||||||
|  |             IsoPaths = 2; | ||||||
|  |             IsoPath0 = "${cfg.userDir}/Games"; | ||||||
|  |             IsoPath1 = "${cfg.userDir}/Launcher"; | ||||||
|  |             WiiSDCardPath = "${cfg.userDir}/Wii/sd.raw"; | ||||||
|  |           }; | ||||||
|  |           Core = { | ||||||
|  |             DefaultISO = "${cfg.userDir}/Games/brawl.iso"; | ||||||
|  |           }; | ||||||
|  |           Netplay = | ||||||
|  |             { | ||||||
|  |               SelectedHostGame = "Project+ Netplay Launcher.dol"; | ||||||
|  |               BufferSize = cfg.netplay.buffer; | ||||||
|  |               Nickname = cfg.netplay.nickname; | ||||||
|  |               MusicOff = cfg.netplay.disableMusic; | ||||||
|  |               ListenPort = "0x0a42"; | ||||||
|  |               HostPort = "0x0a42"; | ||||||
|  |               ConnectPort = "0x0a42"; | ||||||
|  |               HostCode = 00000000; | ||||||
|  |               TraversalChoice = "traversal"; | ||||||
|  |             } | ||||||
|  |             // cfg.extraSettings; | ||||||
|  |         }; | ||||||
|  |       }; | ||||||
|  |       # Copy dolphin GameSettings configuration from faster-project-plus config | ||||||
|  |       # This includes various Gecko Code files to make for a better Netplay experience | ||||||
|  |       "project-plus/GameSettings" = { | ||||||
|  |         source = "${cfg.userSource}/GameSettings"; | ||||||
|  |         recursive = true; | ||||||
|  |       }; | ||||||
|  |       "project-plus/Launcher" = { | ||||||
|  |         source = "${cfg.launcherSource}"; | ||||||
|  |         recursive = true; | ||||||
|  |       }; | ||||||
|  |       # Cant get this to work, does the sd card need to be writable for dolphin to use it? | ||||||
|  |       # for now sd card will need to be manually placed in the SD directory | ||||||
|  |       # "project-plus/Wii/sd.raw" = { | ||||||
|  |       #   source = cfg.sdCardSource; | ||||||
|  |       # }; | ||||||
|  |     }; | ||||||
|  |   }; | ||||||
|  | } | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue