diff --git a/flake.nix b/flake.nix index dad9ca4..131cf8c 100644 --- a/flake.nix +++ b/flake.nix @@ -24,6 +24,10 @@ inputs.nixpkgs.follows = "nixpkgs"; }; + vdf-nix = { + url = "github:quirinecker/vdf-nix"; + inputs.nixpkgs.follows = "nixpkgs"; + }; }; outputs = inputs: inputs.flake-parts.lib.mkFlake { inherit inputs; } (inputs.import-tree ./modules); diff --git a/modules/gaming/emulation/cemu.nix b/modules/gaming/emulation/cemu.nix index 570c7c6..12de0bc 100644 --- a/modules/gaming/emulation/cemu.nix +++ b/modules/gaming/emulation/cemu.nix @@ -1,10 +1,99 @@ -{ ... }: +{ inputs, ... }: { + flake.modules.homeManager.cemu = { ... }: { + imports = [ inputs.vdf-nix.modules.homeManager.vdf ]; + + vdf.shortcuts = { + "208933471" = [ + { + "appid" = 3181457528; + "AppName" = "Zelda: Breath of the Wild"; + "Exe" = "cemu"; + "StartDir" = "/home/quirinecker/"; + "icon" = "${./cemu/botw/logo.png}"; + "ShortcutPath" = ""; + "LaunchOptions" = "--title-id 00050000101c9500 --fullscreen"; + "IsHidden" = 0; + "AllowDesktopConfig" = 1; + "AllowOverlay" = 1; + "OpenVR" = 0; + "Devkit" = 0; + "DevkitGameID" = ""; + "DevkitOverrideAppID" = 0; + "LastPlayTime" = 1788863266; + "FlatpakAppID" = ""; + "sortas" = ""; + "tags" = { }; + grid = { + logo = ./cemu/botw/logo.png; + hero = ./cemu/botw/hero.png; + portrait = ./cemu/botw/portrait.png; + landscape = ./cemu/botw/landscape.png; + }; + } + { + "appid" = 3604872806; + "AppName" = "Skylanders SwapForce"; + "Exe" = "cemu"; + "StartDir" = "/home/quirinecker/"; + "icon" = "/home/quirinecker/Downloads/49616854cfb1b647aa07bcdbae4e484d.png"; + "ShortcutPath" = ""; + "LaunchOptions" = "--title-id 0005000010139200 --fullscreen"; + "IsHidden" = 0; + "AllowDesktopConfig" = 1; + "AllowOverlay" = 1; + "OpenVR" = 0; + "Devkit" = 0; + "DevkitGameID" = ""; + "DevkitOverrideAppID" = 0; + "LastPlayTime" = 1788025801; + "FlatpakAppID" = ""; + "sortas" = ""; + "tags" = { }; + grid = { + logo = ./cemu/swapforce/logo.png; + hero = ./cemu/swapforce/hero.png; + portrait = ./cemu/swapforce/portrait.png; + landscape = ./cemu/swapforce/landscape.png; + }; + } + + { + "appid" = 2171090255; + "AppName" = "Skylanders Imaginators"; + "Exe" = "cemu"; + "StartDir" = "/home/quirinecker/"; + "icon" = "${./cemu/imaginators/logo.png}"; + "ShortcutPath" = ""; + "LaunchOptions" = "--title-id 00050000101fb100 --fullscreen"; + "IsHidden" = 0; + "AllowDesktopConfig" = 1; + "AllowOverlay" = 1; + "OpenVR" = 0; + "Devkit" = 0; + "DevkitGameID" = ""; + "DevkitOverrideAppID" = 0; + "LastPlayTime" = 1788025801; + "FlatpakAppID" = ""; + "sortas" = ""; + "tags" = { }; + grid = { + logo = ./cemu/imaginators/logo.png; + hero = ./cemu/imaginators/hero.png; + portrait = ./cemu/imaginators/portrait.png; + landscape = ./cemu/imaginators/landscape.png; + }; + } + ]; + }; + }; + flake.modules.nixos.cemu = { pkgs, ... }: { environment.systemPackages = with pkgs; [ cemu ]; services.udev.extraRules = '' SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTRS{idVendor}=="1430", ATTRS{idProduct}=="0150", MODE="0666" + SUBSYSTEM=="hidraw", ATTRS{idVendor}=="2dc8", MODE="0666", GROUP="users", TAG+="uaccess" ''; }; } diff --git a/modules/gaming/emulation/cemu/botw/hero.png b/modules/gaming/emulation/cemu/botw/hero.png new file mode 100755 index 0000000..997c3d9 Binary files /dev/null and b/modules/gaming/emulation/cemu/botw/hero.png differ diff --git a/modules/gaming/emulation/cemu/botw/landscape.png b/modules/gaming/emulation/cemu/botw/landscape.png new file mode 100755 index 0000000..997c3d9 Binary files /dev/null and b/modules/gaming/emulation/cemu/botw/landscape.png differ diff --git a/modules/gaming/emulation/cemu/botw/logo.png b/modules/gaming/emulation/cemu/botw/logo.png new file mode 100755 index 0000000..be7f451 Binary files /dev/null and b/modules/gaming/emulation/cemu/botw/logo.png differ diff --git a/modules/gaming/emulation/cemu/botw/portrait.png b/modules/gaming/emulation/cemu/botw/portrait.png new file mode 100755 index 0000000..9f347af Binary files /dev/null and b/modules/gaming/emulation/cemu/botw/portrait.png differ diff --git a/modules/gaming/emulation/cemu/imaginators/hero.png b/modules/gaming/emulation/cemu/imaginators/hero.png new file mode 100644 index 0000000..a57fbb2 Binary files /dev/null and b/modules/gaming/emulation/cemu/imaginators/hero.png differ diff --git a/modules/gaming/emulation/cemu/imaginators/landscape.png b/modules/gaming/emulation/cemu/imaginators/landscape.png new file mode 100644 index 0000000..06fca10 Binary files /dev/null and b/modules/gaming/emulation/cemu/imaginators/landscape.png differ diff --git a/modules/gaming/emulation/cemu/imaginators/logo.png b/modules/gaming/emulation/cemu/imaginators/logo.png new file mode 100644 index 0000000..4dd8640 Binary files /dev/null and b/modules/gaming/emulation/cemu/imaginators/logo.png differ diff --git a/modules/gaming/emulation/cemu/imaginators/portrait.png b/modules/gaming/emulation/cemu/imaginators/portrait.png new file mode 100644 index 0000000..6f30d76 Binary files /dev/null and b/modules/gaming/emulation/cemu/imaginators/portrait.png differ diff --git a/modules/gaming/emulation/cemu/swapforce/hero.png b/modules/gaming/emulation/cemu/swapforce/hero.png new file mode 100755 index 0000000..87edc7e Binary files /dev/null and b/modules/gaming/emulation/cemu/swapforce/hero.png differ diff --git a/modules/gaming/emulation/cemu/swapforce/landscape.png b/modules/gaming/emulation/cemu/swapforce/landscape.png new file mode 100755 index 0000000..87edc7e Binary files /dev/null and b/modules/gaming/emulation/cemu/swapforce/landscape.png differ diff --git a/modules/gaming/emulation/cemu/swapforce/logo.png b/modules/gaming/emulation/cemu/swapforce/logo.png new file mode 100755 index 0000000..be64cf0 Binary files /dev/null and b/modules/gaming/emulation/cemu/swapforce/logo.png differ diff --git a/modules/gaming/emulation/cemu/swapforce/portrait.png b/modules/gaming/emulation/cemu/swapforce/portrait.png new file mode 100755 index 0000000..495dee9 Binary files /dev/null and b/modules/gaming/emulation/cemu/swapforce/portrait.png differ diff --git a/modules/gaming/emulation/eden.nix b/modules/gaming/emulation/eden.nix new file mode 100644 index 0000000..18f8bec --- /dev/null +++ b/modules/gaming/emulation/eden.nix @@ -0,0 +1,71 @@ +{ ... }: +{ + flake.modules.nixos.eden = { pkgs, ... }: { + environment.systemPackages = with pkgs; [ eden ]; + }; + + flake.modules.homeManager.eden = { config, ... }: let + configHome = config.home.homeDirectory; + + resolveGamePath = game: "${configHome}/.edenroms/${game}/${game}.nsp"; + in { + # imports = [ inputs.vdf-nix.modules.homeManager.vdf ]; + + vdf.shortcuts = { + "208933471" = [ + { + "appid" = 3694432012; + "AppName" = "Super Mario Bros Wonder"; + "Exe" = "eden-cli"; + "StartDir" = "/home/quirinecker/"; + "icon" = "${./eden/super_mario_bros_wonders/logo.png}"; + "ShortcutPath" = ""; + "LaunchOptions" = "--game ${resolveGamePath "super_mario_bros_wonders"} --fullscreen"; + "IsHidden" = 0; + "AllowDesktopConfig" = 1; + "AllowOverlay" = 1; + "OpenVR" = 0; + "Devkit" = 0; + "DevkitGameID" = ""; + "DevkitOverrideAppID" = 0; + "LastPlayTime" = 1788863266; + "FlatpakAppID" = ""; + "sortas" = ""; + "tags" = { }; + grid = { + logo = ./eden/super_mario_bros_wonders/logo.png; + hero = ./eden/super_mario_bros_wonders/hero.png; + portrait = ./eden/super_mario_bros_wonders/portrait.png; + landscape = ./eden/super_mario_bros_wonders/landscape.png; + }; + } + { + "appid" = 2240985812; + "AppName" = "Pokemon Lets Go Eevee"; + "Exe" = "eden-cli"; + "StartDir" = "/home/quirinecker/"; + "icon" = "${./eden/super_mario_bros_wonders/logo.png}"; + "ShortcutPath" = ""; + "LaunchOptions" = "--game ${resolveGamePath "pokemon_lets_go_eevee"} --fullscreen"; + "IsHidden" = 0; + "AllowDesktopConfig" = 1; + "AllowOverlay" = 1; + "OpenVR" = 0; + "Devkit" = 0; + "DevkitGameID" = ""; + "DevkitOverrideAppID" = 0; + "LastPlayTime" = 1788863266; + "FlatpakAppID" = ""; + "sortas" = ""; + "tags" = { }; + grid = { + logo = ./eden/pokemon_lets_go_eevee/logo.png; + hero = ./eden/pokemon_lets_go_eevee/hero.png; + portrait = ./eden/pokemon_lets_go_eevee/portrait.png; + landscape = ./eden/pokemon_lets_go_eevee/landscape.png; + }; + } + ]; + }; + }; +} diff --git a/modules/gaming/emulation/eden/pokemon_lets_go_eevee/hero.png b/modules/gaming/emulation/eden/pokemon_lets_go_eevee/hero.png new file mode 100644 index 0000000..8b286c1 Binary files /dev/null and b/modules/gaming/emulation/eden/pokemon_lets_go_eevee/hero.png differ diff --git a/modules/gaming/emulation/eden/pokemon_lets_go_eevee/landscape.png b/modules/gaming/emulation/eden/pokemon_lets_go_eevee/landscape.png new file mode 100644 index 0000000..c5e5465 Binary files /dev/null and b/modules/gaming/emulation/eden/pokemon_lets_go_eevee/landscape.png differ diff --git a/modules/gaming/emulation/eden/pokemon_lets_go_eevee/logo.png b/modules/gaming/emulation/eden/pokemon_lets_go_eevee/logo.png new file mode 100644 index 0000000..f344c25 Binary files /dev/null and b/modules/gaming/emulation/eden/pokemon_lets_go_eevee/logo.png differ diff --git a/modules/gaming/emulation/eden/pokemon_lets_go_eevee/portrait.png b/modules/gaming/emulation/eden/pokemon_lets_go_eevee/portrait.png new file mode 100644 index 0000000..378791e Binary files /dev/null and b/modules/gaming/emulation/eden/pokemon_lets_go_eevee/portrait.png differ diff --git a/modules/gaming/emulation/eden/super_mario_bros_wonders/hero.png b/modules/gaming/emulation/eden/super_mario_bros_wonders/hero.png new file mode 100644 index 0000000..2196563 Binary files /dev/null and b/modules/gaming/emulation/eden/super_mario_bros_wonders/hero.png differ diff --git a/modules/gaming/emulation/eden/super_mario_bros_wonders/landscape.png b/modules/gaming/emulation/eden/super_mario_bros_wonders/landscape.png new file mode 100644 index 0000000..62c3ee5 Binary files /dev/null and b/modules/gaming/emulation/eden/super_mario_bros_wonders/landscape.png differ diff --git a/modules/gaming/emulation/eden/super_mario_bros_wonders/logo.png b/modules/gaming/emulation/eden/super_mario_bros_wonders/logo.png new file mode 100644 index 0000000..5c035db Binary files /dev/null and b/modules/gaming/emulation/eden/super_mario_bros_wonders/logo.png differ diff --git a/modules/gaming/emulation/eden/super_mario_bros_wonders/portrait.png b/modules/gaming/emulation/eden/super_mario_bros_wonders/portrait.png new file mode 100644 index 0000000..c21dbff Binary files /dev/null and b/modules/gaming/emulation/eden/super_mario_bros_wonders/portrait.png differ diff --git a/modules/gaming/gaming.nix b/modules/gaming/gaming.nix index d064b6f..6f640c9 100644 --- a/modules/gaming/gaming.nix +++ b/modules/gaming/gaming.nix @@ -3,6 +3,7 @@ flake.modules.nixos.gaming = { ... }: { imports = [ self.modules.nixos.cemu + self.modules.nixos.eden self.modules.nixos.steam self.modules.nixos.xbox-controller self.modules.nixos.gpu-screenrecorder