Skip to content

Instantly share code, notes, and snippets.

@stevesoltys
Last active December 1, 2025 23:43
Show Gist options
  • Select an option

  • Save stevesoltys/af4c5c45317c543fa3b88da7d08a7218 to your computer and use it in GitHub Desktop.

Select an option

Save stevesoltys/af4c5c45317c543fa3b88da7d08a7218 to your computer and use it in GitHub Desktop.
Steam on Asahi NixOS

Running Steam on NixOS Apple Silicon

This guide details how to run Steam on nixos-apple-silicon using Distrobox.

Tested on:

  1. MacBook Pro M2 Max
  2. NixOS channel 25.11 (unstable channel, at the time of writing)
  3. OpenGL core profile version string: 4.6 (Core Profile) Mesa 25.2.4
  4. Wayland / Sway / SDDM
  5. Kernel: 6.16.8-asahi
  6. NixOS Apple Silicon: github:tpwrules/nixos-apple-silicon/24ab28e47b586f741910b3a2f0428f3523a0fff3

Create a directory for your Distrobox container:

mkdir -p ~/Distrobox/steam
cd ~/Distrobox/steam
vim Dockerfile

Insert the following in the Dockerfile:

# Start with the minimal Fedora 42 image
FROM quay.io/fedora/fedora-minimal:42
WORKDIR /

# Install COPR plugin and enable Asahi repositories
RUN dnf install -y 'dnf5-command(copr)' && \
    dnf copr enable -y @asahi/mesa && \
    dnf copr enable -y @asahi/fedora-remix-scripts

# Add architecture-specific repositories for FEX mesa overlays

# i386 Repository
RUN echo '[copr:copr.fedorainfracloud.org:group_asahi:mesa-i386]' > /etc/yum.repos.d/group_asahi-mesa-i386.repo && \
    echo 'name=Copr repo for mesa owned by @asahi (i386)' >> /etc/yum.repos.d/group_asahi-mesa-i386.repo && \
    echo 'baseurl=https://download.copr.fedorainfracloud.org/results/@asahi/mesa/fedora-$releasever-i386/' >> /etc/yum.repos.d/group_asahi-mesa-i386.repo && \
    echo 'type=rpm-md' >> /etc/yum.repos.d/group_asahi-mesa-i386.repo && \
    echo 'skip_if_unavailable=True' >> /etc/yum.repos.d/group_asahi-mesa-i386.repo && \
    echo 'gpgcheck=1' >> /etc/yum.repos.d/group_asahi-mesa-i386.repo && \
    echo 'gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-group_asahi-mesa' >> /etc/yum.repos.d/group_asahi-mesa-i386.repo && \
    echo 'repo_gpgcheck=0' >> /etc/yum.repos.d/group_asahi-mesa-i386.repo && \
    echo 'enabled=1' >> /etc/yum.repos.d/group_asahi-mesa-i386.repo && \
    echo 'enabled_metadata=1' >> /etc/yum.repos.d/group_asahi-mesa-i386.repo && \
    echo 'priority=5' >> /etc/yum.repos.d/group_asahi-mesa-i386.repo && \
    echo 'includepkgs=mesa-fex-emu-overlay-i386*' >> /etc/yum.repos.d/group_asahi-mesa-i386.repo

# x86_64 Repository
RUN echo '[copr:copr.fedorainfracloud.org:group_asahi:mesa-x86_64]' > /etc/yum.repos.d/group_asahi-mesa-x86_64.repo && \
    echo 'name=Copr repo for mesa owned by @asahi (x86_64)' >> /etc/yum.repos.d/group_asahi-mesa-x86_64.repo && \
    echo 'baseurl=https://download.copr.fedorainfracloud.org/results/@asahi/mesa/fedora-$releasever-x86_64/' >> /etc/yum.repos.d/group_asahi-mesa-x86_64.repo && \
    echo 'type=rpm-md' >> /etc/yum.repos.d/group_asahi-mesa-x86_64.repo && \
    echo 'skip_if_unavailable=True' >> /etc/yum.repos.d/group_asahi-mesa-x86_64.repo && \
    echo 'gpgcheck=1' >> /etc/yum.repos.d/group_asahi-mesa-x86_64.repo && \
    echo 'gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-group_asahi-mesa' >> /etc/yum.repos.d/group_asahi-mesa-x86_64.repo && \
    echo 'repo_gpgcheck=0' >> /etc/yum.repos.d/group_asahi-mesa-x86_64.repo && \
    echo 'enabled=1' >> /etc/yum.repos.d/group_asahi-mesa-x86_64.repo && \
    echo 'enabled_metadata=1' >> /etc/yum.repos.d/group_asahi-mesa-x86_64.repo && \
    echo 'priority=5' >> /etc/yum.repos.d/group_asahi-mesa-x86_64.repo && \
    echo 'includepkgs=mesa-fex-emu-overlay-x86_64*' >> /etc/yum.repos.d/group_asahi-mesa-x86_64.repo

# Clean DNF cache before installing packages
RUN dnf clean all
RUN dnf upgrade --refresh -y

# Install the Asahi platform metapackage
RUN dnf install -y asahi-platform-metapackage-fex

# Install the rest of the required packages
RUN dnf install -y \
    fontconfig \
    dejavu-sans-fonts \
    dejavu-serif-fonts \
    dejavu-sans-mono-fonts \
    sudo \
    xz \
    ps \
    vim \
    xterm \
    ar \
    tar \
    bash \
    coreutils \
    util-linux \
    procps-ng \
    findutils \
    grep \
    sed \
    gawk \
    gzip \
    which \
    less \
    nano \
    passwd \
    shadow-utils \
    systemd \
    iproute \
    iputils \
    curl \
    wget \
    mesa-libGLU \
    ca-certificates \
    alsa-utils

# Enable the Asahi Steam COPR and install Steam
RUN dnf copr enable -y @asahi/steam && \
    dnf install -y steam

# Final cleanup to reduce image size
RUN dnf clean all && \
    rm -rf /var/cache/dnf/* /tmp/* /var/tmp/*

CMD ["/bin/bash"]

Build the Docker image locally:

docker build . --tag steam:latest

Create the Distrobox container:

distrobox-create --name steam --image steam:latest --home ~/Distrobox/steam

Enter the Distrobox container and start Steam:

distrobox enter steam
steam

That's it! Steam should start up and you should be able to install and run games right from Steam as you would on standard Asahi Linux.

@stevesoltys
Copy link
Author

Coming back to confirm that the crashes and performance issues I was experiencing using this guide are exactly the same on Asahi Fedora Remix. It even had the exact same logs, including the pressure-vessel ones.

So to me that means this is all working exactly as expected and it's just about waiting for fixes from the Asahi team.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment