{
  "id": 12184780,
  "title": "Nix on the Steam Frame",
  "url": "https://urgent.news/2026/10/05/nix-on-the-steam-frame",
  "topic": "tech",
  "section": "Tech",
  "published": "2026-10-05T13:46:18.000Z",
  "source": {
    "name": "Lobsters",
    "slug": "lobsters",
    "url": "https://johns.codes/blog/nix-on-steam-frame"
  },
  "original_language": "en",
  "account": "The Steam Frame is a device that runs a similar OS setup to the Steam Deck, allowing for easy installation of NixOS. The official installer's Steam Deck mode works without issue on the frame and handles SteamOS's immutable root by keeping all of /nix at /home/nix and bind mounting it to /nix on boot. However, SteamOS updates replace the root filesystem, so any edits made to /etc/nix/nix.conf will need to be redone after an update.\n\nNixOS is powerful for managing apps and settings declaratively, but installing a full NixOS on the frame may be too complex. Instead, using Home Manager to manage dotfiles is a good balance. The frame's SteamOS mode requires some specific configuration for Home Manager to work properly. This includes modifying the nix.conf file and creating a flake setup with the necessary inputs for other modules.\n\nThe setup can be done using a flake with inputs for additional modules like steamos-etc and frametop. After building and running activate, Home Manager can be used to update the config. However, there are certain issues to be aware of, such as the nested plasma session and gamescope session that can interfere with Home Manager.\n\nTo resolve these issues, one should link .desktop files from their profile into ~/.local/share/applications and adjust the PATH for plasma desktop. Additionally, installing GPU drivers is necessary for nix built programs, which can be done using steamos-etc, a Home Manager module that ensures important /etc files survive SteamOS updates. This module helps manage files that need to survive updates and provides a solution for GPU drivers.",
  "summary": null,
  "key_points": [],
  "editors_take": null,
  "illustration": null,
  "coverage": {
    "outlets": 1,
    "also_reported_by": []
  },
  "ai_generated": true,
  "disclaimer": "Summaries, key points and the editor’s take are written by software from other outlets’ reporting and may contain errors — always check the linked original."
}