24 Commits
Author SHA1 Message Date
m3tam3re 601eae6362 fix(gaming): emulators.nix declared gamescope's option by mistake
Copy-paste slip from 7064bbe: emulators.nix declared
profiles.gaming.gamescope.enable (already declared in gamescope.nix)
while reading profiles.gaming.emulators, which was never declared.
Declare the emulators option instead.
2026-09-12 14:00:38 +02:00
m3tam3re 2de49b5204 fix(desktop): build hermes-desktop with corrected Electron 43.6.0 headers hash
Upstream hermes-agent v2026.8.31 pins sha256-f8bSb… for the
artifacts.electronjs.org v43.6.0 headers tarball. The CDN swapped
that artifact, breaking every desktop build with a fixed-output
derivation hash mismatch (specified f8bSb… vs got xDgc5…).

Local copy of upstream nix/desktop.nix with:
- verified hash for electron 43.6.0 (nix store prefetch-file)
- per-version hash map with a loud throw for unknown versions
- icon/desktop-entry paths resolved against the flake input checkout

Remove once upstream ships the corrected hash and the hermes-agent
input is bumped past that release.
2026-09-12 13:58:56 +02:00
m3tam3re 7064bbebe3 feat: emulators 2026-09-12 13:50:34 +02:00
m3tam3re 9c94b70c93 feat: emulators 2026-09-12 13:49:46 +02:00
m3tam3re afc5bc3aa6 chore: some updates 2026-09-11 17:39:29 +02:00
m3tam3re ff5fef0596 chore: hyprland keybindings 2026-09-05 09:36:29 +02:00
m3tam3re 207b794431 chore: hyprland keybindings 2026-09-05 09:28:05 +02:00
m3ta-chiron fb3e39f0ce fix: libreoffice-fresh -> libreoffice-stable (deprecated alias) 2026-08-31 11:44:58 +02:00
m3ta-chiron 9b1be8eca4 refactor(agents): consume llm-agents packages via pkgs.llm-agents namespace
numtide/llm-agents.nix's shared-nixpkgs overlay exposes everything under
pkgs.llm-agents.* — no flattening to top-level attrs anymore. Namespaced
refs fail loudly when the overlay is missing instead of silently falling
back to outdated nixpkgs attributes (opencode 0.3.x) or disappearing.

Requires the consumer's nixos-config to apply
inputs.llm-agents.overlays.shared-nixpkgs (see nixos-config
hosts/common/default.nix).
2026-08-31 11:44:22 +02:00
m3tam3re 890dc4cb2c mcp changes 2026-08-25 20:09:58 +02:00
m3ta-chiron 31d47b00e5 feat: add ansible to base cli-tools
Adds ansible + ansible-lint as an always-on base module so it is
available in both identities (private/work) and all contexts.
Disable per host via base.cliTools.ansible.enable = false.
2026-08-21 09:06:49 +02:00
m3tam3re 6a311045a4 chore: ssh changes 2026-08-16 13:44:59 +02:00
m3tam3re 808b6628c8 chore: flake update 2026-08-15 14:06:47 +02:00
m3tam3re b58b7e84d1 chore: opencode config updates 2026-08-15 13:53:22 +02:00
m3ta-chiron fbba78e358 chore: fix local repo paths 2026-08-12 10:25:49 +02:00
m3ta-chiron 38fa16eda6 chore: TC01 addr change 2026-08-12 10:24:00 +02:00
m3tam3re 33d0c85ef4 chore: ssh changes 2026-08-11 17:06:01 +02:00
m3tam3re f2cc6b59ef chore: update hyrpland/dms config 2026-08-09 09:50:45 +02:00
m3tam3re f0e98a2ac7 feat: buzz 2026-08-08 17:46:57 +02:00
m3ta-chiron 6a67324c6d fix: litelllm models 2026-08-03 11:49:56 +02:00
m3ta-chiron c90f5a5857 fix: litelllm models 2026-08-03 11:49:23 +02:00
m3ta-chiron 69082a07f2 fix: litelllm models 2026-08-03 11:34:59 +02:00
m3ta-chiron d2b39a3f2d AZ-TC-01 2026-08-03 09:12:37 +02:00
m3ta-chiron de16245929 AZ-TC-01 2026-08-03 08:44:48 +02:00
15 changed files with 556 additions and 188 deletions
+1
View File
@@ -161,6 +161,7 @@ Every module in m3ta-home has an `enable` option. Base modules default to `true`
### Available Flags ### Available Flags
``` ```
base.cliTools.ansible.enable # Ansible (config rollout to servers)
base.shell.fish.enable # Fish shell base.shell.fish.enable # Fish shell
base.shell.nushell.enable # Nushell base.shell.nushell.enable # Nushell
base.shell.starship.enable # Starship prompt base.shell.starship.enable # Starship prompt
Generated
+169 -146
View File
@@ -34,11 +34,11 @@
"rev": "75a2ed2533b4d6d8e4a34acd37e83d98d81a5fb0", "rev": "75a2ed2533b4d6d8e4a34acd37e83d98d81a5fb0",
"revCount": 30, "revCount": 30,
"type": "git", "type": "git",
"url": "ssh://gitea@code.m3ta.dev/m3tam3re/agent-lib" "url": "ssh://gitea@code.m3ta.dev/m3tam3re/agent-lib-legacy"
}, },
"original": { "original": {
"type": "git", "type": "git",
"url": "ssh://gitea@code.m3ta.dev/m3tam3re/agent-lib" "url": "ssh://gitea@code.m3ta.dev/m3tam3re/agent-lib-legacy"
} }
}, },
"agents": { "agents": {
@@ -99,20 +99,59 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1785348116, "lastModified": 1785979955,
"narHash": "sha256-AVycTcomtfvQJ/AHvMg5xu7lVoOzDXxjN+pV7mqUIQ4=", "narHash": "sha256-OP96Ak4OBydR98keoNYKdGY8j+wrIys0LafSZgwS20g=",
"owner": "basecamp", "owner": "basecamp",
"repo": "basecamp-cli", "repo": "basecamp-cli",
"rev": "e1059fb123a03295ce6176272e4bbaf43d7971c6", "rev": "61a5591de1da9bc99c56b8072a4d6bad2c9b9e47",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "basecamp", "owner": "basecamp",
"ref": "v0.8.0-rc.1", "ref": "v0.9.0",
"repo": "basecamp-cli", "repo": "basecamp-cli",
"type": "github" "type": "github"
} }
}, },
"buzz": {
"inputs": {
"nixpkgs": [
"m3ta-nixpkgs",
"nixpkgs"
],
"rust-overlay": "rust-overlay",
"treefmt-nix": "treefmt-nix"
},
"locked": {
"lastModified": 1788856318,
"narHash": "sha256-bOLED82KPrzIXTWELw30y3PVI6MBmlY4Y2F2lwrdOnM=",
"owner": "mulatta",
"repo": "buzz.nix",
"rev": "fdd0152c12c6be339fe01d91887122bb10823aaf",
"type": "github"
},
"original": {
"owner": "mulatta",
"repo": "buzz.nix",
"type": "github"
}
},
"dank-qml-common": {
"flake": false,
"locked": {
"lastModified": 1788376015,
"narHash": "sha256-/tT8rTznLADndTwLBzdgzzgfJH1ZhYQibYo5v/F8U+U=",
"owner": "AvengeMedia",
"repo": "dank-qml-common",
"rev": "26396ce432d6c71c3f5367438f96f4a8d667e160",
"type": "github"
},
"original": {
"owner": "AvengeMedia",
"repo": "dank-qml-common",
"type": "github"
}
},
"darwin": { "darwin": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
@@ -137,17 +176,18 @@
}, },
"dms": { "dms": {
"inputs": { "inputs": {
"dank-qml-common": "dank-qml-common",
"flake-compat": "flake-compat", "flake-compat": "flake-compat",
"nixpkgs": [ "nixpkgs": [
"nixpkgs" "nixpkgs"
] ]
}, },
"locked": { "locked": {
"lastModified": 1785111455, "lastModified": 1788959433,
"narHash": "sha256-aTNuC9NDBnYAeEtFsleeUwmGX3AZlKOutbl+LQRPkmQ=", "narHash": "sha256-MAbxGEomcpGomFfw+WYurNkSKBIh7PKEc1U5OV0X6oU=",
"owner": "AvengeMedia", "owner": "AvengeMedia",
"repo": "DankMaterialShell", "repo": "DankMaterialShell",
"rev": "069ddab041c738236a8910e4c39b65d9628d3018", "rev": "fe293b7379a51f62a4db7043fc09df71f78e72ef",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -164,11 +204,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1785375021, "lastModified": 1789138529,
"narHash": "sha256-SV24PP3ctDSAuQjg0LdYAvzN7GEustIrtZfciiSrgRI=", "narHash": "sha256-46RwWSOzklur59Plvo8N0YBZYun4M4cwK04+8owhJeo=",
"owner": "AvengeMedia", "owner": "AvengeMedia",
"repo": "dms-plugin-registry", "repo": "dms-plugin-registry",
"rev": "672e213a1e20b980708d81bd82df9bf85c15a590", "rev": "5e5d72f980f5f16503b8fd0b8b66c4a3441eecdc",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -201,11 +241,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1772408722, "lastModified": 1782949081,
"narHash": "sha256-rHuJtdcOjK7rAHpHphUb1iCvgkU3GpfvicLMwwnfMT0=", "narHash": "sha256-vp6Y/Grm98ESt6ceOkWiHWyZRDV3J1RID4w+6NWK9yA=",
"owner": "hercules-ci", "owner": "hercules-ci",
"repo": "flake-parts", "repo": "flake-parts",
"rev": "f20dc5d9b8027381c474144ecabc9034d6a839a3", "rev": "17c9d6cdfc60c64f4ee8d306f9bc0b4ccb51481e",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -238,25 +278,26 @@
"hermes-agent": { "hermes-agent": {
"inputs": { "inputs": {
"flake-parts": "flake-parts", "flake-parts": "flake-parts",
"home-manager": "home-manager_2",
"nixpkgs": [ "nixpkgs": [
"nixpkgs" "nixpkgs"
], ],
"npm-lockfile-fix": "npm-lockfile-fix", "npm-lockfile-fix": "npm-lockfile-fix",
"pyproject-build-systems": "pyproject-build-systems", "pyproject-build-systems": "pyproject-build-systems",
"pyproject-nix": "pyproject-nix_2", "pyproject-nix": "pyproject-nix",
"uv2nix": "uv2nix_2" "uv2nix": "uv2nix"
}, },
"locked": { "locked": {
"lastModified": 1782936460, "lastModified": 1788204567,
"narHash": "sha256-Wt72AQtA6Eizi7Ubj23JBhwZ7GKYcjY4mcV6upqHOaU=", "narHash": "sha256-Ii9xP2fKUpvCcwWZuxJ0g3CZ+IL2UZH14pUNvBfdclc=",
"owner": "NousResearch", "owner": "NousResearch",
"repo": "hermes-agent", "repo": "hermes-agent",
"rev": "7c1a029553d87c43ecff8a3821336bc95872213b", "rev": "29112bef099274229cadff79cdff7bf7b99c4b77",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "NousResearch", "owner": "NousResearch",
"ref": "v2026.7.1", "ref": "v2026.8.31",
"repo": "hermes-agent", "repo": "hermes-agent",
"type": "github" "type": "github"
} }
@@ -285,15 +326,36 @@
"home-manager_2": { "home-manager_2": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
"hermes-agent",
"nixpkgs" "nixpkgs"
] ]
}, },
"locked": { "locked": {
"lastModified": 1785306346, "lastModified": 1786487128,
"narHash": "sha256-DScBkW0fOgpGPK2trNoX3ryLTlaC14+gglFo/BhGJ4g=", "narHash": "sha256-ad60hrRVhH/bo3Jl1YLzO+QcS3mUNZr9LNJdzhMO2P4=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "e705714e918c3b11affcdd15db2cbe3a070420a0", "rev": "f404edbfa4117810c96b97048299242fc50e5362",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "home-manager",
"type": "github"
}
},
"home-manager_3": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1789136855,
"narHash": "sha256-82D7ADWE8erhfALj3dqxAOeQaoa+Bwlsdcp9v2m/ExM=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "d0fd95e15e0c3baf565a9fd4bc352321e2564ea3",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -306,19 +368,19 @@
"inputs": { "inputs": {
"agents": "agents_2", "agents": "agents_2",
"basecamp": "basecamp", "basecamp": "basecamp",
"buzz": "buzz",
"nixpkgs": [ "nixpkgs": [
"nixpkgs" "nixpkgs"
], ],
"nixpkgs-master": "nixpkgs-master", "nixpkgs-master": "nixpkgs-master",
"opencode": "opencode", "opencode": "opencode"
"openspec": "openspec"
}, },
"locked": { "locked": {
"lastModified": 1785670526, "lastModified": 1789141095,
"narHash": "sha256-tC1CW+Kxh9ZZxJC0y472i0KoieMqNwNi+AiCmS4n7To=", "narHash": "sha256-f5NLbwOwSQL+tDDelxps1VFh84obOMyw+ox9gcvE7TU=",
"ref": "refs/heads/master", "ref": "refs/heads/master",
"rev": "69fce234a8607cd3e71233831564b8ceeba70626", "rev": "1e0db37c579935b9916c1fcb3d3ed733b4cb3114",
"revCount": 374, "revCount": 389,
"type": "git", "type": "git",
"url": "ssh://gitea@code.m3ta.dev/m3tam3re/nixpkgs" "url": "ssh://gitea@code.m3ta.dev/m3tam3re/nixpkgs"
}, },
@@ -379,11 +441,11 @@
}, },
"nixpkgs-master": { "nixpkgs-master": {
"locked": { "locked": {
"lastModified": 1785386845, "lastModified": 1789139724,
"narHash": "sha256-CvXXTgWxbwTn6Diev4nLTP5+8tsFtth/SQAtaR9iVY0=", "narHash": "sha256-QEoQ8xoSO3H2tmwHNBYFL/5Y8Gt10U+bg5ETMsWXiIM=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "3c5a718ce27c9283364d4c664fac4e4a23acdfb4", "rev": "e27e37949736566430ed2f6157bebcdade8860c5",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -427,11 +489,11 @@
}, },
"nixpkgs_4": { "nixpkgs_4": {
"locked": { "locked": {
"lastModified": 1785318670, "lastModified": 1789006805,
"narHash": "sha256-dN6Ou5x/+23FZLEpYP3IffO+NyJFzUlGumt1uu3MMaY=", "narHash": "sha256-xB8mKMOx1IA9vTDNLmJZ6n4wCMq/cuWBBOzGCRnqxrU=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", "rev": "8ce4ef6cb6f871616146b9fe26d2a5ae594e94fe",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -443,11 +505,11 @@
}, },
"nixpkgs_5": { "nixpkgs_5": {
"locked": { "locked": {
"lastModified": 1785318670, "lastModified": 1789006805,
"narHash": "sha256-dN6Ou5x/+23FZLEpYP3IffO+NyJFzUlGumt1uu3MMaY=", "narHash": "sha256-xB8mKMOx1IA9vTDNLmJZ6n4wCMq/cuWBBOzGCRnqxrU=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", "rev": "8ce4ef6cb6f871616146b9fe26d2a5ae594e94fe",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -484,11 +546,11 @@
"nixpkgs": "nixpkgs_5" "nixpkgs": "nixpkgs_5"
}, },
"locked": { "locked": {
"lastModified": 1785395064, "lastModified": 1789141061,
"narHash": "sha256-ZZoXKpTETeIU93xQOxleE27JWT1FcpF9pe1nSPrFbuw=", "narHash": "sha256-T2+uq8rR7zvUFh7/R8DQgsf2AGrUO3EPpr1iv7Jby8Y=",
"owner": "nix-community", "owner": "nix-community",
"repo": "NUR", "repo": "NUR",
"rev": "cce2408845d0298ae0dcc42582c1d8b390de105c", "rev": "4250406d791dcb1db2b1ce7bd223ac3ee120cfe3",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -502,11 +564,11 @@
"nixpkgs": "nixpkgs_3" "nixpkgs": "nixpkgs_3"
}, },
"locked": { "locked": {
"lastModified": 1785386452, "lastModified": 1789132601,
"narHash": "sha256-iYfkMmn1ZKbi0cv8XIAXVgPH4idzsVSK4cWyi/KGMJQ=", "narHash": "sha256-2+j5RuHoqrsnjssZ4VfIfSKzGdrPNFT4nazJ2QxNdu0=",
"owner": "anomalyco", "owner": "anomalyco",
"repo": "opencode", "repo": "opencode",
"rev": "f7204902192624481e526b1852cdedaadb914e24", "rev": "95daf90670b7c039c436c85537da5fbfe2205b41",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -516,42 +578,27 @@
"type": "github" "type": "github"
} }
}, },
"openspec": {
"inputs": {
"nixpkgs": [
"m3ta-nixpkgs",
"nixpkgs"
]
},
"locked": {
"lastModified": 1785371113,
"narHash": "sha256-r3fwnb5gMTV9UXBj7bqkKpTZIWwF4AgghULOIv2Fr4c=",
"owner": "Fission-AI",
"repo": "OpenSpec",
"rev": "2b3d368539132be6311e55db58899abbf5306b81",
"type": "github"
},
"original": {
"owner": "Fission-AI",
"repo": "OpenSpec",
"type": "github"
}
},
"pyproject-build-systems": { "pyproject-build-systems": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
"hermes-agent", "hermes-agent",
"nixpkgs" "nixpkgs"
], ],
"pyproject-nix": "pyproject-nix", "pyproject-nix": [
"uv2nix": "uv2nix" "hermes-agent",
"pyproject-nix"
],
"uv2nix": [
"hermes-agent",
"uv2nix"
]
}, },
"locked": { "locked": {
"lastModified": 1772555609, "lastModified": 1785115949,
"narHash": "sha256-3BA3HnUvJSbHJAlJj6XSy0Jmu7RyP2gyB/0fL7XuEDo=", "narHash": "sha256-8AM37BfyGaL2v/SZyg4PupRxJ01Y4htvM+WrTjWrPpo=",
"owner": "pyproject-nix", "owner": "pyproject-nix",
"repo": "build-system-pkgs", "repo": "build-system-pkgs",
"rev": "c37f66a953535c394244888598947679af231863", "rev": "62c0d86027edb1c4f39a5facc09876348144f7c9",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -564,59 +611,15 @@
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
"hermes-agent", "hermes-agent",
"pyproject-build-systems",
"nixpkgs" "nixpkgs"
] ]
}, },
"locked": { "locked": {
"lastModified": 1769936401, "lastModified": 1784591072,
"narHash": "sha256-kwCOegKLZJM9v/e/7cqwg1p/YjjTAukKPqmxKnAZRgA=", "narHash": "sha256-zP/WaDxrRu8GANZM61+V2LT/7ycEEdoyLWn7M6WzU7M=",
"owner": "nix-community",
"repo": "pyproject.nix",
"rev": "b0d513eeeebed6d45b4f2e874f9afba2021f7812",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "pyproject.nix",
"type": "github"
}
},
"pyproject-nix_2": {
"inputs": {
"nixpkgs": [
"hermes-agent",
"nixpkgs"
]
},
"locked": {
"lastModified": 1772865871,
"narHash": "sha256-/ZTSg97aouL0SlPHaokA4r3iuH9QzHVuWPACD2CUCFY=",
"owner": "pyproject-nix", "owner": "pyproject-nix",
"repo": "pyproject.nix", "repo": "pyproject.nix",
"rev": "e537db02e72d553cea470976b9733581bcf5b3ed", "rev": "e3b599ca2e7fcf93d4edf65d7f19bbf6491724f3",
"type": "github"
},
"original": {
"owner": "pyproject-nix",
"repo": "pyproject.nix",
"type": "github"
}
},
"pyproject-nix_3": {
"inputs": {
"nixpkgs": [
"hermes-agent",
"uv2nix",
"nixpkgs"
]
},
"locked": {
"lastModified": 1771518446,
"narHash": "sha256-nFJSfD89vWTu92KyuJWDoTQJuoDuddkJV3TlOl1cOic=",
"owner": "pyproject-nix",
"repo": "pyproject.nix",
"rev": "eb204c6b3335698dec6c7fc1da0ebc3c6df05937",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -633,13 +636,35 @@
"dms": "dms", "dms": "dms",
"dms-plugin-registry": "dms-plugin-registry", "dms-plugin-registry": "dms-plugin-registry",
"hermes-agent": "hermes-agent", "hermes-agent": "hermes-agent",
"home-manager": "home-manager_2", "home-manager": "home-manager_3",
"m3ta-nixpkgs": "m3ta-nixpkgs", "m3ta-nixpkgs": "m3ta-nixpkgs",
"nix-colors": "nix-colors", "nix-colors": "nix-colors",
"nixpkgs": "nixpkgs_4", "nixpkgs": "nixpkgs_4",
"nur": "nur" "nur": "nur"
} }
}, },
"rust-overlay": {
"inputs": {
"nixpkgs": [
"m3ta-nixpkgs",
"buzz",
"nixpkgs"
]
},
"locked": {
"lastModified": 1788591095,
"narHash": "sha256-Vh+BeLWfbTT9AecazIsQ/Tkg/RzJeX3lEduANf256WA=",
"owner": "oxalica",
"repo": "rust-overlay",
"rev": "c361047d3a538f547f1617bb6b410411929ac9cc",
"type": "github"
},
"original": {
"owner": "oxalica",
"repo": "rust-overlay",
"type": "github"
}
},
"systems": { "systems": {
"locked": { "locked": {
"lastModified": 1681028828, "lastModified": 1681028828,
@@ -655,47 +680,45 @@
"type": "github" "type": "github"
} }
}, },
"treefmt-nix": {
"inputs": {
"nixpkgs": [
"m3ta-nixpkgs",
"buzz",
"nixpkgs"
]
},
"locked": {
"lastModified": 1786901030,
"narHash": "sha256-WSFCsDSE5ffgD2MqzkM2CYjeFiKhRF/dJUN8uedb6YE=",
"owner": "numtide",
"repo": "treefmt-nix",
"rev": "27b3b12a8e6375f28ebe122f07d230ca5459bbfa",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "treefmt-nix",
"type": "github"
}
},
"uv2nix": { "uv2nix": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
"hermes-agent", "hermes-agent",
"pyproject-build-systems",
"nixpkgs" "nixpkgs"
], ],
"pyproject-nix": [ "pyproject-nix": [
"hermes-agent", "hermes-agent",
"pyproject-build-systems",
"pyproject-nix" "pyproject-nix"
] ]
}, },
"locked": { "locked": {
"lastModified": 1770770348, "lastModified": 1785277507,
"narHash": "sha256-A2GzkmzdYvdgmMEu5yxW+xhossP+txrYb7RuzRaqhlg=", "narHash": "sha256-9Tq3UDX2hD/aveW/HvkBlAmEwJTOlY5HQXJM+L5BGmE=",
"owner": "pyproject-nix", "owner": "pyproject-nix",
"repo": "uv2nix", "repo": "uv2nix",
"rev": "5d1b2cb4fe3158043fbafbbe2e46238abbc954b0", "rev": "5a836d395cbf5fc22670eb98dd4aa4fc4d406977",
"type": "github"
},
"original": {
"owner": "pyproject-nix",
"repo": "uv2nix",
"type": "github"
}
},
"uv2nix_2": {
"inputs": {
"nixpkgs": [
"hermes-agent",
"nixpkgs"
],
"pyproject-nix": "pyproject-nix_3"
},
"locked": {
"lastModified": 1773039484,
"narHash": "sha256-+boo33KYkJDw9KItpeEXXv8+65f7hHv/earxpcyzQ0I=",
"owner": "pyproject-nix",
"repo": "uv2nix",
"rev": "b68be7cfeacbed9a3fa38a2b5adc0cfb81d9bb1f",
"type": "github" "type": "github"
}, },
"original": { "original": {
+3 -2
View File
@@ -13,6 +13,7 @@
m3ta-nixpkgs = { m3ta-nixpkgs = {
url = "git+ssh://gitea@code.m3ta.dev/m3tam3re/nixpkgs"; url = "git+ssh://gitea@code.m3ta.dev/m3tam3re/nixpkgs";
# url = "path:/home/m3tam3re/p/NIX/nixpkgs";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
@@ -22,13 +23,13 @@
}; };
agent-lib = { agent-lib = {
# url = "path:/home/m3tam3re/p/NIX/agent-lib"; # url = "path:/home/m3tam3re/p/agent-lib-legacy";
url = "git+ssh://gitea@code.m3ta.dev/m3tam3re/agent-lib-legacy"; url = "git+ssh://gitea@code.m3ta.dev/m3tam3re/agent-lib-legacy";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
hermes-agent = { hermes-agent = {
url = "github:NousResearch/hermes-agent/v2026.7.1"; url = "github:NousResearch/hermes-agent/v2026.8.31";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
+21
View File
@@ -0,0 +1,21 @@
# Ansible — configuration management for rolling out configurations to servers.
# Lives in base so it is available in every identity (private/work) and context.
{
config,
lib,
pkgs,
...
}:
with lib; let
cfg = config.base.cliTools.ansible;
in {
# Enabled by default — base modules are always-on.
options.base.cliTools.ansible.enable = (mkEnableOption "enable Ansible configuration management") // {default = true;};
config = mkIf cfg.enable {
home.packages = with pkgs; [
ansible
ansible-lint
];
};
}
+1
View File
@@ -1,6 +1,7 @@
# CLI tools aggregator — imports all base command-line utilities. # CLI tools aggregator — imports all base command-line utilities.
{...}: { {...}: {
imports = [ imports = [
./ansible.nix
./bat.nix ./bat.nix
./carapace.nix ./carapace.nix
./direnv.nix ./direnv.nix
+3 -1
View File
@@ -11,6 +11,8 @@ in {
options.desktop.apps.office.enable = mkEnableOption "install office and paperwork apps"; options.desktop.apps.office.enable = mkEnableOption "install office and paperwork apps";
config = mkIf cfg.enable { config = mkIf cfg.enable {
home.packages = [pkgs.libreoffice-fresh]; # libreoffice-fresh warns: upstream changed versioning; -stable is the
# supported attr now.
home.packages = [pkgs.libreoffice-stable];
}; };
} }
+15 -2
View File
@@ -4,7 +4,20 @@
m3taHomeInputs, m3taHomeInputs,
pkgs, pkgs,
... ...
}: { }: let
# WORKAROUND (2026-09-12): hermes-agent v2026.8.31 pins a stale hash for
# the Electron 43.6.0 headers artifact (the CDN swapped the file). Build
# the desktop app from a local copy of upstream's nix/desktop.nix with
# the verified hash. Remove when upstream fixes it and the input is bumped.
hermesDesktopFixed = let
hermesAgent = m3taHomeInputs.hermes-agent.packages.${pkgs.stdenv.hostPlatform.system}.default;
in
pkgs.callPackage ./hermes-desktop.nix {
inherit hermesAgent;
hermesNpmLib = hermesAgent.hermesNpmLib;
hermesSrc = m3taHomeInputs.hermes-agent.outPath;
};
in {
imports = [ imports = [
./wm ./wm
./apps ./apps
@@ -72,7 +85,7 @@
(element-desktop.override { (element-desktop.override {
commandLineArgs = "--password-store=gnome-libsecret"; commandLineArgs = "--password-store=gnome-libsecret";
}) })
m3taHomeInputs.hermes-agent.packages.${pkgs.stdenv.hostPlatform.system}.desktop hermesDesktopFixed
launch-webapp launch-webapp
file-roller file-roller
gsettings-desktop-schemas gsettings-desktop-schemas
@@ -0,0 +1,244 @@
# hermes-desktop.nix — local copy of hermes-agent's nix/desktop.nix
#
# WORKAROUND for an upstream build failure (hermes-agent v2026.8.31):
#
# Upstream pins sha256-f8bSbLRmtbP93CJAvEBs+sHWDZ1xP2bcpLhC1EnOmZU=
# for https://artifacts.electronjs.org/headers/dist/v43.6.0/node-v43.6.0-headers.tar.gz
# The Electron CDN swapped that artifact, so the pinned hash no longer
# matches what the server serves today (verified 2026-09-12 via
# `nix store prefetch-file`). Upstream has fixed this class of breakage
# repeatedly ("fix electron headers sha" commits); main is not fixed yet.
#
# Differences from upstream nix/desktop.nix:
# 1. electron headers sha256 per electron version, with a clear throw
# for unknown versions (upstream hardcodes one hash).
# 2. icon.png / linux_desktop_entry.py resolve against `hermesSrc`
# (the flake input checkout) instead of relative repo paths.
#
# REMOVE THIS FILE and the hermesDesktopFixed let-binding in default.nix
# once upstream ships the corrected hash and the hermes-agent input is
# bumped past that release.
{
pkgs,
lib,
stdenv,
makeWrapper,
hermesNpmLib,
electron,
hermesAgent,
python3,
# Checkout of the hermes-agent flake input (outPath), used for files
# that upstream references with relative paths inside its own repo.
hermesSrc,
# Environment to bake into the launcher. A GUI launcher reads none of the
# shell profile, so a variable that an interactive shell exports does not
# reach an app that the desktop menu starts. The Home Manager module passes
# HERMES_HOME and HERMES_MANAGED here, which gives the app the same state
# directory as the services.
extraEnv ? {},
# Shell lines to run before the app starts. A secret belongs here and never
# in extraEnv: makeWrapper writes a --set value into the Nix store, which
# all users can read. A --run line reads the value from a runtime path at
# each start instead.
extraRun ? [],
...
}: let
# Each flag goes on its own continued line, and the leading backslash is
# inside the generated string. An empty attribute set then adds no text
# at all, and cannot leave a backslash above a blank line. That fault ends the
# makeWrapper command early, and the next flag runs as a shell command.
extraEnvFlags = lib.concatMapStrings (
name: " \\\n --set ${name} ${lib.escapeShellArg (toString extraEnv.${name})}"
) (lib.attrNames extraEnv);
extraRunFlags = lib.concatMapStrings (line: " \\\n --run ${lib.escapeShellArg line}") extraRun;
# Electron's CDN has re-uploaded header artifacts for the same version
# before, which silently changes their hash. Keep one verified hash per
# electron version and fail loudly (instead of with a cryptic FOD
# mismatch) whenever a bump needs a new one.
electronHeaderHashes = {
"43.6.0" = "sha256-xDgc5PpkcLpWHnlqVcjBD3SxJKtkUoSGLnJaSSrxJtI=";
};
electronHeaders = pkgs.fetchurl {
url = "https://artifacts.electronjs.org/headers/dist/v${electron.version}/node-v${electron.version}-headers.tar.gz";
sha256 =
electronHeaderHashes.${
electron.version
}
or (throw ''
hermes-desktop workaround: no verified Electron headers hash for version ${electron.version}.
Run: nix store prefetch-file https://artifacts.electronjs.org/headers/dist/v${electron.version}/node-v${electron.version}-headers.tar.gz
and add it to electronHeaderHashes in profiles/contexts/desktop/hermes-desktop.nix (m3ta-home).
'');
};
# node-pty ships no Electron-tagged prebuild we can trust to match this
# exact nixpkgs electron version, so it's always compiled from source
# against Electron's own headers (not whatever Node ran `npm`).
targetPlatform =
if stdenv.hostPlatform.isDarwin
then "darwin"
else if stdenv.hostPlatform.isLinux
then "linux"
else throw "hermes-desktop: unsupported host platform for node-pty staging";
targetArch =
if stdenv.hostPlatform.isAarch64
then "arm64"
else if stdenv.hostPlatform.isx86_64
then "x64"
else throw "hermes-desktop: unsupported host arch for node-pty staging";
# Build the renderer (dist/ + electron/ + package.json).
renderer = hermesNpmLib.buildNpmPackage {
dirs = [
"apps/desktop"
"apps/shared"
];
pname = "hermes-desktop-renderer";
doCheck = true;
buildPhase = ''
runHook preBuild
mkdir -p apps/desktop/build
patchShebangs .
pushd apps/desktop
# typecheck :3
npm exec -- tsc -b
# build the renderer bundle
# vite's emptyOutDir wipes dist/ on every run
# so it has to be first
npm exec -- vite build
# build the electron bundle
node scripts/bundle-electron-main.mjs
# Compile node-pty against Electron's actual ABI (the nixpkgs
# `electron` we ship). Headers come from a pinned fetchurl input
# since the sandbox has no network here, so node-gyp's
# normal --disturl download path can't run.
mkdir -p "$TMPDIR/electron-headers"
tar -xzf ${electronHeaders} -C "$TMPDIR/electron-headers" --strip-components=1
${lib.getExe hermesNpmLib.node-gyp} rebuild \
--directory=../../node_modules/node-pty \
--build-from-source \
--runtime=electron \
--target=${electron.version} \
--nodedir="$TMPDIR/electron-headers" \
--disturl="" \
--offline
# Target platform/arch come from stdenv.hostPlatform, not the
# build host's own process.platform/arch.
node scripts/stage-native-deps.mjs ${targetPlatform} ${targetArch}
popd
runHook postBuild
'';
checkPhase = ''
runHook preCheck
pushd apps/desktop
npm run postbuild
# validate staged node-pty native binary is present.
STAGED_PTY_NODE="./dist/node_modules/node-pty/build/Release/pty.node"
if [ ! -f "$STAGED_PTY_NODE" ]; then
echo "FATAL: Missing staged node-pty native binary at $STAGED_PTY_NODE"
echo "node-pty must be compiled natively"
exit 1
fi
popd
runHook postCheck
'';
installPhase = ''
runHook preInstall
mkdir -p $out
# vite writes to apps/desktop/dist/ (we cd'd there in buildPhase).
# stage-native-deps.mjs stages node-pty into dist/node_modules/node-pty,
# so copying dist/ wholesale carries the native dep along with the
# esbuild bundle that require()s it. apps/desktop/build was created
# before the cd.
cp -rn apps/desktop/dist $out/
echo '{"schemaVersion":1,"commit":"nix-dummy-commit","branch":"nix","dirty":false,"source":"nix"}' > $out/install-stamp.json
cp -n apps/desktop/package.json $out/
runHook postInstall
'';
};
in
# Electron wrapper: nixpkgs' electron binary pointed at the renderer dir.
stdenv.mkDerivation {
pname = "hermes-desktop";
inherit (renderer) version;
dontUnpack = true;
dontBuild = true;
nativeBuildInputs = [
makeWrapper
python3
];
installPhase = ''
runHook preInstall
mkdir -p $out/share/hermes-desktop $out/bin
cp -r ${renderer}/* $out/share/hermes-desktop/
# Standard nixpkgs pattern for electron-builder apps: patch process.resourcesPath
# to point to the app's directory. In Nix, unpackaged electron defaults this
# to the electron distribution's resources path, breaking extraResources lookups.
substituteInPlace $out/share/hermes-desktop/dist/electron-main.mjs \
--replace-fail "process.resourcesPath" "'$out/share/hermes-desktop'"
# Wrap the nixpkgs electron binary to launch our app. Set
# HERMES_DESKTOP_HERMES to the absolute path of the nix-built `hermes`
# binary so the desktop's resolver step 4 ("existing Hermes CLI on
# PATH") uses our fully wrapped binary venv with all deps,
# bundled skills/plugins, runtime PATH (ripgrep/git/ffmpeg/etc).
# No reimplementation of the agent resolver in the wrapper.
makeWrapper ${lib.getExe electron} $out/bin/hermes-desktop \
--add-flags "$out/share/hermes-desktop" \
--set HERMES_DESKTOP_HERMES "${lib.getExe hermesAgent}" \
--set ELECTRON_IS_DEV 0${extraEnvFlags}${extraRunFlags}
# XDG launcher entry
mkdir -p $out/share/applications $out/share/icons/hicolor/1024x1024/apps
install -m 0644 ${hermesSrc}/apps/desktop/assets/icon.png \
$out/share/icons/hicolor/1024x1024/apps/hermes.png
export PYTHONPATH=$(mktemp -d)
cp ${hermesSrc}/hermes_cli/linux_desktop_entry.py "$PYTHONPATH/linux_desktop_entry.py"
export DESKTOP_EXEC="$out/bin/hermes-desktop"
export DESKTOP_ICON="$out/share/icons/hicolor/1024x1024/apps/hermes.png"
python3 -c 'import os; from linux_desktop_entry import render_desktop_entry; print(render_desktop_entry(os.environ["DESKTOP_EXEC"], os.environ["DESKTOP_ICON"]))' > $out/share/applications/hermes.desktop
runHook postInstall
'';
passthru = {
inherit (renderer.passthru) packageJsonPath;
};
meta = with lib; {
description = "Native Electron desktop shell for Hermes Agent";
homepage = "https://github.com/NousResearch/hermes-agent";
license = licenses.mit;
platforms = platforms.unix;
mainProgram = "hermes-desktop";
};
}
+18 -7
View File
@@ -73,6 +73,7 @@ in {
require_if_present("dms.colors") require_if_present("dms.colors")
require_if_present("dms.layout") require_if_present("dms.layout")
require_if_present("dms.outputs") require_if_present("dms.outputs")
require_if_present("dms.binds-user")
''; '';
}; };
settings = { settings = {
@@ -88,7 +89,7 @@ in {
force_zero_scaling = true; force_zero_scaling = true;
}; };
input = { input = {
kb_layout = "us"; kb_layout = "us,de";
kb_variant = ""; kb_variant = "";
kb_model = ""; kb_model = "";
kb_rules = ""; kb_rules = "";
@@ -150,7 +151,6 @@ in {
]; ];
device = [ device = [
# Alle normalen Keyboards explizit auf de setzen:
{ {
name = "video-bus"; name = "video-bus";
kb_layout = "de,us"; kb_layout = "de,us";
@@ -173,23 +173,33 @@ in {
} }
{ {
name = "keychron-keychron-k7"; name = "keychron-keychron-k7";
kb_layout = "us"; kb_layout = "us,de";
kb_options = "ctrl:nocaps"; kb_options = "ctrl:nocaps";
} }
# Moonlander Sub-Devices bleiben us (erben global) # Moonlander Sub-Devices bleiben us zuerst (de als zweites Layout):
{ {
name = "zsa-technology-labs-moonlander-mark-i-consumer-control"; name = "zsa-technology-labs-moonlander-mark-i-consumer-control";
kb_layout = "us"; kb_layout = "us,de";
kb_options = "ctrl:nocaps"; kb_options = "ctrl:nocaps";
} }
{ {
name = "zsa-technology-labs-moonlander-mark-i-keyboard"; name = "zsa-technology-labs-moonlander-mark-i-keyboard";
kb_layout = "us"; kb_layout = "us,de";
kb_options = "ctrl:nocaps"; kb_options = "ctrl:nocaps";
} }
{ {
name = "zsa-technology-labs-moonlander-mark-i-system-control"; name = "zsa-technology-labs-moonlander-mark-i-system-control";
kb_layout = "us"; kb_layout = "us,de";
kb_options = "ctrl:nocaps";
}
{
name = "asustek-computer-inc.-gz302ea-keyboard";
kb_layout = "de,us";
kb_options = "ctrl:nocaps";
}
{
name = "asustek-computer-inc.-gz302ea-keyboard-2";
kb_layout = "de,us";
kb_options = "ctrl:nocaps"; kb_options = "ctrl:nocaps";
} }
]; ];
@@ -486,6 +496,7 @@ in {
(mkBinding (modKey "mouse_up") (focusWorkspace "e-1")) (mkBinding (modKey "mouse_up") (focusWorkspace "e-1"))
(mkBindingWithOptions (modKey "mouse:272") "hl.dsp.window.drag()" {mouse = true;}) (mkBindingWithOptions (modKey "mouse:272") "hl.dsp.window.drag()" {mouse = true;})
(mkBindingWithOptions (modKey "mouse:273") "hl.dsp.window.resize()" {mouse = true;}) (mkBindingWithOptions (modKey "mouse:273") "hl.dsp.window.resize()" {mouse = true;})
(mkBinding (modKey "SPACE") (execCmd "hyprctl switchxkblayout current next"))
]; ];
}; };
}; };
+13 -7
View File
@@ -40,8 +40,8 @@
command = "bash"; command = "bash";
args = ["-c" "EXA_API_KEY=$(cat /run/agenix/exa-key) exec bunx exa-mcp-server@latest tools=web_search_exa"]; args = ["-c" "EXA_API_KEY=$(cat /run/agenix/exa-key) exec bunx exa-mcp-server@latest tools=web_search_exa"];
}; };
Fireflies = { SallyAI = {
url = "https://api.fireflies.ai/mcp"; url = "https://app.sally.io/api/v1/McpExternal";
}; };
Outline = { Outline = {
url = "https://wiki.az-gruppe.com/mcp"; url = "https://wiki.az-gruppe.com/mcp";
@@ -61,22 +61,28 @@
}; };
}; };
# NOTE: llm-agent packages are consumed via the `llm-agents` namespace
# (pkgs.llm-agents.*), provided by numtide/llm-agents.nix's
# `overlays.shared-nixpkgs`. The consumer's nixos-config MUST apply that
# overlay — namespaced refs fail loudly if it is missing, instead of
# silently falling back to (outdated) nixpkgs attributes.
home.packages = with pkgs; [ home.packages = with pkgs; [
agenix-cli agenix-cli
agent-browser llm-agents.agent-browser
m3taHomeInputs.agent-lib.packages.${pkgs.stdenv.hostPlatform.system}.agent-lib-cli m3taHomeInputs.agent-lib.packages.${pkgs.stdenv.hostPlatform.system}.agent-lib-cli
beads llm-agents.beads
buzz
crunch crunch
docker-sbx docker-sbx
herdr llm-agents.herdr
pi-coding-agent pi-coding-agent
(qmd.override { (llm-agents.qmd.override {
vulkanSupport = videoDrivers == ["amdgpu"]; vulkanSupport = videoDrivers == ["amdgpu"];
cudaSupport = videoDrivers == ["nvidia"]; cudaSupport = videoDrivers == ["nvidia"];
}) })
opencode-desktop opencode-desktop
openshell openshell
openspec llm-agents.openspec
openwork openwork
talk talk
]; ];
+32 -17
View File
@@ -4,25 +4,34 @@
ohMyOpencodeSettings = { ohMyOpencodeSettings = {
agents = { agents = {
sisyphus.model = "zai-coding-plan/glm-5.2"; # Primary worker: GLM-5.3 (1M ctx, beats Opus 4.8 on token efficiency).
oracle.model = "litellm/claude-sonnet-5"; sisyphus.model = "zai-coding-plan/glm-5.3";
librarian.model = "litellm/claude-sonnet-5"; # Planning + deep analysis: strongest reasoning tier.
explore.model = "litellm/claude-haiku-4-5";
multimodal-looker.model = "litellm/gpt-5.3-codex";
prometheus.model = "litellm/claude-opus-4-8"; prometheus.model = "litellm/claude-opus-4-8";
metis.model = "litellm/claude-opus-4-8"; metis.model = "litellm/claude-opus-4-8";
momus.model = "zai-coding-plan/glm-5.2"; # Verification + docs research: best tool-use quality.
atlas.model = "zai-coding-plan/glm-5.2"; oracle.model = "litellm/claude-sonnet-5";
librarian.model = "litellm/claude-sonnet-5";
# High-volume parallel codebase scans: speed-tuned GLM on flat rate.
explore.model = "zai-coding-plan/glm-5-turbo";
# Vision: GLM-5.3 is text-only -> cheap capable Claude Haiku.
multimodal-looker.model = "litellm/claude-haiku-4-5";
# Critic + navigator: flagship GLM on flat rate.
momus.model = "zai-coding-plan/glm-5.3";
atlas.model = "zai-coding-plan/glm-5.3";
}; };
categories = { categories = {
visual-engineering.model = "zai-coding-plan/glm-5.2"; # Volume categories -> flat-rate GLM-5.3 (1M ctx).
visual-engineering.model = "zai-coding-plan/glm-5.3";
artistry.model = "zai-coding-plan/glm-5.3";
writing.model = "zai-coding-plan/glm-5.3";
# Long deep-work sessions -> GLM-5.3 1M ctx beats Sonnet 200k.
deep.model = "zai-coding-plan/glm-5.3";
# Deliberately pay-per-token for top quality:
ultrabrain.model = "litellm/claude-opus-4-8"; ultrabrain.model = "litellm/claude-opus-4-8";
deep.model = "litellm/claude-sonnet-5";
artistry.model = "zai-coding-plan/glm-5.2";
quick.model = "litellm/claude-haiku-4-5";
unspecified-low.model = "litellm/claude-sonnet-5";
unspecified-high.model = "litellm/claude-opus-4-8"; unspecified-high.model = "litellm/claude-opus-4-8";
writing.model = "zai-coding-plan/glm-5.2"; unspecified-low.model = "litellm/claude-sonnet-5";
quick.model = "litellm/claude-haiku-4-5";
}; };
}; };
}; };
@@ -194,6 +203,13 @@
output = 128000; output = 128000;
}; };
}; };
"gpt-5.6-sol" = {
name = "GPT-5.6 Sol";
limit = {
context = 400000;
output = 128000;
};
};
"gpt-5.3-codex" = { "gpt-5.3-codex" = {
name = "GPT-5.3 Codex"; name = "GPT-5.3 Codex";
limit = { limit = {
@@ -214,12 +230,11 @@
output = 64000; output = 64000;
}; };
}; };
"claude-sonnet-4-6" = { "claude-sonnet-5" = {
name = "Claude Sonnet 4.6"; name = "Claude Sonnet 5";
options = { options = {
thinking = { thinking = {
type = "enabled"; type = "adaptive";
budget_tokens = 16000;
}; };
}; };
limit = { limit = {
+1
View File
@@ -1,6 +1,7 @@
# Gaming profile aggregator — Steam platform, Gamescope session, and AMD GPU tools. # Gaming profile aggregator — Steam platform, Gamescope session, and AMD GPU tools.
{...}: { {...}: {
imports = [ imports = [
./emulators.nix
./steam.nix ./steam.nix
./gamescope.nix ./gamescope.nix
./gpu.nix ./gpu.nix
+18
View File
@@ -0,0 +1,18 @@
{
config,
lib,
pkgs,
...
}:
with lib; let
cfg = config.profiles.gaming.emulators;
in {
options.profiles.gaming.emulators.enable = mkEnableOption "Emulators";
config = mkIf cfg.enable {
home.packages = with pkgs; [
shadps4
shadps4-qtlauncher
];
};
}
+6 -6
View File
@@ -89,17 +89,17 @@
"m3-atlas" = { "m3-atlas" = {
HostName = "152.53.85.162"; HostName = "152.53.85.162";
User = "m3tam3re"; User = "m3tam3re";
IdentityFile = "~/.ssh/m3tam3re"; IdentityFile = "~/.ssh/m3ta-adm";
}; };
"m3-hermes" = { "m3-hermes" = {
HostName = "204.168.229.93"; HostName = "204.168.229.93";
User = "m3tam3re"; User = "m3tam3re";
IdentityFile = "~/.ssh/m3tam3re"; IdentityFile = "~/.ssh/m3ta-adm";
}; };
"hermes" = { "hermes-agent" = {
HostName = "46.224.0.92"; HostName = "204.168.229.93";
User = "admin"; User = "hermes";
IdentityFile = "~/.ssh/m3tam3re"; IdentityFile = "~/.ssh/hermes";
}; };
"m3-zelda" = { "m3-zelda" = {
HostName = "95.217.189.186"; HostName = "95.217.189.186";
+11
View File
@@ -57,6 +57,12 @@
Port = 2022; Port = 2022;
IdentityFile = "~/.ssh/sascha.koenig"; IdentityFile = "~/.ssh/sascha.koenig";
}; };
"AZ-TC-01" = {
HostName = "192.168.153.172";
User = "sascha.koenig";
Port = 22;
IdentityFile = "~/.ssh/sascha.koenig";
};
"git.az-gruppe.com" = { "git.az-gruppe.com" = {
HostName = "git.az-gruppe.com"; HostName = "git.az-gruppe.com";
Port = 2022; Port = 2022;
@@ -68,6 +74,11 @@
User = "m3tam3re"; User = "m3tam3re";
IdentityFile = "~/.ssh/sascha.koenig"; IdentityFile = "~/.ssh/sascha.koenig";
}; };
"hermes-agent" = {
HostName = "204.168.229.93";
User = "hermes";
IdentityFile = "~/.ssh/hermes";
};
}; };
}; };
} }