feat: Add Opencode IDE with AI agents, Beads issue tracking, and STT/PTT
support - Integrate Opencode terminal IDE with MCP integrations (Ref, Exa, Outline) - Add Beads AI-native issue tracking system (.beads/ + AGENTS.md) - Implement STT/PTT (speech-to-text push-to-talk) with whisper-cpp-vulkan - Add coding feature module with dev tools (beads, alejandra, bun, devpod, nixd) - Create AZPILOGISTIKTEST host configuration - Refactor Hyprland windowrules to new match: syntax - Upgrade nixpkgs/home-manager from 25.05 to 25.11 - Update Ollama to use Vulkan acceleration - Add lmstudio, rofi-project-opener, and various app updates - Add outline-key secret and mem0 service configuration chore: Add Opencode IDE, Beads issue tracking, STT/PTT, and nixpkgs 25.11 upgrade
This commit is contained in:
39
.beads/.gitignore
vendored
Normal file
39
.beads/.gitignore
vendored
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
# SQLite databases
|
||||||
|
*.db
|
||||||
|
*.db?*
|
||||||
|
*.db-journal
|
||||||
|
*.db-wal
|
||||||
|
*.db-shm
|
||||||
|
|
||||||
|
# Daemon runtime files
|
||||||
|
daemon.lock
|
||||||
|
daemon.log
|
||||||
|
daemon.pid
|
||||||
|
bd.sock
|
||||||
|
sync-state.json
|
||||||
|
last-touched
|
||||||
|
|
||||||
|
# Local version tracking (prevents upgrade notification spam after git ops)
|
||||||
|
.local_version
|
||||||
|
|
||||||
|
# Legacy database files
|
||||||
|
db.sqlite
|
||||||
|
bd.db
|
||||||
|
|
||||||
|
# Worktree redirect file (contains relative path to main repo's .beads/)
|
||||||
|
# Must not be committed as paths would be wrong in other clones
|
||||||
|
redirect
|
||||||
|
|
||||||
|
# Merge artifacts (temporary files from 3-way merge)
|
||||||
|
beads.base.jsonl
|
||||||
|
beads.base.meta.json
|
||||||
|
beads.left.jsonl
|
||||||
|
beads.left.meta.json
|
||||||
|
beads.right.jsonl
|
||||||
|
beads.right.meta.json
|
||||||
|
|
||||||
|
# NOTE: Do NOT add negation patterns (e.g., !issues.jsonl) here.
|
||||||
|
# They would override fork protection in .git/info/exclude, allowing
|
||||||
|
# contributors to accidentally commit upstream issue databases.
|
||||||
|
# The JSONL files (issues.jsonl, interactions.jsonl) and config files
|
||||||
|
# are tracked by git by default since no pattern above ignores them.
|
||||||
81
.beads/README.md
Normal file
81
.beads/README.md
Normal file
@@ -0,0 +1,81 @@
|
|||||||
|
# Beads - AI-Native Issue Tracking
|
||||||
|
|
||||||
|
Welcome to Beads! This repository uses **Beads** for issue tracking - a modern, AI-native tool designed to live directly in your codebase alongside your code.
|
||||||
|
|
||||||
|
## What is Beads?
|
||||||
|
|
||||||
|
Beads is issue tracking that lives in your repo, making it perfect for AI coding agents and developers who want their issues close to their code. No web UI required - everything works through the CLI and integrates seamlessly with git.
|
||||||
|
|
||||||
|
**Learn more:** [github.com/steveyegge/beads](https://github.com/steveyegge/beads)
|
||||||
|
|
||||||
|
## Quick Start
|
||||||
|
|
||||||
|
### Essential Commands
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Create new issues
|
||||||
|
bd create "Add user authentication"
|
||||||
|
|
||||||
|
# View all issues
|
||||||
|
bd list
|
||||||
|
|
||||||
|
# View issue details
|
||||||
|
bd show <issue-id>
|
||||||
|
|
||||||
|
# Update issue status
|
||||||
|
bd update <issue-id> --status in_progress
|
||||||
|
bd update <issue-id> --status done
|
||||||
|
|
||||||
|
# Sync with git remote
|
||||||
|
bd sync
|
||||||
|
```
|
||||||
|
|
||||||
|
### Working with Issues
|
||||||
|
|
||||||
|
Issues in Beads are:
|
||||||
|
- **Git-native**: Stored in `.beads/issues.jsonl` and synced like code
|
||||||
|
- **AI-friendly**: CLI-first design works perfectly with AI coding agents
|
||||||
|
- **Branch-aware**: Issues can follow your branch workflow
|
||||||
|
- **Always in sync**: Auto-syncs with your commits
|
||||||
|
|
||||||
|
## Why Beads?
|
||||||
|
|
||||||
|
✨ **AI-Native Design**
|
||||||
|
- Built specifically for AI-assisted development workflows
|
||||||
|
- CLI-first interface works seamlessly with AI coding agents
|
||||||
|
- No context switching to web UIs
|
||||||
|
|
||||||
|
🚀 **Developer Focused**
|
||||||
|
- Issues live in your repo, right next to your code
|
||||||
|
- Works offline, syncs when you push
|
||||||
|
- Fast, lightweight, and stays out of your way
|
||||||
|
|
||||||
|
🔧 **Git Integration**
|
||||||
|
- Automatic sync with git commits
|
||||||
|
- Branch-aware issue tracking
|
||||||
|
- Intelligent JSONL merge resolution
|
||||||
|
|
||||||
|
## Get Started with Beads
|
||||||
|
|
||||||
|
Try Beads in your own projects:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Install Beads
|
||||||
|
curl -sSL https://raw.githubusercontent.com/steveyegge/beads/main/scripts/install.sh | bash
|
||||||
|
|
||||||
|
# Initialize in your repo
|
||||||
|
bd init
|
||||||
|
|
||||||
|
# Create your first issue
|
||||||
|
bd create "Try out Beads"
|
||||||
|
```
|
||||||
|
|
||||||
|
## Learn More
|
||||||
|
|
||||||
|
- **Documentation**: [github.com/steveyegge/beads/docs](https://github.com/steveyegge/beads/tree/main/docs)
|
||||||
|
- **Quick Start Guide**: Run `bd quickstart`
|
||||||
|
- **Examples**: [github.com/steveyegge/beads/examples](https://github.com/steveyegge/beads/tree/main/examples)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
*Beads: Issue tracking that moves at the speed of thought* ⚡
|
||||||
62
.beads/config.yaml
Normal file
62
.beads/config.yaml
Normal file
@@ -0,0 +1,62 @@
|
|||||||
|
# Beads Configuration File
|
||||||
|
# This file configures default behavior for all bd commands in this repository
|
||||||
|
# All settings can also be set via environment variables (BD_* prefix)
|
||||||
|
# or overridden with command-line flags
|
||||||
|
|
||||||
|
# Issue prefix for this repository (used by bd init)
|
||||||
|
# If not set, bd init will auto-detect from directory name
|
||||||
|
# Example: issue-prefix: "myproject" creates issues like "myproject-1", "myproject-2", etc.
|
||||||
|
# issue-prefix: ""
|
||||||
|
|
||||||
|
# Use no-db mode: load from JSONL, no SQLite, write back after each command
|
||||||
|
# When true, bd will use .beads/issues.jsonl as the source of truth
|
||||||
|
# instead of SQLite database
|
||||||
|
# no-db: false
|
||||||
|
|
||||||
|
# Disable daemon for RPC communication (forces direct database access)
|
||||||
|
# no-daemon: false
|
||||||
|
|
||||||
|
# Disable auto-flush of database to JSONL after mutations
|
||||||
|
# no-auto-flush: false
|
||||||
|
|
||||||
|
# Disable auto-import from JSONL when it's newer than database
|
||||||
|
# no-auto-import: false
|
||||||
|
|
||||||
|
# Enable JSON output by default
|
||||||
|
# json: false
|
||||||
|
|
||||||
|
# Default actor for audit trails (overridden by BD_ACTOR or --actor)
|
||||||
|
# actor: ""
|
||||||
|
|
||||||
|
# Path to database (overridden by BEADS_DB or --db)
|
||||||
|
# db: ""
|
||||||
|
|
||||||
|
# Auto-start daemon if not running (can also use BEADS_AUTO_START_DAEMON)
|
||||||
|
# auto-start-daemon: true
|
||||||
|
|
||||||
|
# Debounce interval for auto-flush (can also use BEADS_FLUSH_DEBOUNCE)
|
||||||
|
# flush-debounce: "5s"
|
||||||
|
|
||||||
|
# Git branch for beads commits (bd sync will commit to this branch)
|
||||||
|
# IMPORTANT: Set this for team projects so all clones use the same sync branch.
|
||||||
|
# This setting persists across clones (unlike database config which is gitignored).
|
||||||
|
# Can also use BEADS_SYNC_BRANCH env var for local override.
|
||||||
|
# If not set, bd sync will require you to run 'bd config set sync.branch <branch>'.
|
||||||
|
# sync-branch: "beads-sync"
|
||||||
|
|
||||||
|
# Multi-repo configuration (experimental - bd-307)
|
||||||
|
# Allows hydrating from multiple repositories and routing writes to the correct JSONL
|
||||||
|
# repos:
|
||||||
|
# primary: "." # Primary repo (where this database lives)
|
||||||
|
# additional: # Additional repos to hydrate from (read-only)
|
||||||
|
# - ~/beads-planning # Personal planning repo
|
||||||
|
# - ~/work-planning # Work planning repo
|
||||||
|
|
||||||
|
# Integration settings (access with 'bd config get/set')
|
||||||
|
# These are stored in the database, not in this file:
|
||||||
|
# - jira.url
|
||||||
|
# - jira.project
|
||||||
|
# - linear.url
|
||||||
|
# - linear.api-key
|
||||||
|
# - github.org
|
||||||
|
# - github.repo
|
||||||
0
.beads/interactions.jsonl
Normal file
0
.beads/interactions.jsonl
Normal file
1
.beads/issues.jsonl
Normal file
1
.beads/issues.jsonl
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{"id":"AZ-NIX-d9j","title":"Install outline-mcp-server for Outline knowledge base integration","description":"## Summary\nAdd the mcp-outline server to enable AI agents to interact with the AZ-Gruppe Outline wiki.\n\n## MCP Server Details\n- **PyPI package**: `mcp-outline`\n- **Repository**: https://github.com/Vortiago/mcp-outline\n- **License**: MIT\n- **Author**: Atle H. Havsø\n\n## Configuration\n- **OUTLINE_API_KEY**: API key from Outline (required)\n- **OUTLINE_API_URL**: `https://wiki.az-gruppe.com/api`\n- **OUTLINE_DISABLE_DELETE**: `true` (prevent accidental deletions)\n\n## Implementation\nAdd to `home/features/coding/opencode.nix`:\n\n```nix\nOutline = {\n type = \"local\";\n command = [\n \"sh\"\n \"-c\"\n \"OUTLINE_API_KEY=$(cat /run/agenix/outline-key) OUTLINE_API_URL=https://wiki.az-gruppe.com/api OUTLINE_DISABLE_DELETE=true exec uv tool run mcp-outline\"\n ];\n enabled = true;\n};\n```\n\n## Tasks\n1. Add agenix secret for OUTLINE_API_KEY\n2. Add MCP server config to opencode.nix","status":"closed","priority":2,"issue_type":"feature","created_at":"2026-01-08T08:28:21.68774325+01:00","created_by":"sascha.koenig","updated_at":"2026-01-08T08:50:49.963659214+01:00","closed_at":"2026-01-08T08:50:49.963659214+01:00","close_reason":"Complete. Added: (1) MCP config to opencode.nix, (2) AZLT124-L system key and outline-key.age entry to secrets.nix, (3) host secrets.nix for AZLT124-L. User needs to create secrets/outline-key.age with: agenix -e secrets/outline-key.age"}
|
||||||
4
.beads/metadata.json
Normal file
4
.beads/metadata.json
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
{
|
||||||
|
"database": "beads.db",
|
||||||
|
"jsonl_export": "issues.jsonl"
|
||||||
|
}
|
||||||
3
.gitattributes
vendored
Normal file
3
.gitattributes
vendored
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
|
||||||
|
# Use bd merge for beads JSONL files
|
||||||
|
.beads/issues.jsonl merge=beads
|
||||||
40
AGENTS.md
Normal file
40
AGENTS.md
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
# Agent Instructions
|
||||||
|
|
||||||
|
This project uses **bd** (beads) for issue tracking. Run `bd onboard` to get started.
|
||||||
|
|
||||||
|
## Quick Reference
|
||||||
|
|
||||||
|
```bash
|
||||||
|
bd ready # Find available work
|
||||||
|
bd show <id> # View issue details
|
||||||
|
bd update <id> --status in_progress # Claim work
|
||||||
|
bd close <id> # Complete work
|
||||||
|
bd sync # Sync with git
|
||||||
|
```
|
||||||
|
|
||||||
|
## Landing the Plane (Session Completion)
|
||||||
|
|
||||||
|
**When ending a work session**, you MUST complete ALL steps below. Work is NOT complete until `git push` succeeds.
|
||||||
|
|
||||||
|
**MANDATORY WORKFLOW:**
|
||||||
|
|
||||||
|
1. **File issues for remaining work** - Create issues for anything that needs follow-up
|
||||||
|
2. **Run quality gates** (if code changed) - Tests, linters, builds
|
||||||
|
3. **Update issue status** - Close finished work, update in-progress items
|
||||||
|
4. **PUSH TO REMOTE** - This is MANDATORY:
|
||||||
|
```bash
|
||||||
|
git pull --rebase
|
||||||
|
bd sync
|
||||||
|
git push
|
||||||
|
git status # MUST show "up to date with origin"
|
||||||
|
```
|
||||||
|
5. **Clean up** - Clear stashes, prune remote branches
|
||||||
|
6. **Verify** - All changes committed AND pushed
|
||||||
|
7. **Hand off** - Provide context for next session
|
||||||
|
|
||||||
|
**CRITICAL RULES:**
|
||||||
|
- Work is NOT complete until `git push` succeeds
|
||||||
|
- NEVER stop before pushing - that leaves work stranded locally
|
||||||
|
- NEVER say "ready to push when you are" - YOU must push
|
||||||
|
- If push fails, resolve and retry until it succeeds
|
||||||
|
|
||||||
107
flake.lock
generated
107
flake.lock
generated
@@ -21,6 +21,22 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"agents": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1768312204,
|
||||||
|
"narHash": "sha256-wB1pEROaXzJzxCaJwOyXmD0gq8/hv7OeEw3jNXrPwAc=",
|
||||||
|
"ref": "refs/heads/master",
|
||||||
|
"rev": "cfa0f8f942545434a825fedf0a49061d26fff73d",
|
||||||
|
"revCount": 9,
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://code.m3ta.dev/m3tam3re/AGENTS"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://code.m3ta.dev/m3tam3re/AGENTS"
|
||||||
|
}
|
||||||
|
},
|
||||||
"base16-schemes": {
|
"base16-schemes": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
@@ -46,11 +62,11 @@
|
|||||||
"systems": "systems_3"
|
"systems": "systems_3"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1763308703,
|
"lastModified": 1767386128,
|
||||||
"narHash": "sha256-O9Y+Wer8wOh+N+4kcCK5p/VLrXyX+ktk0/s3HdZvJzk=",
|
"narHash": "sha256-BJDu7dIMauO2nYRSL4aI8wDNtEm2KOb7lDKP3hxdrpo=",
|
||||||
"owner": "numtide",
|
"owner": "numtide",
|
||||||
"repo": "blueprint",
|
"repo": "blueprint",
|
||||||
"rev": "5a9bba070f801d63e2af3c9ef00b86b212429f4f",
|
"rev": "0ed984d51a3031065925ab08812a5434f40b93d4",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -88,11 +104,11 @@
|
|||||||
"utils": "utils"
|
"utils": "utils"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1762286984,
|
"lastModified": 1766051518,
|
||||||
"narHash": "sha256-9I2H9x5We6Pl+DBYHjR1s3UT8wgwcpAH03kn9CqtdQc=",
|
"narHash": "sha256-znKOwPXQnt3o7lDb3hdf19oDo0BLP4MfBOYiWkEHoik=",
|
||||||
"owner": "serokell",
|
"owner": "serokell",
|
||||||
"repo": "deploy-rs",
|
"repo": "deploy-rs",
|
||||||
"rev": "9c870f63e28ec1e83305f7f6cb73c941e699f74f",
|
"rev": "d5eff7f948535b9c723d60cd8239f8f11ddc90fa",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -108,11 +124,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1764350888,
|
"lastModified": 1766150702,
|
||||||
"narHash": "sha256-6Rp18zavTlnlZzcoLoBTJMBahL2FycVkw2rAEs3cQvo=",
|
"narHash": "sha256-P0kM+5o+DKnB6raXgFEk3azw8Wqg5FL6wyl9jD+G5a4=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "disko",
|
"repo": "disko",
|
||||||
"rev": "2055a08fd0e2fd41318279a5355eb8a161accf26",
|
"rev": "916506443ecd0d0b4a0f4cf9d40a3c22ce39b378",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -229,11 +245,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1764544324,
|
"lastModified": 1768366276,
|
||||||
"narHash": "sha256-GVBGjO7UsmzLrlOJV8NlKSxukHaHencrJqWkCA6FkqI=",
|
"narHash": "sha256-NUdsaB6H1wvbOC7oh1UZ7Ojg1I+mYBQv8ovlMB6FbHk=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "e4e25a8c310fa45f2a8339c7972dc43d2845a612",
|
"rev": "4e235a8746b195e335306d898f0cc93ad6c4564c",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -250,16 +266,16 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1763992789,
|
"lastModified": 1767910483,
|
||||||
"narHash": "sha256-WHkdBlw6oyxXIra/vQPYLtqY+3G8dUVZM8bEXk0t8x4=",
|
"narHash": "sha256-MOU5YdVu4DVwuT5ztXgQpPuRRBjSjUGIdUzOQr9iQOY=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "44831a7eaba4360fb81f2acc5ea6de5fde90aaa3",
|
"rev": "82fb7dedaad83e5e279127a38ef410bcfac6d77c",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"ref": "release-25.05",
|
"ref": "release-25.11",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
@@ -269,11 +285,11 @@
|
|||||||
"nixpkgs": "nixpkgs_3"
|
"nixpkgs": "nixpkgs_3"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1760467504,
|
"lastModified": 1768334942,
|
||||||
"narHash": "sha256-KzUZPZxIF6FmQW/Zpt8NtbPQ4lnkj/jdBYqBw5xE1L0=",
|
"narHash": "sha256-Fh+pDmT20IKW6j6vwckPkSV+41M1HHlCGAkDRQZpMjE=",
|
||||||
"ref": "refs/heads/master",
|
"ref": "refs/heads/master",
|
||||||
"rev": "a5f30c83b37d3171d5a8c1d2daf2c46829e04803",
|
"rev": "42d94876d843a54be21fff04f4414dac2a4907ab",
|
||||||
"revCount": 9,
|
"revCount": 39,
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://code.m3ta.dev/m3tam3re/nixpkgs"
|
"url": "https://code.m3ta.dev/m3tam3re/nixpkgs"
|
||||||
},
|
},
|
||||||
@@ -289,11 +305,11 @@
|
|||||||
"treefmt-nix": "treefmt-nix"
|
"treefmt-nix": "treefmt-nix"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1764557939,
|
"lastModified": 1768370489,
|
||||||
"narHash": "sha256-vUUR0jQE8AsrJWzzNIt6lSnE+R4f3n2MXAG9ZNXPO6k=",
|
"narHash": "sha256-/tZo3ePuv6gbJ+OUAtn/vIL/NHwXmVdmTqwpRKKYuW4=",
|
||||||
"owner": "numtide",
|
"owner": "numtide",
|
||||||
"repo": "nix-ai-tools",
|
"repo": "nix-ai-tools",
|
||||||
"rev": "eba89074f26014d7bf4ff0c8e83b80a2f0c1f2f1",
|
"rev": "41130668102a77795069d950e001926dd7542c99",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -355,11 +371,11 @@
|
|||||||
"treefmt-nix": "treefmt-nix_2"
|
"treefmt-nix": "treefmt-nix_2"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1763045507,
|
"lastModified": 1766503044,
|
||||||
"narHash": "sha256-61zO8zsFE8C104hCTv04z6a4H8U03OEMrRAXtGsszkE=",
|
"narHash": "sha256-DdJ0OIngRjekqXJauSQ8y9vyDO24dX8v7DiaWmxk7PU=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "nixos-anywhere",
|
"repo": "nixos-anywhere",
|
||||||
"rev": "bad98b0685cf47eaeadcaf6787da8b51cf025693",
|
"rev": "e86fad431cf9161ca39747972bd255897572dc3b",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -442,11 +458,11 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs-unstable": {
|
"nixpkgs-unstable": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1764517877,
|
"lastModified": 1768127708,
|
||||||
"narHash": "sha256-pp3uT4hHijIC8JUK5MEqeAWmParJrgBVzHLNfJDZxg4=",
|
"narHash": "sha256-1Sm77VfZh3mU0F5OqKABNLWxOuDeHIlcFjsXeeiPazs=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "2d293cbfa5a793b4c50d17c05ef9e385b90edf6c",
|
"rev": "ffbc9f8cbaacfb331b6017d5a5abb21a492c9a38",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -474,11 +490,11 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs_3": {
|
"nixpkgs_3": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1759381078,
|
"lastModified": 1768127708,
|
||||||
"narHash": "sha256-gTrEEp5gEspIcCOx9PD8kMaF1iEmfBcTbO0Jag2QhQs=",
|
"narHash": "sha256-1Sm77VfZh3mU0F5OqKABNLWxOuDeHIlcFjsXeeiPazs=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "7df7ff7d8e00218376575f0acdcc5d66741351ee",
|
"rev": "ffbc9f8cbaacfb331b6017d5a5abb21a492c9a38",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -490,11 +506,11 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs_4": {
|
"nixpkgs_4": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1764527385,
|
"lastModified": 1768302833,
|
||||||
"narHash": "sha256-nA5ywiGKl76atrbdZ5Aucd8SjF/v8ew9b9QsC+MKL14=",
|
"narHash": "sha256-h5bRFy9bco+8QcK7rGoOiqMxMbmn21moTACofNLRMP4=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "23258e03aaa49b3a68597e3e50eb0cbce7e42e9d",
|
"rev": "61db79b0c6b838d9894923920b612048e1201926",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -506,16 +522,16 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs_5": {
|
"nixpkgs_5": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1764316264,
|
"lastModified": 1768242861,
|
||||||
"narHash": "sha256-82L+EJU+40+FIdeG4gmUlOF1jeSwlf2AwMarrpdHF6o=",
|
"narHash": "sha256-F4IIxa5xDHjtrmMcayM8lHctUq1oGltfBQu2+oqDWP4=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "9a7b80b6f82a71ea04270d7ba11b48855681c4b0",
|
"rev": "1327e798cb055f96f92685df444e9a2c326ab5ed",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"ref": "nixos-25.05",
|
"ref": "nixos-25.11",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
@@ -528,11 +544,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1764568551,
|
"lastModified": 1768380127,
|
||||||
"narHash": "sha256-Qpuk/n9JTUdBCIxK0qcGU1gT3INT+CCe+h1Y91o+Ud0=",
|
"narHash": "sha256-c026Qn/mDygVsEXxmDY9RYozdAAenaR5G/v1qNtwG4M=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "NUR",
|
"repo": "NUR",
|
||||||
"rev": "30c32ec8e715f1e73eb9d51a62126dda75050a71",
|
"rev": "dfea818ef57dc9c4035369f1839d20681ea01d47",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -544,6 +560,7 @@
|
|||||||
"root": {
|
"root": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"agenix": "agenix",
|
"agenix": "agenix",
|
||||||
|
"agents": "agents",
|
||||||
"deploy-rs": "deploy-rs",
|
"deploy-rs": "deploy-rs",
|
||||||
"disko": "disko",
|
"disko": "disko",
|
||||||
"home-manager": "home-manager_2",
|
"home-manager": "home-manager_2",
|
||||||
@@ -610,11 +627,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1762938485,
|
"lastModified": 1768158989,
|
||||||
"narHash": "sha256-AlEObg0syDl+Spi4LsZIBrjw+snSVU4T8MOeuZJUJjM=",
|
"narHash": "sha256-67vyT1+xClLldnumAzCTBvU0jLZ1YBcf4vANRWP3+Ak=",
|
||||||
"owner": "numtide",
|
"owner": "numtide",
|
||||||
"repo": "treefmt-nix",
|
"repo": "treefmt-nix",
|
||||||
"rev": "5b4ee75aeefd1e2d5a1cc43cf6ba65eba75e83e4",
|
"rev": "e96d59dff5c0d7fddb9d113ba108f03c3ef99eca",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|||||||
18
flake.nix
18
flake.nix
@@ -12,14 +12,14 @@
|
|||||||
|
|
||||||
inputs = {
|
inputs = {
|
||||||
home-manager = {
|
home-manager = {
|
||||||
url = "github:nix-community/home-manager/release-25.05";
|
url = "github:nix-community/home-manager/release-25.11";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
home-manager-unstable = {
|
home-manager-unstable = {
|
||||||
url = "github:nix-community/home-manager/master";
|
url = "github:nix-community/home-manager/master";
|
||||||
inputs.nixpkgs.follows = "nixpkgs-unstable";
|
inputs.nixpkgs.follows = "nixpkgs-unstable";
|
||||||
};
|
};
|
||||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-25.05";
|
nixpkgs.url = "github:nixos/nixpkgs/nixos-25.11";
|
||||||
nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable";
|
nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable";
|
||||||
|
|
||||||
m3ta-nixpkgs.url = "git+https://code.m3ta.dev/m3tam3re/nixpkgs";
|
m3ta-nixpkgs.url = "git+https://code.m3ta.dev/m3tam3re/nixpkgs";
|
||||||
@@ -45,6 +45,12 @@
|
|||||||
|
|
||||||
nix-colors.url = "github:misterio77/nix-colors";
|
nix-colors.url = "github:misterio77/nix-colors";
|
||||||
nix-ai-tools.url = "github:numtide/nix-ai-tools";
|
nix-ai-tools.url = "github:numtide/nix-ai-tools";
|
||||||
|
|
||||||
|
agents = {
|
||||||
|
# url = "path:/home/m3tam3re/p/MISC/AGENTS";
|
||||||
|
url = "git+https://code.m3ta.dev/m3tam3re/AGENTS";
|
||||||
|
flake = false;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = {
|
outputs = {
|
||||||
@@ -166,6 +172,14 @@
|
|||||||
};
|
};
|
||||||
modules = [./home/logistik/AZPILOGISTIK05.nix];
|
modules = [./home/logistik/AZPILOGISTIK05.nix];
|
||||||
};
|
};
|
||||||
|
"logistik@AZPILOGISTIKTEST" = home-manager.lib.homeManagerConfiguration {
|
||||||
|
pkgs = nixpkgs.legacyPackages."aarch64-linux";
|
||||||
|
extraSpecialArgs = {
|
||||||
|
inherit inputs outputs;
|
||||||
|
hostname = "AZPILOGISTIKTEST";
|
||||||
|
};
|
||||||
|
modules = [./home/logistik/AZPILOGISTIKTEST.nix];
|
||||||
|
};
|
||||||
};
|
};
|
||||||
deploy.nodes = {
|
deploy.nodes = {
|
||||||
AZ-CLD-1 = {
|
AZ-CLD-1 = {
|
||||||
|
|||||||
@@ -9,6 +9,13 @@
|
|||||||
./zellij.nix
|
./zellij.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
|
cli.stt-ptt = {
|
||||||
|
enable = true;
|
||||||
|
whisperPackage = pkgs.whisper-cpp-vulkan;
|
||||||
|
model = "ggml-large-v3-turbo";
|
||||||
|
notifyTimeout = 2000;
|
||||||
|
};
|
||||||
|
|
||||||
programs.carapace = {
|
programs.carapace = {
|
||||||
enable = true;
|
enable = true;
|
||||||
enableFishIntegration = true;
|
enableFishIntegration = true;
|
||||||
|
|||||||
@@ -25,7 +25,8 @@ in {
|
|||||||
$env.XDG_DATA_HOME = $"($env.HOME)/.local/share"
|
$env.XDG_DATA_HOME = $"($env.HOME)/.local/share"
|
||||||
$env.FZF_DEFAULT_COMMAND = "fd --type f --exclude .git --follow --hidden"
|
$env.FZF_DEFAULT_COMMAND = "fd --type f --exclude .git --follow --hidden"
|
||||||
$env.SSH_AUTH_SOCK = "/run/user/1000/gnupg/S.gpg-agent.ssh"
|
$env.SSH_AUTH_SOCK = "/run/user/1000/gnupg/S.gpg-agent.ssh"
|
||||||
$env.FLAKE = $"($env.HOME)/p/nixos/nixos-config"
|
$env.PATH = ($env.PATH | split row (char esep) | append "/home/sascha.koenig/.cache/.bun/bin" | uniq)
|
||||||
|
$env.FLAKE = $"($env.HOME)/p/NIX/nixos-config"
|
||||||
#source /run/agenix/${config.home.username}-secrets
|
#source /run/agenix/${config.home.username}-secrets
|
||||||
'';
|
'';
|
||||||
# if (tty) == "/dev/tty1" {
|
# if (tty) == "/dev/tty1" {
|
||||||
|
|||||||
28
home/features/coding/default.nix
Normal file
28
home/features/coding/default.nix
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
{pkgs, ...}: {
|
||||||
|
imports = [
|
||||||
|
./opencode.nix
|
||||||
|
];
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
agenix-cli
|
||||||
|
alejandra
|
||||||
|
beads
|
||||||
|
bc
|
||||||
|
bun
|
||||||
|
devpod
|
||||||
|
#devpod-desktop
|
||||||
|
(python3.withPackages (ps:
|
||||||
|
with ps; [
|
||||||
|
pip
|
||||||
|
uv
|
||||||
|
# Scientific packages
|
||||||
|
numba
|
||||||
|
numpy
|
||||||
|
torch
|
||||||
|
srt
|
||||||
|
]))
|
||||||
|
pyrefly
|
||||||
|
nixd
|
||||||
|
tailwindcss
|
||||||
|
tailwindcss-language-server
|
||||||
|
];
|
||||||
|
}
|
||||||
186
home/features/coding/opencode.nix
Normal file
186
home/features/coding/opencode.nix
Normal file
@@ -0,0 +1,186 @@
|
|||||||
|
{inputs, ...}: {
|
||||||
|
xdg.configFile = {
|
||||||
|
"opencode/command" = {
|
||||||
|
source = "${inputs.agents}/command";
|
||||||
|
recursive = true;
|
||||||
|
};
|
||||||
|
"opencode/context" = {
|
||||||
|
source = "${inputs.agents}/context";
|
||||||
|
recursive = true;
|
||||||
|
};
|
||||||
|
"opencode/prompts" = {
|
||||||
|
source = "${inputs.agents}/prompts";
|
||||||
|
recursive = true;
|
||||||
|
};
|
||||||
|
"opencode/skill" = {
|
||||||
|
source = "${inputs.agents}/skill";
|
||||||
|
recursive = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
programs.opencode = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
theme = "opencode";
|
||||||
|
plugin = ["oh-my-opencode" "opencode-beads" "opencode-anthropic-auth"];
|
||||||
|
agent = builtins.fromJSON (builtins.readFile "${inputs.agents}/agent/agents.json");
|
||||||
|
formatter = {
|
||||||
|
alejandra = {
|
||||||
|
command = ["alejandra" "-q" "-"];
|
||||||
|
extensions = [".nix"];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
mcp = {
|
||||||
|
Ref = {
|
||||||
|
type = "local";
|
||||||
|
command = [
|
||||||
|
"sh"
|
||||||
|
"-c"
|
||||||
|
"REF_API_KEY=$(cat /run/agenix/ref-key) exec bunx ref-tools-mcp@latest"
|
||||||
|
];
|
||||||
|
enabled = true;
|
||||||
|
};
|
||||||
|
Exa = {
|
||||||
|
type = "local";
|
||||||
|
command = [
|
||||||
|
"sh"
|
||||||
|
"-c"
|
||||||
|
"EXA_API_KEY=$(cat /run/agenix/exa-key) exec bunx exa-mcp-server@latest tools=web_search_exa"
|
||||||
|
];
|
||||||
|
enabled = true;
|
||||||
|
};
|
||||||
|
Outline = {
|
||||||
|
type = "local";
|
||||||
|
command = [
|
||||||
|
"sh"
|
||||||
|
"-c"
|
||||||
|
"OUTLINE_API_KEY=$(cat /run/agenix/outline-key) OUTLINE_API_URL=https://wiki.az-gruppe.com/api OUTLINE_DISABLE_DELETE=true exec uv tool run mcp-outline"
|
||||||
|
];
|
||||||
|
enabled = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
home.file.".config/opencode/oh-my-opencode.json".text = builtins.toJSON {
|
||||||
|
"$schema" = "https://raw.githubusercontent.com/code-yeongyu/oh-my-opencode/master/assets/oh-my-opencode.schema.json";
|
||||||
|
agents = {
|
||||||
|
Sisyphus = {
|
||||||
|
model = "anthropic/claude-opus-4-5";
|
||||||
|
permission = {
|
||||||
|
edit = "allow";
|
||||||
|
bash = {
|
||||||
|
"*" = "allow";
|
||||||
|
"rm *" = "ask";
|
||||||
|
"rmdir *" = "ask";
|
||||||
|
"mv *" = "ask";
|
||||||
|
"chmod *" = "ask";
|
||||||
|
"chown *" = "ask";
|
||||||
|
"git *" = "ask";
|
||||||
|
"git status*" = "allow";
|
||||||
|
"git log*" = "allow";
|
||||||
|
"git diff*" = "allow";
|
||||||
|
"git branch*" = "allow";
|
||||||
|
"git show*" = "allow";
|
||||||
|
"git stash list*" = "allow";
|
||||||
|
"git remote -v" = "allow";
|
||||||
|
"git add *" = "allow";
|
||||||
|
"git commit *" = "allow";
|
||||||
|
"jj *" = "ask";
|
||||||
|
"jj status" = "allow";
|
||||||
|
"jj log*" = "allow";
|
||||||
|
"jj diff*" = "allow";
|
||||||
|
"jj show*" = "allow";
|
||||||
|
"npm *" = "ask";
|
||||||
|
"npx *" = "ask";
|
||||||
|
"bun *" = "ask";
|
||||||
|
"bunx *" = "ask";
|
||||||
|
"uv *" = "ask";
|
||||||
|
"pip *" = "ask";
|
||||||
|
"pip3 *" = "ask";
|
||||||
|
"yarn *" = "ask";
|
||||||
|
"pnpm *" = "ask";
|
||||||
|
"cargo *" = "ask";
|
||||||
|
"go *" = "ask";
|
||||||
|
"make *" = "ask";
|
||||||
|
"dd *" = "deny";
|
||||||
|
"mkfs*" = "deny";
|
||||||
|
"fdisk *" = "deny";
|
||||||
|
"parted *" = "deny";
|
||||||
|
"eval *" = "deny";
|
||||||
|
"source *" = "deny";
|
||||||
|
"curl *|*sh" = "deny";
|
||||||
|
"wget *|*sh" = "deny";
|
||||||
|
"sudo *" = "deny";
|
||||||
|
"su *" = "deny";
|
||||||
|
"systemctl *" = "deny";
|
||||||
|
"service *" = "deny";
|
||||||
|
"shutdown *" = "deny";
|
||||||
|
"reboot*" = "deny";
|
||||||
|
"init *" = "deny";
|
||||||
|
"> /dev/*" = "deny";
|
||||||
|
"cat * > /dev/*" = "deny";
|
||||||
|
};
|
||||||
|
external_directory = "ask";
|
||||||
|
doom_loop = "ask";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
librarian = {
|
||||||
|
model = "anthropic/claude-sonnet-4-5";
|
||||||
|
permission = {
|
||||||
|
edit = "deny";
|
||||||
|
bash = "deny";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
explore = {
|
||||||
|
model = "opencode/big-pickle";
|
||||||
|
permission = {
|
||||||
|
edit = "deny";
|
||||||
|
bash = "deny";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
oracle = {
|
||||||
|
model = "anthropic/claude-sonnet-4-5";
|
||||||
|
permission = {
|
||||||
|
edit = "deny";
|
||||||
|
bash = "deny";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
frontend-ui-ux-engineer = {
|
||||||
|
model = "anthropic/claude-opus-4-5";
|
||||||
|
permission = {
|
||||||
|
edit = "allow";
|
||||||
|
bash = {
|
||||||
|
"*" = "ask";
|
||||||
|
"npm *" = "ask";
|
||||||
|
"npx *" = "ask";
|
||||||
|
"bun *" = "ask";
|
||||||
|
"bunx *" = "ask";
|
||||||
|
"rm *" = "ask";
|
||||||
|
"mv *" = "ask";
|
||||||
|
"dd *" = "deny";
|
||||||
|
"mkfs*" = "deny";
|
||||||
|
"sudo *" = "deny";
|
||||||
|
"curl *|*sh" = "deny";
|
||||||
|
"wget *|*sh" = "deny";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
document-writer = {
|
||||||
|
model = "anthropic/claude-opus-4-5";
|
||||||
|
permission = {
|
||||||
|
edit = "allow";
|
||||||
|
bash = "deny";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
multimodal-looker = {
|
||||||
|
model = "anthropic/claude-opus-4-5";
|
||||||
|
permission = {
|
||||||
|
edit = "deny";
|
||||||
|
bash = "deny";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
disabled_mcps = ["context7" "websearch"];
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -14,9 +14,10 @@ in {
|
|||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
nur.repos.charmbracelet.crush
|
nur.repos.charmbracelet.crush
|
||||||
bruno
|
bruno
|
||||||
|
bun
|
||||||
filezilla
|
filezilla
|
||||||
insomnia
|
insomnia
|
||||||
opencode
|
nodejs
|
||||||
];
|
];
|
||||||
|
|
||||||
programs.zed-editor = {
|
programs.zed-editor = {
|
||||||
|
|||||||
@@ -48,7 +48,7 @@
|
|||||||
XDG_SESSION_TYPE = "wayland";
|
XDG_SESSION_TYPE = "wayland";
|
||||||
XDG_SESSION_DESKTOP = "Hyprland";
|
XDG_SESSION_DESKTOP = "Hyprland";
|
||||||
};
|
};
|
||||||
home.sessionPath = ["\${XDG_BIN_HOME}" "\${HOME}/.cargo/bin" "$HOME/.npm-global/bin"];
|
home.sessionPath = ["\${XDG_BIN_HOME}" "\${HOME}/.cargo/bin" "$HOME/.npm-global/bin" "$HOME/.cache/.bun/bin"];
|
||||||
|
|
||||||
fonts.fontconfig.enable = true;
|
fonts.fontconfig.enable = true;
|
||||||
|
|
||||||
@@ -96,6 +96,7 @@
|
|||||||
hyprpaper-random
|
hyprpaper-random
|
||||||
hyprpanel
|
hyprpanel
|
||||||
launch-webapp
|
launch-webapp
|
||||||
|
lmstudio
|
||||||
rustdesk
|
rustdesk
|
||||||
seahorse
|
seahorse
|
||||||
sushi
|
sushi
|
||||||
|
|||||||
@@ -11,33 +11,6 @@ in {
|
|||||||
mkEnableOption "Hyprland related stuff";
|
mkEnableOption "Hyprland related stuff";
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
home.file.".config/hypr/colors.conf".text = ''
|
|
||||||
$background = rgb(282A36)
|
|
||||||
$backgroundRaw = 282A36
|
|
||||||
$foreground = rgb(F8F8F2)
|
|
||||||
$foregroundRaw = F8F8F2
|
|
||||||
$selection = rgb(44475A)
|
|
||||||
$selectionRaw = 44475A
|
|
||||||
$comment = rgb(6272A4)
|
|
||||||
$commentRaw = 6272A4
|
|
||||||
$red = rgb(FF5555)
|
|
||||||
$redRaw = FF5555
|
|
||||||
$orange = rgb(FFB86C)
|
|
||||||
$orangeRaw = FFB86C
|
|
||||||
$yellow = rgb(F1FA8C)
|
|
||||||
$yellowRaw = F1FA8C
|
|
||||||
$green = rgb(50FA7B)
|
|
||||||
$greenRaw = 50FA7B
|
|
||||||
$purple = rgb(BD93F9)
|
|
||||||
$purpleRaw = BD93F9
|
|
||||||
$cyan = rgb(8BE9FD)
|
|
||||||
$cyanRaw = 8BE9FD
|
|
||||||
$pink = rgb(FF79C6)
|
|
||||||
$pinkRaw = FF79C6
|
|
||||||
$accent = $purple
|
|
||||||
$accentRaw = $purpleRaw
|
|
||||||
'';
|
|
||||||
|
|
||||||
wayland.windowManager.hyprland = {
|
wayland.windowManager.hyprland = {
|
||||||
settings = {
|
settings = {
|
||||||
xwayland = {
|
xwayland = {
|
||||||
@@ -46,8 +19,7 @@ in {
|
|||||||
|
|
||||||
exec-once = [
|
exec-once = [
|
||||||
"hyprpanel"
|
"hyprpanel"
|
||||||
"hyprpaper-random"
|
"while ! hyprpaper-random; do sleep 0.5; done"
|
||||||
"hypridle"
|
|
||||||
"wl-paste --type text --watch cliphist store" # Stores only text data
|
"wl-paste --type text --watch cliphist store" # Stores only text data
|
||||||
"wl-paste --type image --watch cliphist store" # Stores only image data "wl-paste -p -t text --watch clipman store -P --histpath=\"~/.local/share/clipman-primary.json\""
|
"wl-paste --type image --watch cliphist store" # Stores only image data "wl-paste -p -t text --watch clipman store -P --histpath=\"~/.local/share/clipman-primary.json\""
|
||||||
];
|
];
|
||||||
@@ -86,7 +58,6 @@ in {
|
|||||||
"col.inactive_border" = "rgba(44475aaa)";
|
"col.inactive_border" = "rgba(44475aaa)";
|
||||||
"col.nogroup_border" = "rgba(282a36dd)";
|
"col.nogroup_border" = "rgba(282a36dd)";
|
||||||
"col.nogroup_border_active" = "rgb(bd93f9) rgb(44475a) 90deg";
|
"col.nogroup_border_active" = "rgb(bd93f9) rgb(44475a) 90deg";
|
||||||
no_border_on_floating = false;
|
|
||||||
layout = "dwindle";
|
layout = "dwindle";
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -95,7 +66,7 @@ in {
|
|||||||
enabled = true;
|
enabled = true;
|
||||||
range = 60;
|
range = 60;
|
||||||
render_power = 3;
|
render_power = 3;
|
||||||
color = "rgba(1E202966)";
|
color = "rgba(${config.colorScheme.palette.base00}66)";
|
||||||
offset = "1 2";
|
offset = "1 2";
|
||||||
scale = 0.97;
|
scale = 0.97;
|
||||||
};
|
};
|
||||||
@@ -146,49 +117,38 @@ in {
|
|||||||
}
|
}
|
||||||
];
|
];
|
||||||
windowrule = [
|
windowrule = [
|
||||||
"float, class:file_progress"
|
# Floating dialogs
|
||||||
"float, class:confirm"
|
"match:class file_progress, float on"
|
||||||
"float, class:dialog"
|
"match:class confirm, float on"
|
||||||
"float, class:download"
|
"match:class dialog, float on"
|
||||||
"float, class:notification"
|
"match:class download, float on"
|
||||||
"float, class:error"
|
"match:class notification, float on"
|
||||||
"float, class:splash"
|
"match:class error, float on"
|
||||||
"float, class:confirmreset"
|
"match:class splash, float on"
|
||||||
"float, title:Open File"
|
"match:class confirmreset, float on"
|
||||||
"float, title:branchdialog"
|
"match:title Open File, float on"
|
||||||
"float, class:pavucontrol-qt"
|
"match:title branchdialog, float on"
|
||||||
"float, class:pavucontrol"
|
"match:class pavucontrol-qt, float on"
|
||||||
"fullscreen, class:wlogout"
|
"match:class pavucontrol, float on"
|
||||||
"float, title:wlogout"
|
# wlogout
|
||||||
"fullscreen, title:wlogout"
|
"match:class wlogout, fullscreen on"
|
||||||
"float, class:mpv"
|
"match:title wlogout, float on"
|
||||||
"idleinhibit focus, class:mpv"
|
"match:title wlogout, fullscreen on"
|
||||||
"opacity 1.0 override, class:mpv"
|
# mpv
|
||||||
"float, title:^(Media viewer)$"
|
"match:class mpv, float on"
|
||||||
"float, title:^(Volume Control)$"
|
"match:class mpv, idle_inhibit focus"
|
||||||
"float, title:^(Picture-in-Picture)$"
|
"match:class mpv, opacity 1.0 override"
|
||||||
"float,title:^(floating-pomodoro)$"
|
# Media/Volume/PiP
|
||||||
"size 250 50, title:^(floating-pomodoro)$"
|
"match:title ^(Media viewer)$, float on"
|
||||||
"move 12 100%-150,title:^(floating-pomodoro)$"
|
"match:title ^(Volume Control)$, float on"
|
||||||
"pin,title:^(floating-pomodoro)$"
|
"match:title ^(Picture-in-Picture)$, float on"
|
||||||
"float, initialTitle:.*streamlabs.com.*"
|
# Pomodoro timer
|
||||||
"pin, initialTitle:.*streamlabs.com.*"
|
"match:title ^(floating-pomodoro)$, float on"
|
||||||
"size 800 400, initialTitle:.*streamlabs.com.*"
|
"match:title ^(floating-pomodoro)$, size 250 50"
|
||||||
"move 100%-820 102, initialTitle:.*alert-box.*"
|
"match:title ^(floating-pomodoro)$, move 12 (monitor_h-150)"
|
||||||
"move 100%-820 512, initialTitle:.*chat-box.*"
|
"match:title ^(floating-pomodoro)$, pin on"
|
||||||
"opacity 0.5 override, initialTitle:.*streamlabs.com.*"
|
"match:initial_title .*streamlabs.com.*, no_blur on"
|
||||||
"idleinhibit focus, initialTitle:.*streamlabs.com.*"
|
"border_color rgb(ffffff), match:xwayland 1"
|
||||||
"noanim, initialTitle:.*streamlabs.com.*"
|
|
||||||
"noborder, initialTitle:.*streamlabs.com.*"
|
|
||||||
"noshadow, initialTitle:.*streamlabs.com.*"
|
|
||||||
"noblur, initialTitle:.*streamlabs.com.*"
|
|
||||||
"bordercolor rgb(ffffff),xwayland:1"
|
|
||||||
"opacity 0.0 override, class:^(xwaylandvideobridge)$"
|
|
||||||
"noanim, class:^(xwaylandvideobridge)$"
|
|
||||||
"noinitialfocus, class:^(xwaylandvideobridge)$"
|
|
||||||
"maxsize 1 1, class:^(xwaylandvideobridge)$"
|
|
||||||
"noblur, class:^(xwaylandvideobridge)$"
|
|
||||||
"nofocus, class:^(xwaylandvideobridge)$"
|
|
||||||
];
|
];
|
||||||
|
|
||||||
"$mainMod" = "SUPER";
|
"$mainMod" = "SUPER";
|
||||||
@@ -200,8 +160,9 @@ in {
|
|||||||
"$mainMod, t, exec, $terminal -e nu -c 'nitch; exec nu'"
|
"$mainMod, t, exec, $terminal -e nu -c 'nitch; exec nu'"
|
||||||
"$mainMod SHIFT, t, exec, launch-timer"
|
"$mainMod SHIFT, t, exec, launch-timer"
|
||||||
"$mainMod SHIFT, e, exec, $terminal -e zellij_nvim"
|
"$mainMod SHIFT, e, exec, $terminal -e zellij_nvim"
|
||||||
"$mainMod, o, exec, hyprctl setprop activewindow opaque toggle"
|
"$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"
|
#"$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"
|
||||||
|
"$mainMod, R, exec, stt-ptt start"
|
||||||
"$mainMod, b, exec, thunar"
|
"$mainMod, b, exec, thunar"
|
||||||
"$mainMod SHIFT, B, exec, vivaldi"
|
"$mainMod SHIFT, B, exec, vivaldi"
|
||||||
"$mainMod, Escape, exec, wlogout -p layer-shell"
|
"$mainMod, Escape, exec, wlogout -p layer-shell"
|
||||||
@@ -246,7 +207,9 @@ in {
|
|||||||
"$mainMod, mouse_down, workspace, e+1"
|
"$mainMod, mouse_down, workspace, e+1"
|
||||||
"$mainMod, mouse_up, workspace, e-1"
|
"$mainMod, mouse_up, workspace, e-1"
|
||||||
];
|
];
|
||||||
|
bindr = [
|
||||||
|
"$mainMod, R, exec, stt-ptt stop"
|
||||||
|
];
|
||||||
bindm = [
|
bindm = [
|
||||||
"$mainMod, mouse:272, movewindow"
|
"$mainMod, mouse:272, movewindow"
|
||||||
"$mainMod, mouse:273, resizewindow"
|
"$mainMod, mouse:273, resizewindow"
|
||||||
@@ -282,13 +245,13 @@ in {
|
|||||||
programs.hyprlock = {
|
programs.hyprlock = {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings = {
|
settings = {
|
||||||
source = "$HOME/.config/hypr/colors.conf";
|
"$font" = "FiraCode Nerd Font";
|
||||||
|
"$base" = "rgb(${config.colorScheme.palette.base00})";
|
||||||
"$font" = "JetBrainsMono Nerd Font";
|
"$text" = "rgb(${config.colorScheme.palette.base05})";
|
||||||
"$base" = "$background";
|
"$textAlpha" = "${config.colorScheme.palette.base05}";
|
||||||
"$text" = "$foreground";
|
"$accentAlpha" = "${config.colorScheme.palette.base0D}";
|
||||||
"$textAlpha" = "$foregroundRaw";
|
"$red" = "rgb(${config.colorScheme.palette.base08})";
|
||||||
"$accentAlpha" = "$accentRaw";
|
"$yellow" = "rgb(${config.colorScheme.palette.base0A})";
|
||||||
|
|
||||||
general = {
|
general = {
|
||||||
hide_cursor = true;
|
hide_cursor = true;
|
||||||
@@ -296,9 +259,9 @@ in {
|
|||||||
|
|
||||||
background = {
|
background = {
|
||||||
monitor = "";
|
monitor = "";
|
||||||
path = "~/.hypr/wallpapers/wallhaven-lmmo8r_2560x1600.png";
|
path = "${config.home.homeDirectory}/.config/hypr/wallpapers/wallhaven-lmmo8r_2560x1600.png";
|
||||||
blur_passes = 0;
|
blur_passes = 0;
|
||||||
color = "$base";
|
color = "rgb(${config.colorScheme.palette.base00})";
|
||||||
};
|
};
|
||||||
|
|
||||||
label = [
|
label = [
|
||||||
@@ -332,16 +295,16 @@ in {
|
|||||||
dots_size = 0.2;
|
dots_size = 0.2;
|
||||||
dots_spacing = 0.2;
|
dots_spacing = 0.2;
|
||||||
dots_center = true;
|
dots_center = true;
|
||||||
outer_color = "$accent";
|
outer_color = "rgb(${config.colorScheme.palette.base0D})";
|
||||||
inner_color = "$background";
|
inner_color = "rgb(${config.colorScheme.palette.base00})";
|
||||||
font_color = "$text";
|
font_color = "rgb(${config.colorScheme.palette.base05})";
|
||||||
fade_on_empty = false;
|
fade_on_empty = false;
|
||||||
placeholder_text = ''<span foreground="##$textAlpha"> Logged in as <span foreground="##$accentAlpha">$USER</span></span>'';
|
placeholder_text = ''<span foreground="##${config.colorScheme.palette.base05}"> Logged in as <span foreground="##${config.colorScheme.palette.base0D}">$USER</span></span>'';
|
||||||
hide_input = false;
|
hide_input = false;
|
||||||
check_color = "$accent";
|
check_color = "rgb(${config.colorScheme.palette.base0D})";
|
||||||
fail_color = "$red";
|
fail_color = "rgb(${config.colorScheme.palette.base08})";
|
||||||
fail_text = ''<i>$FAIL <b>($ATTEMPTS)</b></i>'';
|
fail_text = ''<i>$FAIL <b>($ATTEMPTS)</b></i>'';
|
||||||
capslock_color = "$yellow";
|
capslock_color = "rgb(${config.colorScheme.palette.base0A})";
|
||||||
position = "0, -35";
|
position = "0, -35";
|
||||||
halign = "center";
|
halign = "center";
|
||||||
valign = "center";
|
valign = "center";
|
||||||
|
|||||||
@@ -31,8 +31,6 @@ in {
|
|||||||
pavucontrol
|
pavucontrol
|
||||||
qpwgraph
|
qpwgraph
|
||||||
v4l-utils
|
v4l-utils
|
||||||
plexamp
|
|
||||||
webcord
|
|
||||||
# uxplay
|
# uxplay
|
||||||
# vlc
|
# vlc
|
||||||
# webcord
|
# webcord
|
||||||
|
|||||||
@@ -179,5 +179,20 @@ in {
|
|||||||
}
|
}
|
||||||
'');
|
'');
|
||||||
};
|
};
|
||||||
|
cli.rofi-project-opener = {
|
||||||
|
enable = true;
|
||||||
|
projectDirs = {
|
||||||
|
NIX = {
|
||||||
|
path = "~/p/NIX";
|
||||||
|
args = "";
|
||||||
|
};
|
||||||
|
CHAT = {
|
||||||
|
path = "~/p/CHAT";
|
||||||
|
args = "--agent chiron";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
terminal = pkgs.kitty;
|
||||||
|
terminalCommand = "opencode %a";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,6 +12,10 @@
|
|||||||
url = "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/microsoft-outlook.svg";
|
url = "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/microsoft-outlook.svg";
|
||||||
sha256 = "sha256-3u8t5QNHFZvrAegxBiGicO4PjtMWhEaQSCv7MSSfLLc=";
|
sha256 = "sha256-3u8t5QNHFZvrAegxBiGicO4PjtMWhEaQSCv7MSSfLLc=";
|
||||||
};
|
};
|
||||||
|
opencode = pkgs.fetchurl {
|
||||||
|
url = "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/opencode-dark.svg";
|
||||||
|
sha256 = "1lms4f8habamvdh2qqqz9psx4py9wx23mmlkkds44pvrbq3bkj3n";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
in {
|
in {
|
||||||
xdg.desktopEntries = {
|
xdg.desktopEntries = {
|
||||||
@@ -39,5 +43,13 @@ in {
|
|||||||
terminal = false;
|
terminal = false;
|
||||||
icon = "/home/sascha.koenig/.local/share/icons/basecamp-logo.png";
|
icon = "/home/sascha.koenig/.local/share/icons/basecamp-logo.png";
|
||||||
};
|
};
|
||||||
|
opencode = {
|
||||||
|
name = "Opencode";
|
||||||
|
exec = "rofi-project-opener";
|
||||||
|
comment = "Open Opencode Terminal App";
|
||||||
|
categories = ["Application" "Development"];
|
||||||
|
terminal = false;
|
||||||
|
icon = icons.opencode;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
{config, ...}: {imports = [./home-stable.nix ../common];}
|
{config, ...}: {imports = [./home.nix ../common];}
|
||||||
|
|||||||
27
home/logistik/AZPILOGISTIKTEST.nix
Normal file
27
home/logistik/AZPILOGISTIKTEST.nix
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
inputs,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
imports = [
|
||||||
|
../common
|
||||||
|
./home.nix
|
||||||
|
];
|
||||||
|
wayland.windowManager.hyprland.settings = {
|
||||||
|
env = [
|
||||||
|
"WEBAPP_URL,http://192.168.152.98:4711/login/logistik-pick-master"
|
||||||
|
"WEBAPP_URL1,http://192.168.152.98:4711/login/logistik-pack-master"
|
||||||
|
"HYPRCURSOR_THEME,rose-pine-hyprcursor"
|
||||||
|
"HYPRCURSOR_SIZE,32"
|
||||||
|
"WLR_NO_HARDWARE_CURSORS,1"
|
||||||
|
];
|
||||||
|
exec-once = [
|
||||||
|
"start-browsers"
|
||||||
|
];
|
||||||
|
workspace = [
|
||||||
|
"1, monitor:HDMI-A-1, default:true"
|
||||||
|
"2, monitor:HDMI-A-2"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -99,11 +99,13 @@
|
|||||||
|
|
||||||
programs.git = {
|
programs.git = {
|
||||||
enable = true;
|
enable = true;
|
||||||
aliases = {
|
settings = {
|
||||||
|
alias = {
|
||||||
st = "status";
|
st = "status";
|
||||||
logd = "log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit";
|
logd = "log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
};
|
||||||
|
|
||||||
programs.kitty.enable = true;
|
programs.kitty.enable = true;
|
||||||
|
|
||||||
@@ -188,6 +190,32 @@
|
|||||||
sensitivity = -0.5;
|
sensitivity = -0.5;
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
# windowrule = [
|
||||||
|
# ## HYPRLAND 0.53+ #
|
||||||
|
# # Floating dialogs
|
||||||
|
# "match:class file_progress, float on"
|
||||||
|
# "match:class confirm, float on"
|
||||||
|
# "match:class dialog, float on"
|
||||||
|
# "match:class download, float on"
|
||||||
|
# "match:class notification, float on"
|
||||||
|
# "match:class error, float on"
|
||||||
|
# "match:class splash, float on"
|
||||||
|
# "match:class confirmreset, float on"
|
||||||
|
# "match:title Open File, float on"
|
||||||
|
# "match:title branchdialog, float on"
|
||||||
|
|
||||||
|
# # XWayland border color
|
||||||
|
# "border_color rgb(ffffff), match:xwayland 1"
|
||||||
|
|
||||||
|
# # Chromium workspace 1
|
||||||
|
# "workspace 1, match:class chromium-browser"
|
||||||
|
|
||||||
|
# # Chromium tile rules
|
||||||
|
# "match:class ^(chromium)$, tile on"
|
||||||
|
# "match:class ^(Chromium)$, tile on"
|
||||||
|
# "match:class ^(chromium-browser)$, tile on"
|
||||||
|
# "match:class ^(Chromium-browser)$, tile on"
|
||||||
|
# ];
|
||||||
windowrule = [
|
windowrule = [
|
||||||
"float, class:file_progress"
|
"float, class:file_progress"
|
||||||
"float, class:confirm"
|
"float, class:confirm"
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{config, ...}: {
|
{config, ...}: {
|
||||||
imports = [
|
imports = [
|
||||||
./home-stable.nix
|
./home.nix
|
||||||
../common
|
../common
|
||||||
../features/cli/fish.nix
|
../features/cli/fish.nix
|
||||||
../features/cli/fzf.nix
|
../features/cli/fzf.nix
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ in {
|
|||||||
../common
|
../common
|
||||||
./home.nix
|
./home.nix
|
||||||
../features/cli
|
../features/cli
|
||||||
|
../features/coding
|
||||||
../features/desktop
|
../features/desktop
|
||||||
inputs.nix-colors.homeManagerModules.default
|
inputs.nix-colors.homeManagerModules.default
|
||||||
];
|
];
|
||||||
@@ -86,15 +87,15 @@ in {
|
|||||||
"6, monitor:DP-8"
|
"6, monitor:DP-8"
|
||||||
];
|
];
|
||||||
windowrule = [
|
windowrule = [
|
||||||
"workspace 1,class:(com.obsproject.Studio)"
|
"match:class com.obsproject.Studio, workspace 1"
|
||||||
"workspace 3,class:dev.zed.Zed"
|
"match:class dev.zed.Zed, workspace 3"
|
||||||
"workspace 5,opacity 1.0, class:(vivaldi-stable)"
|
"match:class vivaldi-stable, workspace 5, opacity 1.0"
|
||||||
"workspace 5,opacity 1.0, initialTitle:(3.basecamp.com_/5996442/)"
|
"match:initial_title 3.basecamp.com_/5996442/, workspace 5, opacity 1.0"
|
||||||
"tile, initialTitle:(3.basecamp.com_/5996442/)"
|
"match:initial_title 3.basecamp.com_/5996442/, tile on"
|
||||||
"workspace 6,opacity 1.0, initialTitle:(teams.microsoft.com_/)"
|
"match:initial_title teams.microsoft.com_/, workspace 6, opacity 1.0"
|
||||||
"tile, initialTitle:(teams.microsoft.com_/)"
|
"match:initial_title teams.microsoft.com_/, tile on"
|
||||||
"workspace 6,opacity 1.0, initialTitle:(outlook.office.com_/mail/)"
|
"match:initial_title outlook.office.com_/mail/, workspace 6, opacity 1.0"
|
||||||
"tile, initialTitle:(outlook.office.com_/mail/)"
|
"match:initial_title outlook.office.com_/mail/, tile on"
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
servicePort = portUtils.getPort serviceName "AZ-CLD-1";
|
servicePort = portUtils.getPort serviceName "AZ-CLD-1";
|
||||||
in {
|
in {
|
||||||
virtualisation.oci-containers.containers.${serviceName} = {
|
virtualisation.oci-containers.containers.${serviceName} = {
|
||||||
image = "docker.io/baserow/baserow:1.35.2";
|
image = "docker.io/baserow/baserow:2.0.6";
|
||||||
environment = {
|
environment = {
|
||||||
BASEROW_AMOUNT_OF_GUNICORN_WORKERS = "4";
|
BASEROW_AMOUNT_OF_GUNICORN_WORKERS = "4";
|
||||||
BASEROW_AMOUNT_OF_WORKERS = "2";
|
BASEROW_AMOUNT_OF_WORKERS = "2";
|
||||||
|
|||||||
@@ -10,6 +10,6 @@
|
|||||||
./postgres.nix
|
./postgres.nix
|
||||||
./traefik.nix
|
./traefik.nix
|
||||||
./vaultwarden.nix
|
./vaultwarden.nix
|
||||||
./zammad.nix
|
# ./zammad.nix
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
in {
|
in {
|
||||||
services.${serviceName} = {
|
services.${serviceName} = {
|
||||||
enable = true;
|
enable = true;
|
||||||
webhookUrl = "https://wf.az-gruppe.com";
|
environment.WEBHOOK_URL = "https://wf.az-gruppe.com";
|
||||||
};
|
};
|
||||||
|
|
||||||
systemd.services.${serviceName}.serviceConfig = {
|
systemd.services.${serviceName}.serviceConfig = {
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{config, ...}: {
|
{config, ...}: {
|
||||||
virtualisation.oci-containers.containers."baserow" = {
|
virtualisation.oci-containers.containers."baserow" = {
|
||||||
image = "docker.io/baserow/baserow:1.34.2";
|
image = "docker.io/baserow/baserow:2.0.6";
|
||||||
environmentFiles = [config.age.secrets.baserow-env.path];
|
environmentFiles = [config.age.secrets.baserow-env.path];
|
||||||
ports = ["127.0.0.1:3032:80"];
|
ports = ["127.0.0.1:3032:80"];
|
||||||
volumes = ["baserow_data:/baserow/data"];
|
volumes = ["baserow_data:/baserow/data"];
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{config, ...}: {
|
{config, ...}: {
|
||||||
services.n8n = {
|
services.n8n = {
|
||||||
enable = true;
|
enable = true;
|
||||||
webhookUrl = "https://wf.az-group.com";
|
environment.WEBHOOK_URL = "https://wf.az-group.com";
|
||||||
};
|
};
|
||||||
systemd.services.n8n.serviceConfig = {
|
systemd.services.n8n.serviceConfig = {
|
||||||
EnvironmentFile = ["${config.age.secrets.n8n-env.path}"];
|
EnvironmentFile = ["${config.age.secrets.n8n-env.path}"];
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
# Bootloader.
|
# Bootloader.
|
||||||
boot.loader.systemd-boot.enable = true;
|
boot.loader.systemd-boot.enable = true;
|
||||||
boot.initrd.kernelModules = ["amdgpu" "hid_asus"];
|
boot.initrd.kernelModules = ["amdgpu" "hid_asus"];
|
||||||
boot.kernelPackages = pkgs.linuxPackages_6_17;
|
boot.kernelPackages = pkgs.linuxPackages_6_18;
|
||||||
boot.extraModprobeConfig = ''
|
boot.extraModprobeConfig = ''
|
||||||
options hid_asus enable_touchpad=1
|
options hid_asus enable_touchpad=1
|
||||||
'';
|
'';
|
||||||
|
|||||||
@@ -12,7 +12,7 @@
|
|||||||
programs.fish.enable = true;
|
programs.fish.enable = true;
|
||||||
programs.thunar = {
|
programs.thunar = {
|
||||||
enable = true;
|
enable = true;
|
||||||
plugins = with pkgs.xfce; [thunar-archive-plugin thunar-volman];
|
plugins = with pkgs; [thunar-archive-plugin thunar-volman];
|
||||||
};
|
};
|
||||||
programs.gnupg.agent = {
|
programs.gnupg.agent = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|||||||
@@ -1 +1,10 @@
|
|||||||
{}
|
{
|
||||||
|
age = {
|
||||||
|
secrets = {
|
||||||
|
outline-key = {
|
||||||
|
file = ../../secrets/outline-key.age;
|
||||||
|
owner = "sascha.koenig";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
# ./ad.nix
|
# ./ad.nix
|
||||||
|
./mem0.nix
|
||||||
./n8n.nix
|
./n8n.nix
|
||||||
./sound.nix
|
./sound.nix
|
||||||
./udev.nix
|
./udev.nix
|
||||||
|
|||||||
23
hosts/AZLT124-L/services/mem0.nix
Normal file
23
hosts/AZLT124-L/services/mem0.nix
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
{
|
||||||
|
m3ta.mem0 = {
|
||||||
|
enable = false;
|
||||||
|
port = 8000;
|
||||||
|
host = "127.0.0.1";
|
||||||
|
|
||||||
|
# LLM Configuration
|
||||||
|
llm = {
|
||||||
|
provider = "openai";
|
||||||
|
apiKeyFile = "/var/lib/mem0/openai-api-key-1"; # Use agenix or sops-nix
|
||||||
|
};
|
||||||
|
|
||||||
|
# Vector Storage Configuration
|
||||||
|
vectorStore = {
|
||||||
|
provider = "qdrant"; # or "chroma", "pinecone", etc.
|
||||||
|
config = {
|
||||||
|
host = "localhost";
|
||||||
|
port = 6333;
|
||||||
|
collection_name = "mem0_alice";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -1,5 +1,7 @@
|
|||||||
# Common configuration for all hosts
|
# Common configuration for all hosts
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
lib,
|
lib,
|
||||||
inputs,
|
inputs,
|
||||||
outputs,
|
outputs,
|
||||||
@@ -13,7 +15,9 @@
|
|||||||
|
|
||||||
home-manager = {
|
home-manager = {
|
||||||
useUserPackages = true;
|
useUserPackages = true;
|
||||||
extraSpecialArgs = {inherit inputs outputs;};
|
extraSpecialArgs = {
|
||||||
|
inherit inputs outputs;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
nixpkgs = {
|
nixpkgs = {
|
||||||
# You can add overlays here
|
# You can add overlays here
|
||||||
|
|||||||
@@ -12,12 +12,7 @@ in {
|
|||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
services.ollama = {
|
services.ollama = {
|
||||||
enable = true;
|
enable = true;
|
||||||
acceleration =
|
package = pkgs.ollama-vulkan;
|
||||||
if config.services.xserver.videoDrivers == ["amdgpu"]
|
|
||||||
then "rocm"
|
|
||||||
else if config.services.xserver.videoDrivers == ["nvidia"]
|
|
||||||
then "cuda"
|
|
||||||
else null;
|
|
||||||
host = "[::]";
|
host = "[::]";
|
||||||
openFirewall = true;
|
openFirewall = true;
|
||||||
environmentVariables = {
|
environmentVariables = {
|
||||||
|
|||||||
@@ -10,7 +10,7 @@
|
|||||||
# You can change versions, add patches, set compilation flags, anything really.
|
# You can change versions, add patches, set compilation flags, anything really.
|
||||||
# https://nixos.wiki/wiki/Overlays
|
# https://nixos.wiki/wiki/Overlays
|
||||||
modifications = final: prev: {
|
modifications = final: prev: {
|
||||||
n8n = import ./mods/n8n.nix {inherit prev;};
|
# n8n = import ./mods/n8n.nix {inherit prev;};
|
||||||
vivaldi = prev.vivaldi.override {
|
vivaldi = prev.vivaldi.override {
|
||||||
commandLineArgs = "--enable-features=UseOzonePlatform --ozone-platform=wayland";
|
commandLineArgs = "--enable-features=UseOzonePlatform --ozone-platform=wayland";
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,13 +1,14 @@
|
|||||||
let
|
let
|
||||||
#SYSTEMS
|
#SYSTEMS
|
||||||
AZ-CLD-1 = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIItSijmU5YwcJcoshtmYxpxBaVA4TPaCMk23ws7KDkAH";
|
AZ-CLD-1 = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIItSijmU5YwcJcoshtmYxpxBaVA4TPaCMk23ws7KDkAH";
|
||||||
|
AZLT124-L = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIg/nFOPx763xIbepPsdYRE49R7HwvikXhLF/iPgH1Jh";
|
||||||
|
|
||||||
#USERS
|
#USERS
|
||||||
sascha.koenig = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEZbg/Z9mnflXuLahGY8WOSBMqbgeqVIkIwRkquys1Ml";
|
sascha.koenig = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEZbg/Z9mnflXuLahGY8WOSBMqbgeqVIkIwRkquys1Ml";
|
||||||
jannik.mueller = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPvZazSuIoWoRWhkAqQDMLeurxVUyy1MTllp1wfw1tzq";
|
jannik.mueller = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPvZazSuIoWoRWhkAqQDMLeurxVUyy1MTllp1wfw1tzq";
|
||||||
|
|
||||||
users = [sascha.koenig];
|
users = [sascha.koenig];
|
||||||
systems = [AZ-CLD-1];
|
systems = [AZ-CLD-1 AZLT124-L];
|
||||||
in {
|
in {
|
||||||
"secrets/server.crt.age".publicKeys = systems ++ users;
|
"secrets/server.crt.age".publicKeys = systems ++ users;
|
||||||
"secrets/server.key.age".publicKeys = systems ++ users;
|
"secrets/server.key.age".publicKeys = systems ++ users;
|
||||||
@@ -31,4 +32,5 @@ in {
|
|||||||
"secrets/zammad-secret.age".publicKeys = systems ++ users;
|
"secrets/zammad-secret.age".publicKeys = systems ++ users;
|
||||||
"secrets/zammad-hr-env.age".publicKeys = systems ++ users;
|
"secrets/zammad-hr-env.age".publicKeys = systems ++ users;
|
||||||
"secrets/zammad-hr-env-prod.age".publicKeys = systems ++ users;
|
"secrets/zammad-hr-env-prod.age".publicKeys = systems ++ users;
|
||||||
|
"secrets/outline-key.age".publicKeys = systems ++ users;
|
||||||
}
|
}
|
||||||
|
|||||||
14
secrets/outline-key.age
Normal file
14
secrets/outline-key.age
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
-----BEGIN AGE ENCRYPTED FILE-----
|
||||||
|
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHNzaC1lZDI1NTE5IFpoVnNlZyB5VmZT
|
||||||
|
ZXNLY3BRV0ZzQWNjODNRSWZCME16NmJldDBobXZKcGVSRTQ2NXdvCkU1SFZOYTZ1
|
||||||
|
b3lHTUxwZmV1STNuV2VQWU9IZ1lWSlVDVThwMWt1UXcrQkkKLT4gc3NoLWVkMjU1
|
||||||
|
MTkgU3JIYXFBIGV4V3NWKzVrU1lXT3g1RnA0YUNtdnNlMDMzaFpOQ3YwREgyU1ZU
|
||||||
|
WVNrQWsKeXFtTVRQd1htYjRITDZkZHpKOVA5N1NwVlRYRmFPUm16NkZmSHpqNEFw
|
||||||
|
MAotPiBzc2gtZWQyNTUxOSBDU015aGcgNkp3VFk1S2ZZZEtobGVWRTZkMjhiSEVP
|
||||||
|
UnhkTkxtS3JBMkZZSDBZMG0wTQpTbDlOanVNZXdtY1JsSUlqS2IrN3F5QzVHSUUw
|
||||||
|
dlJ4aHgyNjU0L1d6S3QwCi0+IDV0LWdyZWFzZQo3UUJ2S2Q5Q251UmVDZndCYTh0
|
||||||
|
M3lNUFlpQTlkcVlQckg3N09TNjBPSWZLc3QxcURkUVo2N0pjCi0tLSBYR1krVnFY
|
||||||
|
d0pmNVZLd3ZrMHlXQTFUNE55dGRPLy9icy9uYmlCaEU0TjlVCpvQKF0z2iDtyvwv
|
||||||
|
qLbqIQ970U/l4oZLyiXtPVQeYvq794NGbOo/378qxQO87AutJrfdvpmRcQ/AZ2dH
|
||||||
|
n1SHYEu/da6dckOvtLrMcXdN+Q==
|
||||||
|
-----END AGE ENCRYPTED FILE-----
|
||||||
Reference in New Issue
Block a user