Test distrobox steam

This commit is contained in:
Aleksandr Lebedev 2025-03-10 18:17:00 +01:00
parent f74e80d0ea
commit 3740489bf0
2 changed files with 53 additions and 7 deletions

View file

@ -309,7 +309,7 @@ in
# enableSSHSupport = true; # enableSSHSupport = true;
# }; # };
kk.steam.enable = hwconfig.system == "x86_64-linux"; kk.steam.enable = true;
# List services that you want to enable: # List services that you want to enable:

View file

@ -7,18 +7,64 @@
... ...
}: let }: let
cfg = config.kk.steam; cfg = config.kk.steam;
containerPath = if hwconfig.useImpermanence then "/persist/home/containers/steam" else "/var/containers/steam";
containerName = "fedora-steam";
in { in {
options.kk.steam = { options.kk.steam = {
enable = lib.mkEnableOption "Enable steam"; enable = lib.mkEnableOption "Enable steam";
}; };
config = lib.mkIf cfg.enable ( config = lib.mkIf cfg.enable (
# if hwconfig.useImpermanence if hwconfig.system == "aarch64-linux"
# then { then {
# kk.services.flatpak.enable = lib.mkForce true; virtualisation.podman = {
# services.flatpak.packages = ["com.valvesoftware.Steam"]; enable = true;
# } dockerCompat = true;
# else };
environment.systemPackages = with pkgs;[
distrobox
(pkgs.writeShellScriptBin "steam-install" ''
set -e
echo "Проверяем контейнер Steam..."
if [ ! -d "${containerPath}" ]; then
echo "Контейнер не найден, создаем новый с Fedora..."
# Создаём контейнер с Fedora
export PATH=${pkgs.podman}/bin:$PATH
env -u SUDO_USER ${pkgs.distrobox}/bin/distrobox-create --name "${containerName}" --image registry.fedoraproject.org/fedora:latest --home ${containerPath} --hostname ${containerName} --yes
echo "Контейнер ${containerName} создан, устанавливаем Steam..."
# Устанавливаем Steam внутри контейнера
env -u SUDO_USER ${pkgs.distrobox}/bin/distrobox-enter "${containerName}" -- sudo dnf upgrade --refresh -y
env -u SUDO_USER ${pkgs.distrobox}/bin/distrobox-enter "${containerName}" -- sudo dnf copr enable -y @asahi/steam
env -u SUDO_USER ${pkgs.distrobox}/bin/distrobox-enter "${containerName}" -- sudo dnf copr enable -y @asahi/fedora-remix-branding
env -u SUDO_USER ${pkgs.distrobox}/bin/distrobox-enter "${containerName}" -- sudo dnf copr enable -y @asahi/fedora-remix-scripts
env -u SUDO_USER ${pkgs.distrobox}/bin/distrobox-enter "${containerName}" -- sudo dnf copr enable -y @asahi/kernel
env -u SUDO_USER ${pkgs.distrobox}/bin/distrobox-enter "${containerName}" -- sudo dnf copr enable -y @asahi/mesa
env -u SUDO_USER ${pkgs.distrobox}/bin/distrobox-enter "${containerName}" -- sudo dnf copr enable -y @asahi/kernel-edge
env -u SUDO_USER ${pkgs.distrobox}/bin/distrobox-enter "${containerName}" -- sudo dnf copr enable -y @asahi/packit-builds
env -u SUDO_USER ${pkgs.distrobox}/bin/distrobox-enter "${containerName}" -- sudo dnf copr enable -y @asahi/u-boot
env -u SUDO_USER ${pkgs.distrobox}/bin/distrobox-enter "${containerName}" -- sudo dnf copr enable -y @asahi/rawhide-rebuilds
env -u SUDO_USER ${pkgs.distrobox}/bin/distrobox-enter "${containerName}" -- sudo dnf copr enable -y @asahi/mesa
env -u SUDO_USER ${pkgs.distrobox}/bin/distrobox-enter "${containerName}" -- sudo dnf copr enable -y @asahi/mesa
env -u SUDO_USER ${pkgs.distrobox}/bin/distrobox-enter "${containerName}" -- sudo dnf upgrade --refresh -y
env -u SUDO_USER ${pkgs.distrobox}/bin/distrobox-enter "${containerName}" -- sudo dnf install --best --setopt=allow_vendor_change=true asahi-repos -y
env -u SUDO_USER ${pkgs.distrobox}/bin/distrobox-enter "${containerName}" -- sudo dnf install --best --setopt=allow_vendor_change=true steam -y
env -u SUDO_USER ${pkgs.distrobox}/bin/distrobox-enter "${containerName}" -- sudo dnf remove dhcpcd -y
fi
echo "Экспортируем Steam..."
env -u SUDO_USER ${pkgs.distrobox}/bin/distrobox enter "${containerName}" -- distrobox-export --app steam
'')
];
}
else
{ {
programs.steam = { programs.steam = {
enable = true;#!hwconfig.useImpermanence; enable = true;#!hwconfig.useImpermanence;