{ config, lib, ... }: # Shared directories for emulators. let user = config.user.name; directory = "/home/${user}/emulation"; in { options.modules.desktop.emulation.enable = lib.mkEnableOption "shared emulation directories"; config = lib.mkIf config.modules.desktop.emulation.enable { modules.desktop.emulation.retroarch = { enable = lib.mkDefault true; browserDirectory = "${directory}/roms"; }; home-manager.users.${user} = hm: { home.file = { ".config/retroarch/saves".source = hm.config.lib.file.mkOutOfStoreSymlink "${directory}/saves"; ".config/retroarch/states".source = hm.config.lib.file.mkOutOfStoreSymlink "${directory}/states"; ".config/retroarch/system".source = hm.config.lib.file.mkOutOfStoreSymlink "${directory}/bios"; }; systemd.user.tmpfiles.rules = map (path: "d ${path} 0700 - - -") [ directory "${directory}/bios" "${directory}/roms" "${directory}/saves" "${directory}/states" ]; }; }; }