{"id":16345399,"url":"https://github.com/unclechu/nixos-config","last_synced_at":"2025-11-07T14:30:30.226Z","repository":{"id":37566366,"uuid":"265128130","full_name":"unclechu/nixos-config","owner":"unclechu","description":"My NixOS configuration","archived":false,"fork":false,"pushed_at":"2023-12-13T03:37:37.000Z","size":1267,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2023-12-13T04:36:17.554Z","etag":null,"topics":["niv","nix","nixos","nixos-configuration"],"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/unclechu.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}},"created_at":"2020-05-19T03:05:15.000Z","updated_at":"2023-12-20T16:36:05.699Z","dependencies_parsed_at":"2023-12-20T16:52:15.203Z","dependency_job_id":null,"html_url":"https://github.com/unclechu/nixos-config","commit_stats":null,"previous_names":[],"tags_count":0,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/unclechu%2Fnixos-config","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/unclechu%2Fnixos-config/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/unclechu%2Fnixos-config/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/unclechu%2Fnixos-config/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/unclechu","download_url":"https://codeload.github.com/unclechu/nixos-config/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239533066,"owners_count":19654617,"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":["niv","nix","nixos","nixos-configuration"],"created_at":"2024-10-11T00:31:32.449Z","updated_at":"2025-11-07T14:30:30.196Z","avatar_url":"https://github.com/unclechu.png","language":"Nix","funding_links":[],"categories":[],"sub_categories":[],"readme":"# My NixOS Configuration\n\n## Usage\n\nThis config is designed to be used with own precise `nixos` channel pin.\nNot that it wouldn’t work with default `nixos-24.11` channel\nbut I like to manually update it and to store the precise pin in the repo\nin order to be sure my machines are 100% in sync.\nIn short, to have better reproducibility.\n\nPlease see `--help` info from [this script](channels/manage.raku):\n\n``` sh\nchannels/manage.raku --help\n```\n\nIn order to fully setup channels you just have to run:\n\n``` sh\nchannels/manage.raku fetch\nchannels/manage.raku override\n```\n\n*P.S. Mind that the second command (`override`) requires “sudo” access.*\n\n1. Load into [NixOS Live CD](https://nixos.org/download.html)\n\n1. Prepare file system according to a hardware configuration of a machine\n   (see `hardware` directory, write new one for new hardware)\n   and mount everything into `/mnt` as the root of the system you’re about to build.\n\n   _N.B. Keep in mind that for encrypted `/boot` you need to use LUKS1 instead of LUKS2\n   because GRUB doesn’t support LUKS2._\n\n1. Clone this repo into `/mnt/etc/nixos` and `cd` to that dir:\n\n   ``` sh\n   sudo mkdir /mnt/etc\n   sudo git clone https://github.com/unclechu/nixos-config.git /mnt/etc/nixos\n   cd /mnt/etc/nixos\n   ```\n\n1. Fetch and override channels (for your booted NixOS Live CD):\n\n   ``` sh\n   channels/manage.raku fetch\n   channels/manage.raku override\n   ```\n\n1. Link related hardware config as `machine-specific.nix`:\n\n   ``` sh\n   sudo ln -s hardware/wenzel-nixos-pc.nix machine-specific.nix\n   ```\n\n   Or create a new one if it’s a new machine (you can use `nixos-generate-config` to create one\n   automatically, see https://nixos.org/manual/nixos/stable/index.html#sec-installation-installing\n   for details).\n\n1. Install:\n\n   ``` sh\n   sudo nixos-install --no-root-passwd --root /mnt\n   ```\n\n1. Change the password in order to be able to login:\n\n   ``` sh\n   sudo nixos-enter --root /mnt -c 'passwd wenzel'\n   ```\n\n1. Reboot into the built system:\n\n   ``` sh\n   reboot\n   ```\n\n1. After booting to the installed NixOS override channels for it:\n\n   ``` sh\n   (cd /etc/nixos \u0026\u0026 channels/manage.raku override)\n   ```\n\n## Building “audio” system profile\n\nAn alternative configuration optimized for real-time audio processing.\nIt’s built as a separate system profile so that the default configuration is available as usual but\nyou can boot to one for audio processing when you need it.\n\nYou can use [build-audio-profile.sh](build-audio-profile.sh) script to build that configuration as a\nseparate profile. If you provide either `boot` or `switch` subcommand argument it will also build\nthe regular default profile using `boot` subcommand for `nixos-rebuild` so that the default profile\nboots by default and “audio” profile is available as an option.\n\n``` sh\n./build-audio-profile.sh boot\n```\n\nOr (in case you are already booted to the “audio” system profile):\n\n``` sh\n./build-audio-profile.sh switch\n```\n\n## How to manage external dependencies\n\nApart from general “nixos” and “nixos-unstable” channels some another external dependencies\n(such as [Home Manager] and my own [nix-utils]) are managed using [niv] tool.\nThose dependencies are described in [nix/sources.json].\n\nYou don’t need [niv] to install the dependencies, only to update them, remove or add a new one\n(but you also can as well manually edit that [nix/sources.json] file).\n\n*N.B. “nixos” channel can’t be managed by [niv] in a NixOS configuration because it’s imported even\nbefore `configuration.nix` is called. `configuration.nix` is called with `pkgs` argument which is\nimported already. Also all the root system dependencies are provided by that channel.*\n\n## Author\n\n[Viacheslav Lotsmanov](mailto:lotsmanov89@gmail.com)\n\n## License\n\n[MIT] — For the code of this repository.\nSome third-party dependencies may have different licenses.\n\n[MIT]: LICENSE\n[Home Manager]: https://github.com/nix-community/home-manager\n[nix-utils]: https://github.com/unclechu/nix-utils\n[niv]: https://github.com/nmattia/niv#readme\n[nix/sources.json]: nix/sources.json\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Funclechu%2Fnixos-config","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Funclechu%2Fnixos-config","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Funclechu%2Fnixos-config/lists"}