The Asa's NixOS ecosystem configurations
  • Nix 72%
  • TypeScript 22.5%
  • Lua 3.3%
  • Shell 1.8%
  • CSS 0.2%
  • Other 0.2%
Find a file
2026-10-23 04:42:18 +00:00
.github refactor(updater): commit source updates with entry counts 2026-10-20 16:27:45 +07:00
.vscode change vscode default nix formatter to alejandra 2026-07-30 03:30:34 +07:00
assets ci(update-checker): update 1 programs, 0 Proton runtimes, 1 extensions 2026-10-22 23:22:47 +00:00
configs fix: wire source data into dev shell and themes 2026-10-20 16:01:59 +07:00
devices security: isolate WordPress service 2026-10-22 02:03:58 +07:00
helpers refactor: consolidate package source data 2026-10-20 15:47:40 +07:00
host feat(photocraft): add home program option 2026-10-13 13:05:04 +07:00
logo chore: add nix snowflake logo 2026-08-18 06:42:23 +07:00
modules feat(zen-browser): add crunchyroll to pinned tab 2026-10-22 14:45:05 +07:00
options refactor: consolidate package source data 2026-10-20 15:47:40 +07:00
overlays fix(vscodium): skip Codex onboarding tour 2026-10-22 10:14:27 +07:00
scripts refactor(updater): commit source updates with entry counts 2026-10-20 16:27:45 +07:00
users chore: remove user hieze 2026-09-24 09:32:27 +07:00
.gitattributes chore: normalize CRLF to LF and add .gitattributes 2026-08-10 01:57:07 +07:00
.gitignore refactor(updater): commit source updates with entry counts 2026-10-20 16:27:45 +07:00
agenix.sh chore: add agenix alias to dev-shell 2026-08-17 03:59:27 +07:00
AGENTS.md refactor(updater): commit source updates with entry counts 2026-10-20 16:27:45 +07:00
build.sh refactor: idk 2026-09-02 05:03:58 +07:00
bun.lock refactor: auto update checker 2026-09-10 18:44:24 +07:00
CLAUDE.md docs: centralize agent instructions in AGENTS.md 2026-10-20 16:16:22 +07:00
darwin-install.sh chore: add darwin-install.sh 2026-09-25 08:58:13 +07:00
flake.lock ci(flake.lock): update flake inputs 04:42:18 23-10-2026 2026-10-23 04:42:18 +00:00
flake.nix refactor: consolidate package source data 2026-10-20 15:47:40 +07:00
install.sh refactor: idk 2026-09-02 05:03:58 +07:00
LICENSE add LICENSE 2026-06-21 19:10:34 +07:00
link-then-build.sh refactor: idk 2026-09-02 05:03:58 +07:00
link-then-install.sh refactor: idk 2026-09-02 05:03:58 +07:00
package.json feat(browser-extensions): unify catalogs and add Chrome tool 2026-10-20 12:18:45 +07:00
README.md update README.md 2026-10-20 16:30:25 +07:00
repl.pkgs.nix refactor: consolidate package source data 2026-10-20 15:47:40 +07:00
secrets.nix chore: remove dae, searx, sing-box and configure httpd for full file access 2026-09-26 11:31:28 +07:00
test.sh chore: test.sh will build instead switch to new generation 2026-08-27 23:23:47 +07:00

NixOS configuration

NixOS and Home Manager configurations, package overlays, and scripts for maintaining package and extension source data.

Contents

Configurations

NixOS

Flake attribute Purpose
nixosConfigurations.ideapad-slim-5 Laptop configuration
nixosConfigurations.msi-sayu Sayu's system configuration
nixosConfigurations.home-server Home server
nixosConfigurations.wsl WSL configuration

Each NixOS configuration loads Home Manager. Host and device modules select and configure the user's Home Manager modules.

Evaluate or build a configuration:

nix eval '.#nixosConfigurations.ideapad-slim-5.config.system.build.toplevel.drvPath' --raw
nix build '.#nixosConfigurations.ideapad-slim-5.config.system.build.toplevel'

On the matching NixOS machine, activate it with:

sudo nixos-rebuild switch --flake .#ideapad-slim-5

Standalone Home Manager

The flake also exports homeConfigurations."asakiyuki@Macbook-Air-M5":

nix eval '.#homeConfigurations."asakiyuki@Macbook-Air-M5".activationPackage.drvPath' --raw

Building this activation package requires a builder for aarch64-darwin.

Repository layout

Path Purpose
flake.nix, configs/ Flake inputs and exported configurations
devices/ Hardware and machine-specific settings
host/ Shared desktop, server, and macOS modules
users/ User and account configuration
options/ Custom NixOS and Home Manager options
modules/ Reusable module implementations
overlays/packages/ Package, extension, font, and Millennium overlays
assets/sources.json Shared package and extension source database
scripts/ Database updaters and add-entry tools
.github/ Scheduled update and mirror workflows

Custom options are declared under options/; their reusable behavior is implemented in modules/. Host and device configurations select and set those options.

Source database

assets/sources.json stores versions, source URLs, hashes, and related metadata in one place:

cursors.<category>.<name>
packages.programs.<package>
packages.wine.<proton>
extensions.firefox.<addon>
extensions.chrome.<extension>
extensions.vscode.<publisher>.<extension>
extensions.millennium.plugins.<plugin>
extensions.millennium.themes.<theme>

Cursor options keep the category/name form, for example wuthering-waves/denia.

The flake reads the database once as source-data and passes it to configuration helpers and package overlays. Nix modules use lib.source-data; package overlays receive it as sources.

Development and updates

Enter the development shell and install dependencies:

nix develop
bun install --frozen-lockfile

Run the updater you need:

bun run check-packages-update
bun run check-proton-update
bun run check-vscode-extensions-update
bun run check-browser-extensions-update
bun run check-millennium-update
bun run check-millennium-settings

Updaters contact their source services and write changes directly to assets/sources.json. They do not create report files. The .github/pkgs-update.sh helper runs the complete suite and creates one commit when the database changes. The commit subject counts changed programs, Proton runtimes, and extensions; its body lists their names. The helper stops if the database already has local changes.

The add-firefox-addons, add-chrome-extensions, and add-vscode-extensions tools add entries to the database. Their accepted input formats are documented in scripts/tools/.

GitHub Actions periodically updates flake inputs and package or extension data. The Forgejo workflow mirrors pushes to the configured remote.

AI agent instructions

AGENTS.md is the canonical guide for coding agents. CLAUDE.md points Claude Code to the same instructions. Other agents should read AGENTS.md when supported, or be configured to use it explicitly.