Files
m3ta-home/README.md
m3ta-chiron fbc31450de 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
2026-05-02 09:08:40 +02:00

917 B

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

inputs.m3ta-home = {
  url = "git+ssh://gitea@code.m3ta.dev/m3tam3re/m3ta-home.git";
  inputs.nixpkgs.follows = "nixpkgs";
};
# 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" ];
    })
  ];
};