{"id":13761312,"url":"https://github.com/kclejeune/system","last_synced_at":"2025-05-15T21:06:15.484Z","repository":{"id":36959113,"uuid":"276564920","full_name":"kclejeune/system","owner":"kclejeune","description":"Declarative system configurations using nixOS, nix-darwin, and home-manager","archived":false,"fork":false,"pushed_at":"2025-05-11T08:06:03.000Z","size":1619,"stargazers_count":477,"open_issues_count":2,"forks_count":46,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-05-11T09:19:58.781Z","etag":null,"topics":["darwin","dotfiles","flake","home-manager","nix","nixos","vim"],"latest_commit_sha":null,"homepage":"","language":"Nix","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kclejeune.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","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}},"created_at":"2020-07-02T06:19:11.000Z","updated_at":"2025-05-07T08:48:22.000Z","dependencies_parsed_at":"2023-10-30T09:23:50.225Z","dependency_job_id":"567b5f6e-1ba0-4649-ba1f-c0e59f6e4f0a","html_url":"https://github.com/kclejeune/system","commit_stats":{"total_commits":1045,"total_committers":7,"mean_commits":"149.28571428571428","dds":"0.18564593301435406","last_synced_commit":"4761dfa55c94b249f073dada820138338db02cc5"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kclejeune%2Fsystem","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kclejeune%2Fsystem/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kclejeune%2Fsystem/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kclejeune%2Fsystem/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kclejeune","download_url":"https://codeload.github.com/kclejeune/system/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254422762,"owners_count":22068678,"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","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":["darwin","dotfiles","flake","home-manager","nix","nixos","vim"],"created_at":"2024-08-03T13:01:48.689Z","updated_at":"2025-05-15T21:06:15.465Z","avatar_url":"https://github.com/kclejeune.png","language":"Nix","funding_links":[],"categories":["Nix","Nix Configurations"],"sub_categories":[],"readme":"# Nix System Configuration\n\n[![Build Status](https://api.cirrus-ci.com/github/kclejeune/system.svg?branch=master)](https://cirrus-ci.com/github/kclejeune/system)\n\nThis repository manages system configurations for all of my\nmacOS, nixOS, and linux machines.\n\n## Structure\n\nThis repository is a [flake](https://nixos.wiki/wiki/Flakes). All system configurations are defined\nin [flake.nix](./flake.nix). Platorm specific configurations are found defined in the flake outputs\n`darwinConfigurations`, `nixosConfigurations` for macOS and NixOS respectively.\n\n### Overlapping Nix-Darwin and NixOS\n\nNix-Darwin and NixOS configurations share as much overlap as possible in the common module, [./modules/common.nix](./modules/common.nix).\nPlatform specific modules add onto the common module in [./modules/darwin/default.nix](./modules/darwin/default.nix) and [./modules/nixos/default.nix](./modules/nixos/default.nix) for macOS and NixOS respectively.\n\n### Decoupled Home Manager Configuration\n\nMy home-manager configuration is entirely decoupled from NixOS and nix-darwin configurations.\nThis means that all of its modules are found in [./modules/home-manager](./modules/home-manager).\nThese modules are imported into all other configurations in the common module similarly to this:\n\n```nix\n{ config, pkgs, ... }: {\n  home-manager.users.kclejeune = import ./home-manager/home.nix;\n}\n```\n\nThis means that [home.nix](./modules/home-manager/home.nix) is fully compatible as a standalone configuration, managed with the `home-manager` CLI.\nThis allows close replication of any user config for any linux system running nix. These configurations are defined in the `homeConfigurations` output.\n\n### User Customization\n\nUser \"profiles\" are specified in [./profiles](./profiles); these modules configure\ncontextual, identity-specific settings such as SSL certificates or work vs. personal email addresses.\nWhen possible, home-manager functionality is extracted into [./profiles/home-manager](./profiles/home-manager), as mentioned previously\n\n## Installing a Configuration\n\n### Non-NixOS Prerequisite: Install Nix Package Manager\n\nRun the installer script to perform a multi-user installation on darwin or linux:\n\n```bash\ncurl --proto '=https' --tlsv1.2 -sSf -L https://install.determinate.systems/nix | sh -s -- install\n```\n\nNote that this step is naturally skipped on NixOS since `nix` is the package manager by default.\n\n## System Bootstrapping\n\n### NixOS\n\nFollow the installation instructions, then run\n\n```bash\nsudo nixos-install --flake github:kclejeune/system#phil\n```\n\n### Darwin/Linux\n\nClone this repository into `~/.nixpkgs` with\n\n```bash\ngit clone https://github.com/kclejeune/system ~/.nixpkgs\n```\n\nYou can bootstrap a new system with the `bootstrap` command:\n\n```bash\nnix run .#sysdo bootstrap\n```\n\nThis will attempt to detect the host system and install nix-darwin or home-manager, but this behavior can be overridden using the `--darwin` or `--home-manager` flags.\n\n## `sysdo` CLI\n\nThe `sysdo` utility is a python script that wraps `nix`, `darwin-rebuild`, `nixos-rebuild`,\nand `home-manager` commands to provide a consistent interface across multiple platforms. It has some dependencies which are defined in the `devShell`\nflake output. Source for this tool is found in [bin/sysdo.py](./bin/sysdo.py).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkclejeune%2Fsystem","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkclejeune%2Fsystem","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkclejeune%2Fsystem/lists"}