Update README
This commit is contained in:
36
README.md
36
README.md
@@ -24,3 +24,39 @@ In NixOS, configuration files are managed "declaratively" rather than manually.
|
|||||||
## ❓ Why "sudo" doesn't work
|
## ❓ Why "sudo" doesn't work
|
||||||
The `/nix/store` is mounted as read-only at the system level. This ensures your system always matches your config and allows for instant **rollbacks** if something breaks.
|
The `/nix/store` is mounted as read-only at the system level. This ensures your system always matches your config and allows for instant **rollbacks** if something breaks.
|
||||||
|
|
||||||
|
### Example: Adding a local file and remote extensions
|
||||||
|
|
||||||
|
```nix
|
||||||
|
{ config, pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
home.file = {
|
||||||
|
# 1. Manual/Local File Management
|
||||||
|
".pi/agents/settings.json".text = ''
|
||||||
|
{
|
||||||
|
"defaultProvider": "openrouter",
|
||||||
|
"extensionsPath": "~/.pi/extensions"
|
||||||
|
}
|
||||||
|
'';
|
||||||
|
|
||||||
|
# 2. Adding an entire folder (e.g., extensions) from Gitea
|
||||||
|
".pi/extensions/my-tool".source = pkgs.fetchgit {
|
||||||
|
url = "https://your-gitea-instance.com";
|
||||||
|
rev = "main"; # or a specific commit hash
|
||||||
|
sha256 = "0000000000000000000000000000000000000000000000000000"; # Run 'nix-prefetch-git' to get this
|
||||||
|
};
|
||||||
|
|
||||||
|
# 3. Recursive directory from your local config folder
|
||||||
|
# This maps everything inside your local 'agents' folder to ~/.pi/agents/
|
||||||
|
".pi/agents" = {
|
||||||
|
source = ./agents;
|
||||||
|
recursive = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Tips for Extensions
|
||||||
|
* **Git Tracking**: If you use `git add .` in your config directory, Nix will track your local changes.
|
||||||
|
* **Fetchers**: Use [pkgs.fetchgit](https://nixos.org) for Gitea repos to ensure they are version-controlled and reproducible.
|
||||||
|
* **Permissions**: If an extension needs to be executable, add `executable = true;` to the `home.file` block.
|
||||||
|
|||||||
Reference in New Issue
Block a user