{"id":30304505,"url":"https://github.com/icedos/core","last_synced_at":"2026-05-11T07:07:57.522Z","repository":{"id":308731559,"uuid":"1033877281","full_name":"IceDOS/core","owner":"IceDOS","description":"A C🥶🥶l NixOS configuration, based on my needs. Optimized for Gaming and Development.","archived":false,"fork":false,"pushed_at":"2025-09-02T01:00:20.000Z","size":54,"stargazers_count":1,"open_issues_count":2,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-09-02T03:07:17.198Z","etag":null,"topics":["bash","development","gaming","linux","nix","nixos"],"latest_commit_sha":null,"homepage":"https://matrix.to/#/#icedos:matrix.org","language":"Nix","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/IceDOS.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-08-07T13:38:28.000Z","updated_at":"2025-09-02T01:00:24.000Z","dependencies_parsed_at":"2025-08-07T15:47:29.927Z","dependency_job_id":"f0c324ce-a72a-410b-bccd-041539eed90c","html_url":"https://github.com/IceDOS/core","commit_stats":null,"previous_names":["icedos/core"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/IceDOS/core","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IceDOS%2Fcore","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IceDOS%2Fcore/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IceDOS%2Fcore/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IceDOS%2Fcore/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/IceDOS","download_url":"https://codeload.github.com/IceDOS/core/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IceDOS%2Fcore/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273403950,"owners_count":25099299,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-03T02:00:09.631Z","response_time":76,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bash","development","gaming","linux","nix","nixos"],"created_at":"2025-08-17T07:09:05.189Z","updated_at":"2026-05-11T07:07:57.513Z","avatar_url":"https://github.com/IceDOS.png","language":"Nix","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🧊 IceDOS\n\n**IceDOS** is a highly opinionated **NixOS** framework designed to deliver a high-performance gaming and general-purpose computing experience. It balances sane defaults with a flexible configuration system to meet diverse user needs.\n\n## ✨ Features\n\n- **🎮 Gaming Optimized:** Pre-configured kernels, drivers, and tools for a low-latency gaming experience.\n\n- **🔧 Modular Configuration:** Easily extend the system via `config.toml` or custom Nix modules.\n\n- **⚡ IceDOS CLI:** A suite of tools designed to manage your system without the complexity of raw Nix commands.\n\n- **📂 State Management:** Isolated build environment within the `.state` directory to keep your source tree clean.\n\n- **❄️ Inputs Management:** Easily control the resulting Flake inputs from your `config.toml` or your **IceDOS** modules.\n\n## 🚀 Installation\n\nTo get started with the default [template](https://github.com/IceDOS/template), run the following commands:\n\n```bash\ngit clone https://github.com/icedos/template icedos\ncd icedos\nnix --extra-experimental-features \"flakes nix-command pipe-operators\" run path:. -- --boot\n```\n\n## ⚙️ Configuration\n\n**IceDOS** provides two primary ways to customize your system:\n\n1. **Simple:** Edit `config.toml`. This file exposes high-level options provided by **IceDOS** modules. You can find all available options of each module in their respective example `config.toml`.\n\n2. **Advanced:** Add nix and/or icedos, modules to the `extra-modules` directory for full control.\n\n\u003e **ℹ️ NOTE**\n\u003e The `.state` directory stores the generated `flake.nix` and your `flake.lock`. You generally should not need to edit these manually.\n\n## 🛠️ Usage\n\n\u003e **⚠️ WARNING**\n\u003e Do not use `nixos-rebuild` directly. **IceDOS** uses a custom wrapper to manage its modular architecture and state.\n\n**Use the IceDOS CLI to manage your installation:**\n\n```bash\nicedos rebuild [FLAGS] [--build-args \u003cextra rebuild args...\u003e]\n```\n\nDefault behavior (no action flag) is equivalent to `switch`.\n\n| Command | Description |\n| --- | --- |\n| `icedos` | View all available tools in the **IceDOS** suite. |\n| `icedos rebuild` | Apply configuration changes to the system. |\n| `icedos update` | Update all flake inputs (system update). Alias for `icedos rebuild --update`. |\n\n\u003e **ℹ️ NOTE**\n\u003e `icedos update` is an alias for `icedos rebuild --update`. All flags documented below work with both commands (e.g. `icedos update --boot`, `icedos update --logs`).\n\n### Action flags\n\nThese choose the rebuild action mode:\n\n| Flag | Effect | Typical use |\n| --- | --- | --- |\n| `--boot` | Uses `boot` action. New generation is prepared for next reboot. | Safer rollout when you don't want to activate immediately. |\n| `--build` | Uses `build` action. Builds but does not activate. | CI checks or validation before switching. |\n| `none` | Uses `switch` action. Builds and activates now. | Day-to-day system changes. |\n\n### Update flags\n\nThese control what gets updated before the build:\n\n| Flag | Effect | Typical use |\n| --- | --- | --- |\n| `--update` | Enables all update paths: core, repositories, nix. | Full update workflow. |\n| `--update-core` | Runs `nix flake update` in the config root, then re-runs the command once. | Updates **IceDOS** core libraries/modules. |\n| `--update-hooks` | Runs only the registered `preUpdate`/`postUpdate` hooks and exits. No nix build, no activation. Sets `ICEDOS_HOOKS_ONLY=1` so hooks know HM activation will not follow. | Refresh non-nix runtime resources (e.g. `flatpak update`, millennium themes/plugins) without a system rebuild. |\n| `--update-nixpkgs` | Runs `nix flake update nixpkgs` in the state directory. | Updates nixpkgs channel. |\n| `--update-repos` | Enables refresh behavior for **IceDOS** repositories input generation (`--refresh` + `ICEDOS_UPDATE=1`). | Updates **IceDOS** repositories and their modules. |\n\n### Behavior flags\n\n| Flag | Effect | Typical use |\n| --- | --- | --- |\n| `--export-full-config` | Generates `.cache/full-config.json` and `.cache/config.json` in the state directory, then exits (no build). | Inspecting merged/evaluated configuration. |\n| `--ask` | Adds `-a` to the `nh os` flow (interactive confirmation). | Manual confirmation before applying in the `nh` path. |\n| `--builder \u003chost\u003e` | Uses `sudo nixos-rebuild ... --build-host \u003chost\u003e` instead of `nh`. | Remote/distributed build host workflow. |\n| `--logs` | Enables `ICEDOS_LOGGING=1` and passes `--show-trace` to evaluation/build commands. | Debugging eval/build failures with full traces. |\n| `--build-args ...` | Forwards all remaining arguments to the final rebuild command. Must be last. | Passing extra `nixos-rebuild`/`nh` args (e.g. `-j`, `--keep-going`). |\n\n### Important warnings\n\n- **`--build-args` consumes the rest of the command line** — anything after it is forwarded as raw rebuild args and is not parsed as flags. Always put it last.\n\n- **`--builder` switches the execution path** — with `--builder`, the script uses `sudo nixos-rebuild` directly; without it, it uses `nh`.\n\n- **`--update-core` re-execs the command once** — the script updates the config flake and re-runs itself via `nix run . -- \u003coriginal args\u003e` to avoid stale state after core input updates.\n\n- **`--export-full-config` is a non-build mode** — it exits right after writing the exported config in JSON format.\n\n- **Unknown flags fail** — any unsupported flag prints `Unknown arg: ...` and exits with code `1`.\n\n- **State/build directories are regenerated** — the temporary build directory is recreated each run. Generated flake/state files are written into the state directory and copied into a temp build dir.\n\n### Examples\n\n```bash\n# Standard apply\nicedos rebuild\n\n# Build only (no activation)\nicedos rebuild --build\n\n# Prepare next boot generation and show traces\nicedos rebuild --boot --logs\n\n# Full update + apply\nicedos update\n\n# Refresh non-nix runtime resources only (no nix build)\nicedos rebuild --update-hooks\n\n# Remote builder\nicedos rebuild --builder example@192.168.1.2\n\n# Pass-through rebuild arguments\nicedos rebuild --logs --build-args -j 8\n```\n\n## 🤝 Contributing\n\nWe welcome contributions! To ensure your PR is directed to the right place, please follow these guidelines:\n\n- **Core Functionality:** PRs improving the framework core, CLI, or base modules should be made directly to this repository.\n\n- **Specific Apps/Configs:** PRs regarding specific software suites or specialized configurations should be submitted to their respective repositories within the **IceDOS** organization.\n\n- **🙏 We need a logo, please! 🙏**\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ficedos%2Fcore","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ficedos%2Fcore","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ficedos%2Fcore/lists"}