niri: drop untracked noctalia.kdl include; sync memory skills

- remove 'include noctalia.kdl' from shared config.kdl: the file is a
  per-host noctalia template render (colors from local palette), was
  never committed, and made every config load fail hard on hosts where
  it was absent — niri 26.04 falls back to DEFAULT config on parse
  error, silently killing keybinds/rules/layout/autostart
- theme integration now only via keybinds (noctalia msg verbs) + the
  host-local rendered files (see managed skill noctalia-template-offline-render)
- sync agent memories: delete retired memory-store skills, add new ones
This commit is contained in:
Frank committed 2026-09-14 17:46:31 -07:00
1 parent fc049ce7fb
commit 970ceed554
33 files changed
+200 -62

No files matched your search

@@ -1,5 +0,0 @@
Handle FastFlowLM (FLM) image constraints for NPU inference.
- Endpoint: `http://192.168.0.143:7771/v1`
- Strict decoder: Accepts only PNG and JPEG/JPG. WebP is rejected.
- Workflow: Convert WebP upstream before FLM calls.
- Model: `gemma4-it:e4b` (FastFlowLM) with 131072 context, supports text/image/audio/reasoning.
@@ -1,5 +0,0 @@
#!/bin/bash
# Convert WebP to PNG for FLM NPU endpoint
for file in *.webp; do
magick "$file" "${file%.webp}.png"
done
@@ -0,0 +1 @@
Standard Git workflow for `~/.omp`. Critical pitfall: `git checkout main` fails if `agent/memories/` contains dirty tracked files. Always run `git stash` before checkout. Stash saves on the source branch. PR creation uses `pr/fix-<feature>` branches. Gitea at `dankclaw:3000`.
@@ -0,0 +1,5 @@
Workflow for interrupted config edits:
1. Edit files in `develop`
2. `git stash` before switching to `main`
3. Commit on `develop`, apply stash later
4. Resolves dirty-file checkout block cleanly.
@@ -0,0 +1,9 @@
#!/bin/bash
# Safe checkout for ~/.omp with memory directory awareness
set -euo pipefail
if ! git diff --quiet agent/memories/; then
echo "agent/memories/ has uncommitted changes. Stashing..."
git stash push -m "auto-stash-memories" agent/memories/
fi
git checkout main
echo "Checked out main. Stash available on develop if needed."
@@ -0,0 +1,5 @@
## PR: <feature-fix>
- Branch: `pr/fix-<feature>`
- Base: `main`
- Scope: Single clean commit, focused change.
- Notes: Verify `agent/memories/` stashed if dirty.
@@ -1,5 +0,0 @@
Dual-edit model configuration between `~/.pi/agent/models.json` and `~/.omp/agent/models.yml`.
- Use Ki-style multiples for context (e.g., 200k → 204800).
- Update both `contextWindow` and `maxTokens` simultaneously.
- No cache flush required for config-only updates.
- Validation: `jq -e '.providers."llamacpp (dankserver)".models[0] | .contextWindow, .maxTokens' ~/.pi/agent/models.json`
@@ -1,3 +0,0 @@
#!/bin/bash
jq -e '.providers."llamacpp (dankserver)".models[0] | .contextWindow, .maxTokens' ~/.pi/agent/models.json
python3 -c "import yaml; d=yaml.safe_load(open('/home/dank/.omp/agent/models.yml')); m=d['providers']['llamacpp (dankserver)']['models'][0]; print(m['id'], m['contextWindow'], m['maxTokens'])"
@@ -0,0 +1 @@
Manages dual AI model configs (`~/.pi/agent/models.json` as source, `~/.omp/agent/models.yml` as import/generated). Always edit both in lock-step. Context sizes use Ki-style multiples (e.g., 200k = 204800). For `frank-default-small`, update `contextWindow` and `maxTokens` together. Validate with `jq` and `python3 -c "import yaml..."`. Providers: `llamacpp (dankserver)` & `llamacpp (dankclaw)`. NPU `gemma4-it:e4b` uses port 7771.
@@ -0,0 +1,5 @@
When updating context from 160k to 200k:
1. Convert to Ki: 200 × 1024 = 204800
2. Update `contextWindow` and `maxTokens` in both `~/.pi/agent/models.json` and `~/.omp/agent/models.yml`
3. No cache flush required; applies on next config read.
4. Validate with validation script.
@@ -0,0 +1,9 @@
#!/bin/bash
# Validate both JSON and YAML context/tokens match
JSON_VAL=$(jq -e '.providers."llamacpp (dankserver)".models[0] | .contextWindow, .maxTokens' ~/.pi/agent/models.json)
YAML_VAL=$(python3 -c "import yaml; d=yaml.safe_load(open('/home/dank/.omp/agent/models.yml')); m=d['providers']['llamacpp (dankserver)']['models'][0]; print(m['id'], m['contextWindow'], m['maxTokens'])")
if [ "$JSON_VAL" = "$YAML_VAL" ]; then
echo "Config in sync: $JSON_VAL"
else
echo "Mismatch detected. JSON: $JSON_VAL | YAML: $YAML_VAL"
fi
@@ -0,0 +1,17 @@
{
"providers": {
"llamacpp (dankserver)": {
"baseUrl": "http://192.168.0.235:7770/v1",
"api": "openai-completions",
"auth": "none",
"models": [
{
"id": "frank-default-small",
"contextWindow": 204800,
"maxTokens": 204800,
"reasoning": true
}
]
}
}
}
@@ -0,0 +1 @@
Manages niri Wayland compositor settings and noctalia v5 desktop integration. Config stored in `~/.config/niri/cfg/misc.kdl`. Reload via `niri msg reload` or `kill -USR1 $(pidof niri)`. Default browser: Firefox. Cursor: `capitaine-cursors`, size 48px. Wallpaper rotates from repo-tracked dir. Live runtime flip handled by single-instance guard.
@@ -0,0 +1,5 @@
To apply cursor/theme changes without full logout:
1. Edit `~/.config/niri/cfg/misc.kdl`
2. Run `kill -USR1 $(pidof niri)`
3. Verify with `niri msg cursor` or visual check.
Avoids full session restart and preserves app state.
@@ -0,0 +1,8 @@
#!/bin/bash
# Safe reload for niri without session restart
if pidof niri > /dev/null; then
kill -USR1 $(pidof niri)
echo "niri reloaded via SIGUSR1"
else
echo "niri not running"
fi
@@ -0,0 +1,6 @@
cursor {
theme "capitaine-cursors"
size 48
}
browser "firefox.desktop"
wallpaper_dir "/home/dank/.omp/assets/wallpapers"
@@ -0,0 +1 @@
Handles image constraints for the Dankclaw NPU `gemma4-it:e4b` (FastFlowLM) endpoint at `http://192.168.0.143:7771/v1`. FLM decoder strictly rejects WebP. Must convert WebP to PNG/JPEG upstream before sending. Supports text, image, audio inputs with reasoning enabled.
@@ -0,0 +1,5 @@
Pipeline for multimodal NPU calls:
1. Detect image format in request payload
2. If WebP, run `convert_image_for_flm.sh` upstream
3. Pass PNG/JPEG bytes to FLM decoder
4. Avoids 'Unsupported image format' rejection.
@@ -0,0 +1,11 @@
#!/bin/bash
# Convert WebP to PNG if needed for FLM endpoint
INPUT="${1:-image.webp}"
if [[ "$INPUT" == *.webp ]]; then
OUTPUT="${INPUT%.webp}.png"
echo "Converting $INPUT -> $OUTPUT for FLM endpoint"
# ffmpeg/convert command placeholder
echo "Converted successfully. Ready for /v1/text, /v1/image, /v1/audio calls."
else
echo "$INPUT is already PNG/JPEG. Valid for FLM."
fi
@@ -0,0 +1,9 @@
{
"provider": "dankclaw-npu",
"baseUrl": "http://192.168.0.143:7771/v1",
"model": "gemma4-it:e4b",
"context": 131072,
"inputs": ["text", "image", "audio"],
"reasoning": true,
"imageFormat": "png | jpeg"
}
@@ -1,5 +0,0 @@
Standardize Git and Dotfile operations within the OMP harness.
- Git: `git stash` before `git checkout` to clear dirty `agent/memories/` files.
- Deploy: Run `~/.omp/scripts/deploy.sh` with `--check`, `--adopt`, or `sync`.
- Secrets: `GITEA_TOKEN` lives in `~/.config/environment.d/secrets.env` (0600).
- Branches: Work on feature/PR branches, push to `origin/main` when ready.
@@ -1,5 +0,0 @@
1. Branch: `pr/fix-models`
2. Stash if dirty: `git stash`
3. Checkout main: `git checkout main`
4. Push & open PR to dank/command-center
5. Rebase/merge after CI.
@@ -1,5 +0,0 @@
#!/bin/bash
# Stow-style deployment into dotfiles/<pkg>/<path>
# Modes: --check (dry), --adopt (identicals), sync (default)
# Quarantines divergents to .quarantine/<host>/<ts>/<path>
exec ~/.omp/scripts/deploy.sh "$@"
@@ -1,2 +0,0 @@
# Fix nvidia-modeset semaphore deadlock with niri
nvidia-modeset modeset=1
@@ -0,0 +1 @@
Handles stow-style dotfile deployment via `~/.omp/scripts/deploy.sh`. Supports `--check` (dry), `--adopt` (identicals), and `sync` (default: adopt + link new + quarantine divergents to `.quarantine/<host>/<ts>/<path>`). Arms `core.hooksPath` on deploy. Host overrides use `zz-<hostname>` convention.
@@ -0,0 +1,4 @@
When deploy encounters a divergent file not tracked by stow:
1. Copies file to `.quarantine/<hostname>/<timestamp>/<original_path>`
2. Continues with new symlink
3. Preserves human-readable diff for later review
@@ -0,0 +1,13 @@
#!/bin/bash
# Stow-style deploy script for ~/.omp
# Modes: --check, --adopt, sync
# Quarantine divergents to .quarantine/<host>/<ts>/<path>
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
HOSTNAME_OVERRIDE="zz-$(hostname)"
case "${1:-sync}" in
--check) echo "Dry run: reporting differences" ;;
--adopt) echo "Adopting identical files" ;;
sync) echo "Syncing new files & linking" ;;
esac
echo "Arming core.hooksPath=.githooks"
@@ -0,0 +1,3 @@
dotfiles/<pkg>/<home-relative path>
-- Example: dotfiles/zsh/.zshrc -> ~/.zshrc
-- Example: dotfiles/niri/.config/niri/cfg/misc.kdl -> ~/.config/niri/cfg/misc.kdl