Compare commits
8 commits
209856aa38
...
a0789edb6e
| Author | SHA1 | Date | |
|---|---|---|---|
| a0789edb6e | |||
| 34299f5614 | |||
| 9f1bf71586 | |||
| 39789ad391 | |||
|
|
d835588135 | ||
|
|
cbc0180d60 | ||
|
|
f133a894d8 | ||
| c01f195d59 |
6 changed files with 136 additions and 21 deletions
105
CLAUDE.md
Normal file
105
CLAUDE.md
Normal file
|
|
@ -0,0 +1,105 @@
|
||||||
|
# CLAUDE.md
|
||||||
|
|
||||||
|
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
|
||||||
|
|
||||||
|
## Architecture
|
||||||
|
|
||||||
|
This is a unified NixOS and Home Manager configuration using the **trivionomicon doctrine system** as a git subtree.
|
||||||
|
|
||||||
|
### Directory Structure
|
||||||
|
|
||||||
|
- `home/` - Home Manager user configuration
|
||||||
|
- `modules/` - User-level feature modules (terminal, neovim, firefox, ai, etc.)
|
||||||
|
- `platforms/` - User-specific configs per host (`fabian@t14`, `fabian@posixlycorrect`, `fabian@vps`)
|
||||||
|
- `sys/` - NixOS system configuration
|
||||||
|
- `modules/` - System-level feature modules (audio, graphics, networking, etc.)
|
||||||
|
- `platforms/` - Machine-specific configs (`t14`, `posixlycorrect`, `vps`)
|
||||||
|
- `pkgs/` - Custom package overlays and nixpkgs configuration
|
||||||
|
- `trivionomicon/` - Shared doctrine framework (git subtree)
|
||||||
|
- `doctrine/` - Core library (`mkModule`, `mkSystemFlake`)
|
||||||
|
- `modules/` - Shared modules usable by any host
|
||||||
|
|
||||||
|
### Namespace Conventions
|
||||||
|
|
||||||
|
- `config.local.*` - Home Manager modules (user level)
|
||||||
|
- `config.local.sys.*` - NixOS modules (system level)
|
||||||
|
- `config.trivium.*` - Trivionomicon shared modules
|
||||||
|
|
||||||
|
### Module Patterns
|
||||||
|
|
||||||
|
**Simple module** (single layer):
|
||||||
|
```nix
|
||||||
|
{config, lib, pkgs, ...}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.local.programs.terminal;
|
||||||
|
in {
|
||||||
|
options.local.programs.terminal = { enable = mkEnableOption "..."; };
|
||||||
|
config = mkIf cfg.enable { ... };
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Platform Configuration
|
||||||
|
|
||||||
|
Each host has paired directories:
|
||||||
|
- `sys/platforms/{hostname}/` - Machine-specific NixOS config
|
||||||
|
- `home/platforms/{user}@{hostname}/` - User-specific Home Manager config
|
||||||
|
|
||||||
|
The `flake.nix` uses `trivionomicon.lib.mkSystemFlake` to auto-generate configurations from these platform directories.
|
||||||
|
|
||||||
|
## Trivionomicon System
|
||||||
|
|
||||||
|
The trivionomicon is a shared NixOS/Home Manager module framework maintained collaboratively. It lives as a git subtree at `trivionomicon/` and provides unified modules that work across both NixOS and Home Manager contexts.
|
||||||
|
|
||||||
|
### Core Functions
|
||||||
|
|
||||||
|
- **`mkDoctrine`** - Creates namespace context with the "trivium" prefix and hm/sys awareness
|
||||||
|
- **`mkModule`** - Composes hm.nix + sys.nix + options.nix into a unified module
|
||||||
|
- **`mkSystemFlake`** - Auto-generates flake outputs from platform directories
|
||||||
|
|
||||||
|
### Module Structure
|
||||||
|
|
||||||
|
```
|
||||||
|
moduleName/
|
||||||
|
├── default.nix # Entry: calls doctrine.lib.mkModule
|
||||||
|
├── options.nix # Options split by hm/sys keys
|
||||||
|
├── hm.nix # Home Manager implementation (optional)
|
||||||
|
└── sys.nix # NixOS implementation (optional)
|
||||||
|
```
|
||||||
|
|
||||||
|
### Available Modules
|
||||||
|
|
||||||
|
Modules are located at `trivionomicon/modules`.
|
||||||
|
|
||||||
|
### Git Subtree Workflow
|
||||||
|
|
||||||
|
#### Commit separation (critical):
|
||||||
|
Never create commits that include both:
|
||||||
|
- Changes inside `trivionomicon/`
|
||||||
|
- Changes outside `trivionomicon/` (home/, sys/, pkgs/, flake.nix, etc.)
|
||||||
|
|
||||||
|
The trivionomicon is a shared project. Each commit touching `trivionomicon/` must contain only trivionomicon changes so it can be cleanly pushed upstream.
|
||||||
|
|
||||||
|
#### Commit message conventions:
|
||||||
|
- If a module was modified: `trivionomicon/modules/<module name>: one line summary of changes`
|
||||||
|
|
||||||
|
Similar layout if something other than a module was modified.
|
||||||
|
|
||||||
|
#### Sync changes with the shared repository:
|
||||||
|
```bash
|
||||||
|
# Pull updates
|
||||||
|
git subtree pull --prefix=trivionomicon forgejo@git.posixlycorrect.com:deepState/trivionomicon.git master
|
||||||
|
|
||||||
|
# Push changes back
|
||||||
|
git subtree push --prefix=trivionomicon forgejo@git.posixlycorrect.com:deepState/trivionomicon.git master
|
||||||
|
```
|
||||||
|
|
||||||
|
## Key Files
|
||||||
|
|
||||||
|
- `pkgs/config/unfree.nix` - Allowlist for unfree packages (add packages here when needed)
|
||||||
|
- `pkgs/default.nix` - Package overlays and overrides
|
||||||
|
- `trivionomicon/doctrine/lib/` - Core doctrine functions for module composition
|
||||||
|
|
||||||
|
## Restrictions
|
||||||
|
|
||||||
|
Never use any `nix`, `home-manager`, `nixos-rebuild` or `nix-collect-garbage` commands.
|
||||||
|
Ask before using any `git` commands.
|
||||||
8
flake.lock
generated
8
flake.lock
generated
|
|
@ -276,11 +276,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1770237702,
|
"lastModified": 1772342291,
|
||||||
"narHash": "sha256-a2gUeJd7B4KxYSI17MaEjVMJUMS4zRR2Ha2vFplssmc=",
|
"narHash": "sha256-hXlWBR5yBOtxgF/7Vr2tVknh4LxFGheiS7yHD8sWbfs=",
|
||||||
"ref": "refs/heads/master",
|
"ref": "refs/heads/master",
|
||||||
"rev": "0de7c28109045758ca5fd032e098a72520eec481",
|
"rev": "1ef6d4cd8517855b9aaf7671dccc6f992eea1f6c",
|
||||||
"revCount": 73,
|
"revCount": 74,
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://git.posixlycorrect.com/fabian/homepage.git"
|
"url": "https://git.posixlycorrect.com/fabian/homepage.git"
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -11,11 +11,6 @@ in {
|
||||||
enable = mkEnableOption "androidSupport settings";
|
enable = mkEnableOption "androidSupport settings";
|
||||||
};
|
};
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
services.udev.packages = with pkgs; [
|
|
||||||
# android-udev-rules
|
|
||||||
# todo: 'android-udev-rules' has been removed due to being superseded by built-in systemd uaccess rules
|
|
||||||
];
|
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
android-tools
|
android-tools
|
||||||
];
|
];
|
||||||
|
|
|
||||||
|
|
@ -19,8 +19,23 @@ in {
|
||||||
systemPackages = [athena.ase-pkcs11];
|
systemPackages = [athena.ase-pkcs11];
|
||||||
};
|
};
|
||||||
|
|
||||||
#FIXME: Extremadamente peligroso si BCCR o MICITT caen, investigar política nacional de root CA
|
security = {
|
||||||
security.pki.certificateFiles = ["${athena.bccr-cacerts}/root-ca.pem"];
|
#FIXME: Extremadamente peligroso si BCCR o MICITT caen, investigar política nacional de root CA
|
||||||
|
pki.certificateFiles = ["${athena.bccr-cacerts}/root-ca.pem"];
|
||||||
|
|
||||||
|
polkit = {
|
||||||
|
enable = lib.mkDefault true;
|
||||||
|
|
||||||
|
extraConfig = ''
|
||||||
|
polkit.addRule(function(action, subject) {
|
||||||
|
if ((action.id == "org.debian.pcsc-lite.access_pcsc" || action.id == "org.debian.pcsc-lite.access_card") &&
|
||||||
|
subject.isInGroup("users")) {
|
||||||
|
return polkit.Result.YES;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
services = {
|
services = {
|
||||||
pcscd.enable = true;
|
pcscd.enable = true;
|
||||||
|
|
|
||||||
|
|
@ -8,18 +8,18 @@ Subject: [PATCH] Remove CheckUpdatePlugin from default list
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
diff --git a/src/main/java/cr/libre/firmador/Settings.java b/src/main/java/cr/libre/firmador/Settings.java
|
diff --git a/src/main/java/cr/libre/firmador/Settings.java b/src/main/java/cr/libre/firmador/Settings.java
|
||||||
index e5ddf01..a028d6e 100644
|
index e392a82..c2ab5e4 100644
|
||||||
--- a/src/main/java/cr/libre/firmador/Settings.java
|
--- a/src/main/java/cr/libre/firmador/Settings.java
|
||||||
+++ b/src/main/java/cr/libre/firmador/Settings.java
|
+++ b/src/main/java/cr/libre/firmador/Settings.java
|
||||||
@@ -81,7 +81,7 @@ public class Settings {
|
@@ -160,7 +160,7 @@ public class Settings {
|
||||||
|
@SuppressWarnings("this-escape")
|
||||||
public Settings() {
|
public Settings() {
|
||||||
activePlugins.add("cr.libre.firmador.plugins.DummyPlugin");
|
activePlugins.add("cr.libre.firmador.plugins.DummyPlugin");
|
||||||
- activePlugins.add("cr.libre.firmador.plugins.CheckUpdatePlugin");
|
- activePlugins.add("cr.libre.firmador.plugins.CheckUpdatePlugin");
|
||||||
+ // activePlugins.add("cr.libre.firmador.plugins.CheckUpdatePlugin");
|
+ // activePlugins.add("cr.libre.firmador.plugins.CheckUpdatePlugin");
|
||||||
|
// activePlugins.add("cr.libre.firmador.plugins.DocumentSignLogs");
|
||||||
availablePlugins.add("cr.libre.firmador.plugins.DummyPlugin");
|
availablePlugins.add("cr.libre.firmador.plugins.DummyPlugin");
|
||||||
availablePlugins.add("cr.libre.firmador.plugins.CheckUpdatePlugin");
|
availablePlugins.add("cr.libre.firmador.plugins.CheckUpdatePlugin");
|
||||||
}
|
|
||||||
--
|
--
|
||||||
2.49.0
|
2.51.2
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,7 @@
|
||||||
enableJavaFX = true;
|
enableJavaFX = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
version = "1.9.8";
|
version = "1.9.8+master";
|
||||||
in
|
in
|
||||||
maven.buildMavenPackage {
|
maven.buildMavenPackage {
|
||||||
pname = "firmador";
|
pname = "firmador";
|
||||||
|
|
@ -19,15 +19,15 @@ in
|
||||||
|
|
||||||
src = fetchgit {
|
src = fetchgit {
|
||||||
url = "https://codeberg.org/firmador/firmador";
|
url = "https://codeberg.org/firmador/firmador";
|
||||||
rev = version;
|
rev = "676b0e3c0dc5adb0628d4d98efcfccfca3daa8a7";
|
||||||
hash = "sha256-xdiVPjihRADPK4nG+WQHWsDzVYLCeN6ouQ6SDtjf1qQ=";
|
hash = "sha256-f/EKll1csvUCRSt4G1SeDB4gVW+ZtUgJjlmM7PlafyQ=";
|
||||||
};
|
};
|
||||||
|
|
||||||
patches = [
|
patches = [
|
||||||
./0001-Remove-CheckUpdatePlugin-from-default-list.patch
|
./0001-Remove-CheckUpdatePlugin-from-default-list.patch
|
||||||
];
|
];
|
||||||
|
|
||||||
mvnHash = "sha256-m3UaOLNyIlVAOI5tzxMlxg4KZ1N5gT2O2WSka+jBat4=";
|
mvnHash = "sha256-0vwJ1f+0UXxrXRaJ1BHqfOXDU/pxrSPdYYEQ71m4jJQ=";
|
||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
makeWrapper
|
makeWrapper
|
||||||
|
|
@ -35,7 +35,7 @@ in
|
||||||
];
|
];
|
||||||
|
|
||||||
postPatch = lib.optionalString (libasep11 != null) ''
|
postPatch = lib.optionalString (libasep11 != null) ''
|
||||||
sed -i 's@/usr/lib/x64-athena/libASEP11.so@${libasep11}@g' src/main/java/cr/libre/firmador/CRSigner.java
|
sed -i 's@/usr/lib/x64-athena/libASEP11.so@${libasep11}@g' src/main/java/cr/libre/firmador/signers/CRSigner.java
|
||||||
'';
|
'';
|
||||||
|
|
||||||
installPhase = ''
|
installPhase = ''
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue