[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-80036":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":9,"language":10,"languages":9,"totalLinesOfCode":9,"stars":11,"forks":12,"watchers":13,"openIssues":12,"contributorsCount":14,"subscribersCount":14,"size":14,"stars1d":14,"stars7d":15,"stars30d":16,"stars90d":14,"forks30d":14,"starsTrendScore":12,"compositeScore":17,"rankGlobal":9,"rankLanguage":9,"license":9,"archived":18,"fork":18,"defaultBranch":19,"hasWiki":20,"hasPages":20,"topics":21,"createdAt":9,"pushedAt":9,"updatedAt":22,"readmeContent":23,"aiSummary":24,"trendingCount":14,"starSnapshotCount":14,"syncStatus":12,"lastSyncTime":25,"discoverSource":26},80036,"FactoriOS","tomribbens\u002FFactoriOS","tomribbens","A joke Linux distribution whose only purpose is playing Factorio.",null,"Python",73,2,64,0,3,9,40.83,false,"main",true,[],"2026-06-12 04:01:26","# FactoriOS\n\nA joke Linux distribution whose only purpose is playing Factorio.\n\nBoot → GUI login with your factorio.com credentials → pick a Factorio version and a profile → play. There is nothing else.\n\n## Status\n\nEarly scaffolding. Working pieces:\n\n- Launcher library — factorio.com auth (CSRF + session), version download\u002Finstall, profile management.\n- GTK4 greeter — login + version\u002Fprofile chooser, opt-in Remember Me.\n- archiso profile — boots into the installer.\n- Shell installer — partitions disk and installs the system.\n\n## Layout\n\n```\nbuild.sh     top-level orchestrator: builds packages, stages the local repo, builds the ISO\niso\u002F         archiso profile that produces the installer ISO\ninstaller\u002F   shell script that runs in the live env to install onto disk\nlauncher\u002F    Python library: factorio.com auth, downloads, version\u002Fprofile management\ngreeter\u002F     GTK4 Python app: login screen + version\u002Fprofile chooser\npackages\u002F    PKGBUILDs for launcher, greeter, and a factorios-base meta-package\nsystemd\u002F     factorios.service + supporting config\n```\n\n## Build\n\n```\n.\u002Fbuild.sh           # slim ISO (~150 MB). Default. Works in VMs and on\n                     # bare metal with ethernet + Intel\u002FAMD GPUs.\n.\u002Fbuild.sh full      # full ISO (~800 MB) — same plus linux-firmware for\n                     # WiFi and modern AMD\u002FNVidia firmware needs.\n```\n\nBoth write to `iso\u002Fout\u002F`. Requires `archiso`, `pacman`, `base-devel`, `erofs-utils` on the build host. Run as a regular user with sudo access — `makepkg` runs as you, `mkarchiso` runs under sudo from inside the scripts.\n\nCI also builds the ISO(s): see `.github\u002Fworkflows\u002Fbuild-iso.yml`. Every push to `main` produces a slim ISO as a downloadable artifact and publishes the `[factorios]` pacman repo to GitHub Pages. Tag pushes (`v*`) additionally build the full ISO and attach **both** to the GitHub Release.\n\n## Updates\n\nInstalled FactoriOS systems can `pacman -Syu` to upgrade Arch + our packages together. The `[factorios]` repo at \u003Chttps:\u002F\u002Ftomribbens.github.io\u002FFactoriOS\u002Fx86_64\u002F> is wired into `\u002Fetc\u002Fpacman.conf` by the installer; the greeter has an *Updates…* button (footer of the chooser) that calls `pacman -Sy` + lists upgrades + runs `pacman --noconfirm -Syu`, all via a narrow `sudoers.d` rule that allows the kiosk user *only* those two exact invocations.\n\n**One-time setup** (repo owner only): the first CI run after enabling Pages distribution needs `Settings → Pages → Source: GitHub Actions` ticked. Without it the `pages` job fails — fix is the same one click.\n\n## Identity model\n\nThere are no local Linux user accounts. A single system user (`factorios`) runs all sessions. Per-user data lives under `\u002Fvar\u002Flib\u002Ffactorios\u002Fusers\u002F\u003Cfactorio-username>\u002F`, segregated by directory only. Authentication is against factorio.com.\n\n## Filesystem layout on an installed system\n\n```\n\u002Fvar\u002Flib\u002Ffactorios\u002F\n  versions\u002F\n    \u003Cversion>-vanilla\u002F           # base game install\n    \u003Cversion>-space-age\u002F         # Space Age DLC install\n    _demo\u002F                       # demo install (no build dimension)\n  users\u002F\u003Cfactorio-username>\u002F\n    profiles\u002F\n      vanilla\u002F\u003Cprofile-name>\u002F    # full Factorio write-data dir per\n      space-age\u002F\u003Cprofile-name>\u002F  # profile — saves, mods, config, achievements,\n                                 # player-data, scenarios …\n    session.json                 # cached factorio.com session cookies\n    last-launch.json             # remembered (build, version, profile)\n  users\u002F_guest\u002Fprofiles\u002F\u003Cname>\u002F  # guest\u002Fdemo profiles (flat — no build dim)\n  last-user                      # only present when Remember Me was checked\n```\n\nA profile is a complete Factorio write-data dir — switching profiles re-symlinks `~\u002F.factorio` at the chosen one, so each profile gets its own saves, mods, config, achievements, and player-data. Profiles are per-build because mod compatibility differs across Vanilla and Space Age. Space Age ownership is detected at login time via a HEAD probe against the expansion download endpoint; if you only own Vanilla, the greeter hides the Build selector entirely.\n\n## Build\n\nSee per-component READMEs:\n\n- `iso\u002FREADME.md` — building the ISO with `mkarchiso`\n- `launcher\u002FREADME.md` and `greeter\u002FREADME.md` — Python packages\n- `packages\u002F*\u002FPKGBUILD` — Arch packages\n","FactoriOS 是一个专为运行游戏《异星工厂》而设计的玩笑性质Linux发行版。其核心功能包括通过factorio.com账号登录、选择游戏版本和配置文件以及直接进入游戏，除此之外没有其他功能。该项目使用Python编写，具有基于GTK4的图形界面登录器和启动器库，支持认证、下载安装及配置管理。适用于想要在纯净环境中专注于玩《异星工厂》的玩家或开发者探索Linux系统定制化应用。","2026-06-11 03:59:00","CREATED_QUERY"]