21 Commits
Author SHA1 Message Date
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
m3ta-chiron b01084482f Merge branch 'master' of code.m3ta.dev:m3tam3re/m3ta-home 2026-08-03 06:31:55 +02:00
m3ta-chiron 66b1dc72f5 fix: agent-lib-legacy repo url 2026-08-03 06:31:43 +02:00
m3tam3re 0db970c161 feat: docker-sbx 2026-08-02 16:34:20 +02:00
m3tam3re 516f9d74e0 chore: -aionui 2026-08-02 13:41:01 +02:00
m3tam3re 7926491466 feat: migrate Hyprland configuration to Lua 2026-08-01 10:53:09 +02:00
m3tam3re a9cf13abd4 feat: add some mcp servers 2026-07-30 14:50:43 +02:00
m3tam3re 4dec87ebc7 feat: okf skills 2026-07-30 14:22:13 +02:00
m3tam3re 53de70bf4f feat: okf skills 2026-07-30 14:16:33 +02:00
m3tam3re 206ee46d4f fix: basecamp rollback as new rc version does not have a source hash 2026-07-30 09:33:31 +02:00
m3tam3re 4ac8d6fb9a chore: flake update 2026-07-30 08:26:14 +02:00
m3tam3re a22ff06004 chore: flake update 2026-07-30 07:21:22 +02:00
m3tam3re acbf02c3e1 +opencode-desktop 2026-07-30 07:03:27 +02:00
m3ta-chiron 128391afb2 -zellij-ps 2026-07-28 06:49:42 +02:00
m3ta-chiron 92244b5f02 -zellij-ps 2026-07-28 06:35:01 +02:00
m3tam3re 7b3ef4a2c3 Merge branch 'master' of code.m3ta.dev:m3tam3re/m3ta-home 2026-07-25 11:45:38 +02:00
m3tam3re 2aac223e77 chore: flake update 2026-07-25 11:45:26 +02:00
10 changed files with 730 additions and 289 deletions
+132 -4
View File
@@ -783,6 +783,19 @@
}, },
"path": "skills/engineering/ask-matt" "path": "skills/engineering/ask-matt"
}, },
"batch-grill-me": {
"entry": "skills/in-progress/batch-grill-me/SKILL.md",
"licenseFiles": [
"LICENSE"
],
"metadata": {
"description": "A relentless interview that asks every frontier question at once, round by round.",
"name": "batch-grill-me",
"requires": [],
"tags": []
},
"path": "skills/in-progress/batch-grill-me"
},
"claude-handoff": { "claude-handoff": {
"entry": "skills/in-progress/claude-handoff/SKILL.md", "entry": "skills/in-progress/claude-handoff/SKILL.md",
"licenseFiles": [ "licenseFiles": [
@@ -919,7 +932,7 @@
"LICENSE" "LICENSE"
], ],
"metadata": { "metadata": {
"description": "Grill the user relentlessly about a plan or design. Use when the user wants to stress-test a plan before building, or uses any 'grill' trigger phrases.", "description": "Grill the user relentlessly about a plan, decision, or idea. Use when the user wants to stress-test their thinking, or uses any 'grill' trigger phrases.",
"name": "grilling", "name": "grilling",
"requires": [], "requires": [],
"tags": [] "tags": []
@@ -1108,6 +1121,19 @@
}, },
"path": "skills/misc/setup-pre-commit" "path": "skills/misc/setup-pre-commit"
}, },
"setup-ts-deep-modules": {
"entry": "skills/in-progress/setup-ts-deep-modules/SKILL.md",
"licenseFiles": [
"LICENSE"
],
"metadata": {
"description": "Wire dependency-cruiser into a TypeScript repo so each package is a deep module — implementation hidden in subfolders, reachable only through its entry-point files. User-invoked.",
"name": "setup-ts-deep-modules",
"requires": [],
"tags": []
},
"path": "skills/in-progress/setup-ts-deep-modules"
},
"tdd": { "tdd": {
"entry": "skills/engineering/tdd/SKILL.md", "entry": "skills/engineering/tdd/SKILL.md",
"licenseFiles": [ "licenseFiles": [
@@ -1134,6 +1160,19 @@
}, },
"path": "skills/productivity/teach" "path": "skills/productivity/teach"
}, },
"to-questionnaire": {
"entry": "skills/in-progress/to-questionnaire/SKILL.md",
"licenseFiles": [
"LICENSE"
],
"metadata": {
"description": "Turn a decision you can't fully answer into a questionnaire for someone else to fill in.",
"name": "to-questionnaire",
"requires": [],
"tags": []
},
"path": "skills/in-progress/to-questionnaire"
},
"to-spec": { "to-spec": {
"entry": "skills/engineering/to-spec/SKILL.md", "entry": "skills/engineering/to-spec/SKILL.md",
"licenseFiles": [ "licenseFiles": [
@@ -1192,7 +1231,7 @@
"LICENSE" "LICENSE"
], ],
"metadata": { "metadata": {
"description": "Plan a huge chunk of work — more than one agent session can hold — as a shared map of investigation tickets on your issue tracker, and resolve them one at a time until the way to the destination is clear.", "description": "Plan a huge chunk of work — more than one agent session can hold — as a shared map of decision tickets on your issue tracker, and resolve them one at a time until the way to the destination is clear.",
"name": "wayfinder", "name": "wayfinder",
"requires": [], "requires": [],
"tags": [] "tags": []
@@ -1267,14 +1306,103 @@
}, },
"tools": {} "tools": {}
}, },
"narHash": "sha256:7fa8729eedd68eb10218d1c37868952cbe73913e46c23d5d251afcf4b5a72e8d", "narHash": "sha256:51778614e8086c70f3382b8076425f1a6c9edaa6f926e0771e21d10315d2f118",
"ref": null, "ref": null,
"rev": "89d370d181e7397c1cf4e9da47391dd26cd416b1", "rev": "ed37663cc5fbef691ddfecd080dff42f7e7e350d",
"root": ".", "root": ".",
"type": "git", "type": "git",
"url": "https://github.com/mattpocock/skills", "url": "https://github.com/mattpocock/skills",
"warnings": [] "warnings": []
}, },
"okf": {
"discovery": {
"agents": {
"include": [
"**/AGENT.md"
],
"paths": [
"agents"
]
},
"prompts": {
"include": [
"**/PROMPT.md"
],
"paths": [
"prompts"
]
},
"skills": {
"include": [
"**/SKILL.md"
],
"paths": [
"skills"
]
},
"tools": {
"include": [
"**/TOOL.md"
],
"paths": [
"tools"
]
}
},
"items": {
"agents": {},
"prompts": {},
"skills": {
"okf": {
"entry": "skills/okf/SKILL.md",
"licenseFiles": [
"LICENSE"
],
"metadata": {
"description": ">-",
"name": "okf",
"requires": [],
"tags": []
},
"path": "skills/okf"
},
"validate": {
"entry": "skills/validate/SKILL.md",
"licenseFiles": [
"LICENSE"
],
"metadata": {
"description": ">-",
"name": "validate",
"requires": [],
"tags": []
},
"path": "skills/validate"
},
"visualize": {
"entry": "skills/visualize/SKILL.md",
"licenseFiles": [
"LICENSE"
],
"metadata": {
"description": ">-",
"name": "visualize",
"requires": [],
"tags": []
},
"path": "skills/visualize"
}
},
"tools": {}
},
"narHash": "sha256:7491a95f121a0e5d045381113955252bd6d401009fe2b9b27752f3caeeb6682e",
"ref": null,
"rev": "cb5c0a9973c81ea3702f677e0b8852d93b47be80",
"root": ".",
"type": "git",
"url": "https://github.com/scaccogatto/okf-skills",
"warnings": []
},
"superpowers": { "superpowers": {
"discovery": { "discovery": {
"agents": { "agents": {
Generated
+151 -52
View File
@@ -62,11 +62,11 @@
"agents_2": { "agents_2": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1780133320, "lastModified": 1783016143,
"narHash": "sha256-8AiN9tV9PBb5xblJiPlhumBbKj61qLjzqXXFtkj3vvY=", "narHash": "sha256-3qejDAo4g2XfzTyWCaX8RVKH17JXnw/fujsbXQA+Mzc=",
"ref": "refs/heads/master", "ref": "refs/heads/master",
"rev": "920c00313ae242bd93275c30131b9ab1e52ee2fb", "rev": "83284d752d2ac325d4bf3ab7b38acad1c2fffe3a",
"revCount": 88, "revCount": 98,
"type": "git", "type": "git",
"url": "https://code.m3ta.dev/m3tam3re/AGENTS" "url": "https://code.m3ta.dev/m3tam3re/AGENTS"
}, },
@@ -99,16 +99,16 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1774505501, "lastModified": 1785348116,
"narHash": "sha256-7UiRrDptj7yuEFwToOfdunUMz/i3jRLR7CmMoYQjq6k=", "narHash": "sha256-AVycTcomtfvQJ/AHvMg5xu7lVoOzDXxjN+pV7mqUIQ4=",
"owner": "basecamp", "owner": "basecamp",
"repo": "basecamp-cli", "repo": "basecamp-cli",
"rev": "f087e6ef84002503d0dbc75ea1c8c928a8928d9e", "rev": "e1059fb123a03295ce6176272e4bbaf43d7971c6",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "basecamp", "owner": "basecamp",
"ref": "v0.7.2", "ref": "v0.8.0-rc.1",
"repo": "basecamp-cli", "repo": "basecamp-cli",
"type": "github" "type": "github"
} }
@@ -143,11 +143,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1783529634, "lastModified": 1785111455,
"narHash": "sha256-zdHsPGPE5MVi/y+uIt548XScTfZjQzdF21dME7ISEJM=", "narHash": "sha256-aTNuC9NDBnYAeEtFsleeUwmGX3AZlKOutbl+LQRPkmQ=",
"owner": "AvengeMedia", "owner": "AvengeMedia",
"repo": "DankMaterialShell", "repo": "DankMaterialShell",
"rev": "bdfd565b72cbb416441a9ab828efcac4fd516c70", "rev": "069ddab041c738236a8910e4c39b65d9628d3018",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -164,11 +164,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1783591397, "lastModified": 1785375021,
"narHash": "sha256-e4DDmVAas6IPwwY+gfSDKh3PMzW/FXLCbjyWXOnnnbM=", "narHash": "sha256-SV24PP3ctDSAuQjg0LdYAvzN7GEustIrtZfciiSrgRI=",
"owner": "AvengeMedia", "owner": "AvengeMedia",
"repo": "dms-plugin-registry", "repo": "dms-plugin-registry",
"rev": "8b61e8fca730986e673737529fa56802dc9326bb", "rev": "672e213a1e20b980708d81bd82df9bf85c15a590",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -243,19 +243,20 @@
], ],
"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", "pyproject-nix": "pyproject-nix_2",
"uv2nix": "uv2nix" "uv2nix": "uv2nix_2"
}, },
"locked": { "locked": {
"lastModified": 1783592259, "lastModified": 1782936460,
"narHash": "sha256-4b01+K9g1iBpLUaeiioQufWVowPW7uYk4QCe0L0nHiI=", "narHash": "sha256-Wt72AQtA6Eizi7Ubj23JBhwZ7GKYcjY4mcV6upqHOaU=",
"owner": "NousResearch", "owner": "NousResearch",
"repo": "hermes-agent", "repo": "hermes-agent",
"rev": "73b611ad19720d70308dad6b0fb64648aaadc216", "rev": "7c1a029553d87c43ecff8a3821336bc95872213b",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "NousResearch", "owner": "NousResearch",
"ref": "v2026.7.1",
"repo": "hermes-agent", "repo": "hermes-agent",
"type": "github" "type": "github"
} }
@@ -288,11 +289,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1783550008, "lastModified": 1785306346,
"narHash": "sha256-qbbZUk9IG9dLNwCPwdPBs6I5clxwugRpP+1YU+GPK20=", "narHash": "sha256-DScBkW0fOgpGPK2trNoX3ryLTlaC14+gglFo/BhGJ4g=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "f4d01c1d87c7c2ec909549165d5a8338f1bd3315", "rev": "e705714e918c3b11affcdd15db2cbe3a070420a0",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -309,14 +310,15 @@
"nixpkgs" "nixpkgs"
], ],
"nixpkgs-master": "nixpkgs-master", "nixpkgs-master": "nixpkgs-master",
"opencode": "opencode",
"openspec": "openspec" "openspec": "openspec"
}, },
"locked": { "locked": {
"lastModified": 1783269665, "lastModified": 1785670526,
"narHash": "sha256-bA4PooGV1x3vtmhs6NEprZbWErwaEJdgxoKfAWaH0do=", "narHash": "sha256-tC1CW+Kxh9ZZxJC0y472i0KoieMqNwNi+AiCmS4n7To=",
"ref": "refs/heads/master", "ref": "refs/heads/master",
"rev": "f279ae9c89d59f3e0deb0fd6307800f4cb993815", "rev": "69fce234a8607cd3e71233831564b8ceeba70626",
"revCount": 356, "revCount": 374,
"type": "git", "type": "git",
"url": "ssh://gitea@code.m3ta.dev/m3tam3re/nixpkgs" "url": "ssh://gitea@code.m3ta.dev/m3tam3re/nixpkgs"
}, },
@@ -377,11 +379,11 @@
}, },
"nixpkgs-master": { "nixpkgs-master": {
"locked": { "locked": {
"lastModified": 1782540244, "lastModified": 1785386845,
"narHash": "sha256-3skOZJEfAUG7LSB/Ok2AQUiqeagYLSq+8wKjtS1hOyc=", "narHash": "sha256-CvXXTgWxbwTn6Diev4nLTP5+8tsFtth/SQAtaR9iVY0=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "a65184fc373636356fcaf460dc09655a919c66ea", "rev": "3c5a718ce27c9283364d4c664fac4e4a23acdfb4",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -409,11 +411,27 @@
}, },
"nixpkgs_3": { "nixpkgs_3": {
"locked": { "locked": {
"lastModified": 1783224372, "lastModified": 1776683584,
"narHash": "sha256-8i/87eeoqiGE4yOTjwSA3Eh/ziJRQEmd/unYU+K27sk=", "narHash": "sha256-NuTLMrr10Tng72hurYG8jYQ4XKK8wnpJmOGcPiis96g=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "d407951447dcd00442e97087bf374aad70c04cea", "rev": "9dd5558b06dbdacbf635a3dd36dce1b1a7ee3a89",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_4": {
"locked": {
"lastModified": 1785318670,
"narHash": "sha256-dN6Ou5x/+23FZLEpYP3IffO+NyJFzUlGumt1uu3MMaY=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -423,13 +441,13 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs_4": { "nixpkgs_5": {
"locked": { "locked": {
"lastModified": 1783224372, "lastModified": 1785318670,
"narHash": "sha256-8i/87eeoqiGE4yOTjwSA3Eh/ziJRQEmd/unYU+K27sk=", "narHash": "sha256-dN6Ou5x/+23FZLEpYP3IffO+NyJFzUlGumt1uu3MMaY=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "d407951447dcd00442e97087bf374aad70c04cea", "rev": "0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -463,14 +481,14 @@
"nur": { "nur": {
"inputs": { "inputs": {
"flake-parts": "flake-parts_2", "flake-parts": "flake-parts_2",
"nixpkgs": "nixpkgs_4" "nixpkgs": "nixpkgs_5"
}, },
"locked": { "locked": {
"lastModified": 1783593872, "lastModified": 1785395064,
"narHash": "sha256-KvFRxsi81gBoK7JOTHD2LoR1y2sWobHkrHGPhM3v/NY=", "narHash": "sha256-ZZoXKpTETeIU93xQOxleE27JWT1FcpF9pe1nSPrFbuw=",
"owner": "nix-community", "owner": "nix-community",
"repo": "NUR", "repo": "NUR",
"rev": "73078fa6f0d34686ad26808f90cc74e81039ba9f", "rev": "cce2408845d0298ae0dcc42582c1d8b390de105c",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -479,6 +497,25 @@
"type": "github" "type": "github"
} }
}, },
"opencode": {
"inputs": {
"nixpkgs": "nixpkgs_3"
},
"locked": {
"lastModified": 1785386452,
"narHash": "sha256-iYfkMmn1ZKbi0cv8XIAXVgPH4idzsVSK4cWyi/KGMJQ=",
"owner": "anomalyco",
"repo": "opencode",
"rev": "f7204902192624481e526b1852cdedaadb914e24",
"type": "github"
},
"original": {
"owner": "anomalyco",
"ref": "dev",
"repo": "opencode",
"type": "github"
}
},
"openspec": { "openspec": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
@@ -487,11 +524,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1782291243, "lastModified": 1785371113,
"narHash": "sha256-0pVn5pDqlKpqSgzf4eG9TFCjkjzOtnmGTpbILso7GwI=", "narHash": "sha256-r3fwnb5gMTV9UXBj7bqkKpTZIWwF4AgghULOIv2Fr4c=",
"owner": "Fission-AI", "owner": "Fission-AI",
"repo": "OpenSpec", "repo": "OpenSpec",
"rev": "737518b36fe4b6fdb09c83eeaf8d873a428c92e6", "rev": "2b3d368539132be6311e55db58899abbf5306b81",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -506,14 +543,8 @@
"hermes-agent", "hermes-agent",
"nixpkgs" "nixpkgs"
], ],
"pyproject-nix": [ "pyproject-nix": "pyproject-nix",
"hermes-agent", "uv2nix": "uv2nix"
"pyproject-nix"
],
"uv2nix": [
"hermes-agent",
"uv2nix"
]
}, },
"locked": { "locked": {
"lastModified": 1772555609, "lastModified": 1772555609,
@@ -530,6 +561,28 @@
} }
}, },
"pyproject-nix": { "pyproject-nix": {
"inputs": {
"nixpkgs": [
"hermes-agent",
"pyproject-build-systems",
"nixpkgs"
]
},
"locked": {
"lastModified": 1769936401,
"narHash": "sha256-kwCOegKLZJM9v/e/7cqwg1p/YjjTAukKPqmxKnAZRgA=",
"owner": "nix-community",
"repo": "pyproject.nix",
"rev": "b0d513eeeebed6d45b4f2e874f9afba2021f7812",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "pyproject.nix",
"type": "github"
}
},
"pyproject-nix_2": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
"hermes-agent", "hermes-agent",
@@ -550,6 +603,28 @@
"type": "github" "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"
},
"original": {
"owner": "pyproject-nix",
"repo": "pyproject.nix",
"type": "github"
}
},
"root": { "root": {
"inputs": { "inputs": {
"agenix": "agenix", "agenix": "agenix",
@@ -561,7 +636,7 @@
"home-manager": "home-manager_2", "home-manager": "home-manager_2",
"m3ta-nixpkgs": "m3ta-nixpkgs", "m3ta-nixpkgs": "m3ta-nixpkgs",
"nix-colors": "nix-colors", "nix-colors": "nix-colors",
"nixpkgs": "nixpkgs_3", "nixpkgs": "nixpkgs_4",
"nur": "nur" "nur": "nur"
} }
}, },
@@ -584,13 +659,37 @@
"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": {
"lastModified": 1770770348,
"narHash": "sha256-A2GzkmzdYvdgmMEu5yxW+xhossP+txrYb7RuzRaqhlg=",
"owner": "pyproject-nix",
"repo": "uv2nix",
"rev": "5d1b2cb4fe3158043fbafbbe2e46238abbc954b0",
"type": "github"
},
"original": {
"owner": "pyproject-nix",
"repo": "uv2nix",
"type": "github"
}
},
"uv2nix_2": {
"inputs": {
"nixpkgs": [
"hermes-agent",
"nixpkgs"
],
"pyproject-nix": "pyproject-nix_3"
},
"locked": { "locked": {
"lastModified": 1773039484, "lastModified": 1773039484,
"narHash": "sha256-+boo33KYkJDw9KItpeEXXv8+65f7hHv/earxpcyzQ0I=", "narHash": "sha256-+boo33KYkJDw9KItpeEXXv8+65f7hHv/earxpcyzQ0I=",
+1 -1
View File
@@ -23,7 +23,7 @@
agent-lib = { agent-lib = {
# url = "path:/home/m3tam3re/p/NIX/agent-lib"; # url = "path:/home/m3tam3re/p/NIX/agent-lib";
url = "git+ssh://gitea@code.m3ta.dev/m3tam3re/agent-lib"; url = "git+ssh://gitea@code.m3ta.dev/m3tam3re/agent-lib-legacy";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
-1
View File
@@ -13,7 +13,6 @@
./packages.nix ./packages.nix
./television.nix ./television.nix
./zellij.nix ./zellij.nix
./zellij-ps.nix
./zoxide.nix ./zoxide.nix
]; ];
} }
-30
View File
@@ -1,30 +0,0 @@
# Zellij-ps — project-aware Zellij session manager from m3ta-nixpkgs.
# Delegates to `cli.zellij-ps` — the home-manager module namespace provided by
# m3ta-nixpkgs. Requires m3ta-nixpkgs overlays to be applied to pkgs
# (via home-manager.useGlobalPkgs = true in NixOS, or overlays in standalone).
{
config,
lib,
...
}:
with lib; let
cfg = config.base.cliTools.zellijPs;
in {
options.base.cliTools.zellijPs = {
# Enabled by default — base modules are always-on.
enable = (mkEnableOption "enable zellij-ps project session manager") // {default = true;};
projectFolders = mkOption {
type = types.listOf types.path;
description = "Project root folders scanned by zellij-ps.";
default = ["${config.home.homeDirectory}/p"];
};
};
config = mkIf cfg.enable {
cli.zellij-ps = {
enable = true;
projectFolders = cfg.projectFolders;
};
};
}
+415 -178
View File
@@ -6,95 +6,148 @@
}: }:
with lib; let with lib; let
cfg = config.desktop.wm.hyprland; cfg = config.desktop.wm.hyprland;
lua = lib.generators.mkLuaInline;
luaString = builtins.toJSON;
mkEnvVar = name: value: {
_args = [
name
value
];
};
modKey = key: lua ''mainMod .. " + ${key}"'';
mkDispatcher = expression: lua expression;
execCmd = command: "hl.dsp.exec_cmd(${luaString command})";
execExpr = expression: "hl.dsp.exec_cmd(${expression})";
mkBinding = keys: dispatcher: {
_args = [
keys
(mkDispatcher dispatcher)
];
};
mkBindingWithOptions = keys: dispatcher: options: {
_args = [
keys
(mkDispatcher dispatcher)
options
];
};
startupCommand = command: {
_args = [
"hyprland.start"
(lua ''
function()
hl.exec_cmd(${luaString command})
end
'')
];
};
focusWorkspace = workspace: "hl.dsp.focus({ workspace = ${luaString workspace} })";
moveToWorkspace = workspace: "hl.dsp.window.move({ workspace = ${luaString workspace} })";
in { in {
options.desktop.wm.hyprland.enable = mkEnableOption "Hyprland window manager"; options.desktop.wm.hyprland.enable = mkEnableOption "Hyprland window manager";
config = mkIf cfg.enable { config = mkIf cfg.enable {
wayland.windowManager.hyprland = { wayland.windowManager.hyprland = {
configType = "hyprlang"; configType = "lua";
extraLuaFiles."00-dms" = {
autoLoad = true;
content = ''
-- DMS setup/runtime owns these modules. Load only the Lua equivalents
-- of the pre-migration active sources, before local Home Manager
-- settings, preserving the old source-first order without enabling new
-- DMS default binds or rules.
--
-- Keep fresh Home Manager generations usable before DMS has written
-- ~/.config/hypr/dms/*.lua.
local function require_if_present(module)
if package.searchpath(module, package.path) ~= nil then
require(module)
end
end
require_if_present("dms.colors")
require_if_present("dms.layout")
require_if_present("dms.outputs")
'';
};
settings = { settings = {
xwayland = { mainMod = {
force_zero_scaling = true; _var = "SUPER";
}; };
source = [ terminal = {
"~/.config/hypr/dms/colors.conf" _var = "ghostty";
"~/.config/hypr/dms/layout.conf"
"~/.config/hypr/dms/outputs.conf"
];
exec-once = [
"vibetyper"
];
env = [
"XCURSOR_SIZE,32"
"HYPRCURSOR_THEME,Bibata-Modern-Ice"
"WLR_NO_HARDWARE_CURSORS,1"
"XDG_CURRENT_DESKTOP,Hyprland"
"XDG_SESSION_TYPE,wayland"
"XDG_SESSION_DESKTOP,Hyprland"
"XKB_DEFAULT_LAYOUT,de"
"NIXOS_OZONE_WL,1"
"QT_QPA_PLATFORM,wayland;xcb"
"QT_QPA_PLATFORMTHEME,gtk3"
"QT_QPA_PLATFORMTHEME_QT6,gtk3"
];
input = {
kb_layout = "us";
kb_variant = "";
kb_model = "";
kb_rules = "";
kb_options = "ctrl:nocaps";
follow_mouse = 1;
}; };
general = { config = {
gaps_in = 5; xwayland = {
gaps_out = 5; force_zero_scaling = true;
border_size = 1;
layout = "dwindle";
};
decoration = {
shadow = {
enabled = true;
range = 60;
render_power = 3;
# color = "rgba(${config.colorScheme.palette.base00}66)";
offset = "1 2";
scale = 0.97;
}; };
rounding = 8; input = {
blur = { kb_layout = "us";
kb_variant = "";
kb_model = "";
kb_rules = "";
kb_options = "ctrl:nocaps";
follow_mouse = 1;
};
general = {
gaps_in = 5;
gaps_out = 5;
border_size = 1;
layout = "dwindle";
};
decoration = {
shadow = {
enabled = true;
range = 60;
render_power = 3;
# color = "rgba(${config.colorScheme.palette.base00}66)";
offset = "1 2";
scale = 0.97;
};
rounding = 8;
blur = {
enabled = true;
size = 3;
passes = 3;
};
active_opacity = 0.9;
inactive_opacity = 0.5;
};
animations = {
enabled = true; enabled = true;
size = 3; };
passes = 3; dwindle = {
# pseudotile = true; # TODO
preserve_split = true;
};
master = {
new_status = "master";
}; };
active_opacity = 0.9;
inactive_opacity = 0.5;
}; };
animations = { on = [
enabled = true; (startupCommand "vibetyper")
bezier = "myBezier, 0.05, 0.9, 0.1, 1.05"; ];
animation = [
"windows, 1, 7, myBezier"
"windowsOut, 1, 7, default, popin 80%"
"border, 1, 10, default"
"borderangle, 1, 8, default"
"fade, 1, 7, default"
"workspaces, 1, 6, default"
];
};
dwindle = { "env" = [
# pseudotile = true; # TODO (mkEnvVar "XCURSOR_SIZE" "32")
preserve_split = true; (mkEnvVar "HYPRCURSOR_THEME" "Bibata-Modern-Ice")
}; (mkEnvVar "WLR_NO_HARDWARE_CURSORS" "1")
(mkEnvVar "XDG_CURRENT_DESKTOP" "Hyprland")
master = { (mkEnvVar "XDG_SESSION_TYPE" "wayland")
new_status = "master"; (mkEnvVar "XDG_SESSION_DESKTOP" "Hyprland")
}; (mkEnvVar "XKB_DEFAULT_LAYOUT" "de")
(mkEnvVar "NIXOS_OZONE_WL" "1")
(mkEnvVar "QT_QPA_PLATFORM" "wayland;xcb")
(mkEnvVar "QT_QPA_PLATFORMTHEME" "gtk3")
(mkEnvVar "QT_QPA_PLATFORMTHEME_QT6" "gtk3")
];
device = [ device = [
# Alle normalen Keyboards explizit auf de setzen: # Alle normalen Keyboards explizit auf de setzen:
@@ -141,114 +194,298 @@ in {
} }
]; ];
windowrule = [ curve = {
"match:class file_progress, float on" _args = [
"match:class confirm, float on" "myBezier"
"match:class dialog, float on" (lua ''{ type = "bezier", points = { { 0.05, 0.9 }, { 0.1, 1.05 } } }'')
"match:class download, float on" ];
"match:class notification, float on" };
"match:class error, float on"
"match:class splash, float on" animation = [
"match:class confirmreset, float on" {
"match:title Open File, float on" leaf = "windows";
"match:title branchdialog, float on" enabled = true;
"match:class pavucontrol-qt, float on" speed = 7;
"match:class pavucontrol, float on" bezier = "myBezier";
"match:class class:^(espanso)$, float on" }
"match:class wlogout, fullscreen on" {
"match:title wlogout, float on" leaf = "windowsOut";
"match:title wlogout, fullscreen on" enabled = true;
"match:class mpv, float on" speed = 7;
"match:class mpv, idle_inhibit focus" bezier = "default";
"match:class mpv, opacity 1.0 override" style = "popin 80%";
"match:title ^(Media viewer)$, float on" }
"match:title ^(Volume Control)$, float on" {
"match:title ^(Picture-in-Picture)$, float on" leaf = "border";
"match:title ^(floating-pomodoro)$, float on" enabled = true;
"match:title ^(floating-pomodoro)$, size 250 50" speed = 10;
"match:title ^(floating-pomodoro)$, move 12 (monitor_h-150)" bezier = "default";
"match:title ^(floating-pomodoro)$, pin on" }
"match:initial_title .*streamlabs.com.*, float on" {
"match:initial_title .*streamlabs.com.*, pin on" leaf = "borderangle";
"match:initial_title .*streamlabs.com.*, size 800 400" enabled = true;
"match:initial_title .*alert-box.*, move 100%-820 102" speed = 8;
"match:initial_title .*chat-box.*, move 100%-820 512" bezier = "default";
"match:initial_title .*streamlabs.com.*, opacity 0.5 override" }
"match:initial_title .*streamlabs.com.*, idle_inhibit focus" {
"match:initial_title .*streamlabs.com.*, no_anim on" leaf = "fade";
"match:initial_title .*streamlabs.com.*, decorate off" enabled = true;
"match:initial_title .*streamlabs.com.*, no_shadow on" speed = 7;
"match:initial_title .*streamlabs.com.*, no_blur on" bezier = "default";
"match:class ^vibe-typer$, match:title ^Recording Indicator$, no_blur on" }
"match:class ^vibe-typer$, match:title ^Recording Indicator$, no_shadow on" {
"match:class ^vibe-typer$, match:title ^Recording Indicator$, no_anim on" leaf = "workspaces";
"match:class ^vibe-typer$, match:title ^Recording Indicator$, border_size 0" enabled = true;
"match:class ^vibe-typer$, match:title ^Recording Indicator$, no_focus on" speed = 6;
"border_color rgb(ffffff), match:xwayland 1" bezier = "default";
}
]; ];
"$mainMod" = "SUPER"; window_rule = [
"$terminal" = "ghostty"; {
match.class = "file_progress";
bind = [ float = true;
"$mainMod, return, exec, $terminal nu -c zellij-ps" }
"$mainMod, t, exec, $terminal -e nu -c 'nitch; exec nu'" {
"$mainMod SHIFT, t, exec, launch-timer" match.class = "confirm";
"$mainMod, n, exec, $terminal -e nvim" float = true;
"$mainMod, z, exec, uwsm app -- zeditor" }
"$mainMod, o, exec, hyprctl dispatch setprop activewindow opaque toggle" {
"$mainMod, r, exec, hyprctl dispatch focuswindow \"initialtitle:.*alert-box.*\" && hyprctl dispatch moveactive exact 4300 102 && hyprctl dispatch focuswindow \"initialtitle:.*chat-box.*\" && hyprctl dispatch moveactive exact 4300 512" match.class = "dialog";
"$mainMod, b, exec, uwsm app -- thunar" float = true;
"$mainMod SHIFT, B, exec, uwsm app -- vivaldi" }
"$mainMod, Escape, exec, uwsm app -- dms ipc call powermenu toggle" {
# "$mainMod, Space, togglefloating" match.class = "download";
"$mainMod, q, killactive" float = true;
"$mainMod, M, exit" }
"$mainMod, F, fullscreen" {
"$mainMod SHIFT, V, togglefloating" match.class = "notification";
"$mainMod, D, exec, uwsm app -- dms ipc call spotlight toggle" float = true;
"$mainMod, V, exec, uwsm app -- dms ipc call clipboard toggle" }
"$mainMod, C, exec, bash -c 'FILE=/tmp/screenshot_$(date +%s).png; grim -g \"$(slurp)\" \"$FILE\" && ksnip \"$FILE\"'" {
"$mainMod SHIFT, S, exec, uwsm app -- rofi -show emoji" match.class = "error";
"$mainMod, P, exec, uwsm app -- rofi-pass" float = true;
"$mainMod SHIFT, P, pseudo" }
"$mainMod, R, exec, stt-ptt start" {
"$mainMod, S, exec, stt-ptt start" match.class = "splash";
# "$mainMod, J, togglesplit" # TODO float = true;
"$mainMod, h, movefocus, l" }
"$mainMod, l, movefocus, r" {
"$mainMod, k, movefocus, u" match.class = "confirmreset";
"$mainMod, j, movefocus, d" float = true;
"$mainMod, 1, workspace, 1" }
"$mainMod, 2, workspace, 2" {
"$mainMod, 3, workspace, 3" match.title = "Open File";
"$mainMod, 4, workspace, 4" float = true;
"$mainMod, 5, workspace, 5" }
"$mainMod, 6, workspace, 6" {
"$mainMod, 7, workspace, 7" match.title = "branchdialog";
"$mainMod, 8, workspace, 8" float = true;
"$mainMod, 9, workspace, 9" }
"$mainMod, 0, workspace, 10" {
"$mainMod SHIFT, 1, movetoworkspace, 1" match.class = "pavucontrol-qt";
"$mainMod SHIFT, 2, movetoworkspace, 2" float = true;
"$mainMod SHIFT, 3, movetoworkspace, 3" }
"$mainMod SHIFT, 4, movetoworkspace, 4" {
"$mainMod SHIFT, 5, movetoworkspace, 5" match.class = "pavucontrol";
"$mainMod SHIFT, 6, movetoworkspace, 6" float = true;
"$mainMod SHIFT, 7, movetoworkspace, 7" }
"$mainMod SHIFT, 8, movetoworkspace, 8" {
"$mainMod SHIFT, 9, movetoworkspace, 9" match.class = "class:^(espanso)$";
"$mainMod SHIFT, 0, movetoworkspace, 10" float = true;
"$mainMod, mouse_down, workspace, e+1" }
"$mainMod, mouse_up, workspace, e-1" {
match.class = "wlogout";
fullscreen = true;
}
{
match.title = "wlogout";
float = true;
}
{
match.title = "wlogout";
fullscreen = true;
}
{
match.class = "mpv";
float = true;
}
{
match.class = "mpv";
idle_inhibit = "focus";
}
{
match.class = "mpv";
opacity = "1.0 override";
}
{
match.title = "^(Media viewer)$";
float = true;
}
{
match.title = "^(Volume Control)$";
float = true;
}
{
match.title = "^(Picture-in-Picture)$";
float = true;
}
{
match.title = "^(floating-pomodoro)$";
float = true;
}
{
match.title = "^(floating-pomodoro)$";
size = "250 50";
}
{
match.title = "^(floating-pomodoro)$";
move = "12 (monitor_h-150)";
}
{
match.title = "^(floating-pomodoro)$";
pin = true;
}
{
match.initial_title = ".*streamlabs.com.*";
float = true;
}
{
match.initial_title = ".*streamlabs.com.*";
pin = true;
}
{
match.initial_title = ".*streamlabs.com.*";
size = "800 400";
}
{
match.initial_title = ".*alert-box.*";
move = "100%-820 102";
}
{
match.initial_title = ".*chat-box.*";
move = "100%-820 512";
}
{
match.initial_title = ".*streamlabs.com.*";
opacity = "0.5 override";
}
{
match.initial_title = ".*streamlabs.com.*";
idle_inhibit = "focus";
}
{
match.initial_title = ".*streamlabs.com.*";
no_anim = true;
}
{
match.initial_title = ".*streamlabs.com.*";
decorate = false;
}
{
match.initial_title = ".*streamlabs.com.*";
no_shadow = true;
}
{
match.initial_title = ".*streamlabs.com.*";
no_blur = true;
}
{
match = {
class = "^vibe-typer$";
title = "^Recording Indicator$";
};
no_blur = true;
}
{
match = {
class = "^vibe-typer$";
title = "^Recording Indicator$";
};
no_shadow = true;
}
{
match = {
class = "^vibe-typer$";
title = "^Recording Indicator$";
};
no_anim = true;
}
{
match = {
class = "^vibe-typer$";
title = "^Recording Indicator$";
};
border_size = 0;
}
{
match = {
class = "^vibe-typer$";
title = "^Recording Indicator$";
};
no_focus = true;
}
{
match.xwayland = true;
border_color = "rgb(ffffff)";
}
]; ];
bindr = [ "bind" = [
]; # mainMod + return intentionally remains disabled from the previous config.
(mkBinding (modKey "t") (execExpr ''terminal .. " -e nu -c 'nitch; exec nu'"''))
bindm = [ (mkBinding (modKey "SHIFT + t") (execCmd "launch-timer"))
"$mainMod, mouse:272, movewindow" (mkBinding (modKey "n") (execExpr ''terminal .. " -e nvim"''))
"$mainMod, mouse:273, resizewindow" (mkBinding (modKey "z") (execCmd "uwsm app -- zeditor"))
(mkBinding (modKey "o") ''hl.dsp.window.set_prop({ prop = "opaque", value = "toggle" })'')
(mkBinding (modKey "r") (
execCmd ''hyprctl dispatch focuswindow "initialtitle:.*alert-box.*" && hyprctl dispatch moveactive exact 4300 102 && hyprctl dispatch focuswindow "initialtitle:.*chat-box.*" && hyprctl dispatch moveactive exact 4300 512''
))
(mkBinding (modKey "b") (execCmd "uwsm app -- thunar"))
(mkBinding (modKey "SHIFT + B") (execCmd "uwsm app -- vivaldi"))
(mkBinding (modKey "Escape") (execCmd "uwsm app -- dms ipc call powermenu toggle"))
(mkBinding (modKey "q") "hl.dsp.window.close()")
(mkBinding (modKey "M") "hl.dsp.exit()")
(mkBinding (modKey "F") "hl.dsp.window.fullscreen({})")
(mkBinding (modKey "SHIFT + V") ''hl.dsp.window.float({ action = "toggle" })'')
(mkBinding (modKey "D") (execCmd "uwsm app -- dms ipc call spotlight toggle"))
(mkBinding (modKey "V") (execCmd "uwsm app -- dms ipc call clipboard toggle"))
(mkBinding (modKey "C") (
execCmd "bash -c 'FILE=/tmp/screenshot_$(date +%s).png; grim -g \"$(slurp)\" \"$FILE\" && ksnip \"$FILE\"'"
))
(mkBinding (modKey "SHIFT + S") (execCmd "uwsm app -- rofi -show emoji"))
(mkBinding (modKey "P") (execCmd "uwsm app -- rofi-pass"))
(mkBinding (modKey "SHIFT + P") "hl.dsp.window.pseudo({})")
(mkBinding (modKey "R") (execCmd "stt-ptt start"))
(mkBinding (modKey "S") (execCmd "stt-ptt start"))
(mkBinding (modKey "h") ''hl.dsp.focus({ direction = "l" })'')
(mkBinding (modKey "l") ''hl.dsp.focus({ direction = "r" })'')
(mkBinding (modKey "k") ''hl.dsp.focus({ direction = "u" })'')
(mkBinding (modKey "j") ''hl.dsp.focus({ direction = "d" })'')
(mkBinding (modKey "1") (focusWorkspace "1"))
(mkBinding (modKey "2") (focusWorkspace "2"))
(mkBinding (modKey "3") (focusWorkspace "3"))
(mkBinding (modKey "4") (focusWorkspace "4"))
(mkBinding (modKey "5") (focusWorkspace "5"))
(mkBinding (modKey "6") (focusWorkspace "6"))
(mkBinding (modKey "7") (focusWorkspace "7"))
(mkBinding (modKey "8") (focusWorkspace "8"))
(mkBinding (modKey "9") (focusWorkspace "9"))
(mkBinding (modKey "0") (focusWorkspace "10"))
(mkBinding (modKey "SHIFT + 1") (moveToWorkspace "1"))
(mkBinding (modKey "SHIFT + 2") (moveToWorkspace "2"))
(mkBinding (modKey "SHIFT + 3") (moveToWorkspace "3"))
(mkBinding (modKey "SHIFT + 4") (moveToWorkspace "4"))
(mkBinding (modKey "SHIFT + 5") (moveToWorkspace "5"))
(mkBinding (modKey "SHIFT + 6") (moveToWorkspace "6"))
(mkBinding (modKey "SHIFT + 7") (moveToWorkspace "7"))
(mkBinding (modKey "SHIFT + 8") (moveToWorkspace "8"))
(mkBinding (modKey "SHIFT + 9") (moveToWorkspace "9"))
(mkBinding (modKey "SHIFT + 0") (moveToWorkspace "10"))
(mkBinding (modKey "mouse_down") (focusWorkspace "e+1"))
(mkBinding (modKey "mouse_up") (focusWorkspace "e-1"))
(mkBindingWithOptions (modKey "mouse:272") "hl.dsp.window.drag()" {mouse = true;})
(mkBindingWithOptions (modKey "mouse:273") "hl.dsp.window.resize()" {mouse = true;})
]; ];
}; };
}; };
@@ -26,6 +26,9 @@
mattpocock.skills = { mattpocock.skills = {
all = true; all = true;
}; };
okf.skills = {
all = true;
};
superpowers.skills = { superpowers.skills = {
all = true; all = true;
}; };
+17 -17
View File
@@ -29,52 +29,52 @@
programs.mcp = { programs.mcp = {
enable = true; enable = true;
servers = { servers = {
ContextMode = {
command = "bash";
args = ["-c" "exec bunx context-mode@latest"];
};
DeepWiki = { DeepWiki = {
url = "https://mcp.deepwiki.com/mcp"; url = "https://mcp.deepwiki.com/mcp";
}; };
Ref = {
command = "bash";
args = ["-c" "REF_API_KEY=$(cat /run/agenix/ref-key) exec bunx ref-tools-mcp@latest"];
};
Exa = { Exa = {
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 = {
url = "https://api.fireflies.ai/mcp";
};
Outline = { Outline = {
url = "https://wiki.az-gruppe.com/mcp"; url = "https://wiki.az-gruppe.com/mcp";
}; };
ContextMode = {
command = "bash";
args = ["-c" "exec bunx context-mode@latest"];
};
Honcho = {
command = "bash";
args = [
"-c"
''exec bunx mcp-remote@latest https://mcp.honcho.dev --header "Authorization:Bearer $(cat /run/agenix/honcho-key)" --header "X-Honcho-User-Name:m3tam3re"''
];
};
Playwright = { Playwright = {
command = "bash"; command = "bash";
args = ["-c" "exec bunx @playwright/mcp@latest"]; args = ["-c" "exec bunx @playwright/mcp@latest"];
}; };
Ref = {
command = "bash";
args = ["-c" "REF_API_KEY=$(cat /run/agenix/ref-key) exec bunx ref-tools-mcp@latest"];
};
Teams = {
command = "bunx";
args = ["-y" "@floriscornel/teams-mcp@latest"];
};
}; };
}; };
home.packages = with pkgs; [ home.packages = with pkgs; [
agenix-cli agenix-cli
agent-browser agent-browser
aionui
m3taHomeInputs.agent-lib.packages.${pkgs.stdenv.hostPlatform.system}.agent-lib-cli m3taHomeInputs.agent-lib.packages.${pkgs.stdenv.hostPlatform.system}.agent-lib-cli
beads beads
crunch crunch
docker-sbx
herdr herdr
pi-coding-agent pi-coding-agent
(qmd.override { (qmd.override {
vulkanSupport = videoDrivers == ["amdgpu"]; vulkanSupport = videoDrivers == ["amdgpu"];
cudaSupport = videoDrivers == ["nvidia"]; cudaSupport = videoDrivers == ["nvidia"];
}) })
# opencode-desktop opencode-desktop
openshell openshell
openspec openspec
openwork openwork
+5 -6
View File
@@ -194,8 +194,8 @@
output = 128000; output = 128000;
}; };
}; };
"gpt-5.3-codex" = { "gpt-5.6-sol" = {
name = "GPT-5.3 Codex"; name = "GPT-5.6 Sol";
limit = { limit = {
context = 400000; context = 400000;
output = 128000; output = 128000;
@@ -214,12 +214,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 = {
+6
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.146";
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;