Skip to content

Instantly share code, notes, and snippets.

@stevesoltys
Last active January 30, 2026 23:22
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.

@parkers0405
Copy link

I just bought a framework 16 instead LOL, no steam problems on nix

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