feat: initial m3ta-home structure
- flake.nix with nixpkgs, home-manager, nix-colors, m3ta-nixpkgs, agenix, NUR inputs - lib/mkHome.nix: compose HM config from user + identity + context + sets - profiles/base: shell, cli-tools, secrets (always loaded) - profiles/contexts/desktop: WM, apps, theme, ghostty - profiles/contexts/server: minimal headless - profiles/sets/coding: core (git, direnv, jq, rg), editor, lsp, languages, agents - profiles/sets/gaming: steam, gamescope, gpu - profiles/sets/media: obs, ffmpeg, kdenlive, handbrake, yt-dlp - users/m3tam3re/identities: private.nix, work.nix (git, jj, ssh per identity) - users/m3tam3re/preferences: cliphist, difftastic, base packages
This commit is contained in:
38
README.md
Normal file
38
README.md
Normal file
@@ -0,0 +1,38 @@
|
||||
# m3ta-home — Portable User Profiles
|
||||
|
||||
Centralized home-manager configurations for NixOS systems.
|
||||
Separates user identity, preferences, and feature sets for portable deployment.
|
||||
|
||||
## Structure
|
||||
|
||||
```
|
||||
m3ta-home/
|
||||
├── lib/ ← mkHome, mkDevShell
|
||||
├── modules/ ← Home-Manager module exports
|
||||
├── profiles/ ← base, contexts, sets
|
||||
├── users/ ← identity, preferences, secrets
|
||||
└── secrets/ ← Agenix-encrypted user secrets
|
||||
```
|
||||
|
||||
## Usage in nixos-config
|
||||
|
||||
```nix
|
||||
inputs.m3ta-home = {
|
||||
url = "git+ssh://gitea@code.m3ta.dev/m3tam3re/m3ta-home.git";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
```
|
||||
|
||||
```nix
|
||||
# hosts/common/users/m3tam3re.nix
|
||||
home-manager.users.m3tam3re = {
|
||||
imports = [
|
||||
(inputs.m3ta-home.lib.mkHome {
|
||||
user = "m3tam3re";
|
||||
identity = "private";
|
||||
context = "desktop";
|
||||
sets = [ "coding" "gaming" "media" ];
|
||||
})
|
||||
];
|
||||
};
|
||||
```
|
||||
Reference in New Issue
Block a user