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:
@@ -0,0 +1,45 @@
|
||||
---
|
||||
name: noctalia-template-offline-render
|
||||
description: "Recover from missing noctalia-generated theme files (niri noctalia.kdl include, ghostty/alacritty noctalia theme) using the offline noctalia theme --render CLI when msg templates-apply is a no-op"
|
||||
---
|
||||
|
||||
# Noctalia template offline render
|
||||
|
||||
## Failure signature
|
||||
- niri: `failed to read included config from ~/.config/niri/noctalia.kdl: No such file or directory`; desktop runs but with DEFAULT config (niri 26.04 falls back, does not exit): no custom keybinds/rules, no noctalia autostart, default output placement.
|
||||
- ghostty: `theme "noctalia" not found, tried ~/.config/ghostty/themes/noctalia`.
|
||||
- alacritty: import of `~/.config/alacritty/themes/noctalia.toml` missing.
|
||||
|
||||
## Root cause pattern
|
||||
Upstream dotfiles commits theme switches (niri include, ghostty `theme = noctalia`, alacritty import) that depend on noctalia TEMPLATE-GENERATED files. Those files are per-host outputs (rendered from the local palette) and are intentionally NOT in the repo. On any host where `templates-apply` never ran, they don't exist.
|
||||
|
||||
## Fix (offline, works while a session runs)
|
||||
Built-in templates live at /usr/share/noctalia/assets/templates/ and are declared in builtin.toml. Render each needed one with the live palette:
|
||||
|
||||
```bash
|
||||
# niri include (plain host-local file; do NOT symlink into repo — regenerated per host)
|
||||
noctalia theme --theme-json ~/.config/noctalia/colors.json \
|
||||
--render "/usr/share/noctalia/assets/templates/niri/niri.kdl:$HOME/.config/niri/noctalia.kdl"
|
||||
|
||||
# ghostty
|
||||
mkdir -p ~/.config/ghostty/themes && \
|
||||
noctalia theme --theme-json ~/.config/noctalia/colors.json \
|
||||
--render "/usr/share/noctalia/assets/templates/ghostty/ghostty:$HOME/.config/ghostty/themes/noctalia"
|
||||
|
||||
# alacritty
|
||||
mkdir -p ~/.config/alacritty/themes && \
|
||||
noctalia theme --theme-json ~/.config/noctalia/colors.json \
|
||||
--render "/usr/share/noctalia/assets/templates/alacritty/alacritty.toml:$HOME/.config/alacritty/themes/noctalia.toml"
|
||||
```
|
||||
|
||||
All template tokens (primary, surface, error, primary_container, …) resolve from the flat 16-key colors.json; container tokens are derived, never blank.
|
||||
|
||||
## Verify
|
||||
1. `niri validate` → "config is valid" (rc 0)
|
||||
2. `ghostty +validate-config` → rc 0
|
||||
3. On next login: journal shows `loaded config from config.kdl` with NO parse WARN, custom output placement (compare `niri msg outputs` vs display.kdl), noctalia autostarted (`pgrep noctalia`).
|
||||
|
||||
## Traps
|
||||
- `noctalia msg templates-apply` on 5.0.1 returns "ok" but applies NOTHING (opt-in config schema this build does not act on). Do not trust its exit code.
|
||||
- Niri config errors at boot are NOT fatal — the compositor keeps running on defaults, which looks like "some settings silently stopped working", not a crash.
|
||||
- Regenerate after any palette change; the rendered files are static snapshots.
|
||||
@@ -1,29 +1,35 @@
|
||||
# Environment & Repository
|
||||
- **Home/Repo**: `/home/dank` → `/home/dank/.omp` (command center)
|
||||
- **Branch/Deploy**: `main` synced with `origin/main`. Deploy via `~/.omp/scripts/deploy.sh` (stow-style dotfiles/<pkg>/<path>).
|
||||
- **Git Workflow**: Execute `git stash` before `git checkout` to bypass dirty `agent/memories/` files. PRs branch from `pr/fix-*`.
|
||||
- **Secrets**: `GITEA_TOKEN` extracted to `~/.config/environment.d/secrets.env` (0600). .zshrc has guarded source stub.
|
||||
- **Gitea**: UI at `http://dankclaw:3000`, API resolves to `192.168.0.143:3000`. Repo: `dank/command-center`.
|
||||
# Consolidated Memory
|
||||
|
||||
# Model Configuration
|
||||
- **Files**: `~/.pi/agent/models.json` (source of truth) ↔ `~/.omp/agent/models.yml` (imported/generated). Edit in lock-step to prevent overwrite on regeneration.
|
||||
- **Context Sizing**: Ki-style (×1024). e.g., 200k = 204800. Update both `contextWindow` and `maxTokens` simultaneously.
|
||||
- **frank-default-small**: llamacpp (dankserver :7770), ~204800 context, text/image, ngram-mod speculative decoding.
|
||||
- **frank-default-large**: llamacpp (dankclaw :7770), Qwen3.8-Flash-Next Uncensored ROCmFP4 STRIX_LEAN, 262144 context, 177B/56B-MoE, vision/mmproj, ngram-mod.
|
||||
- **Docs**: `~/.pi/agent/docs/pi/models.md` updated. Port migrated to 7770. MTP head stripped; use `ngram-mod` wording.
|
||||
## Repository & Command Center
|
||||
- **Root**: `~/.omp` (`/home/dank/.omp`)
|
||||
- **Branches**: `main` (synced with origin, 6 ahead at `a9127a0`), `develop` (stashes present)
|
||||
- **Deploy**: `~/.omp/scripts/deploy.sh` (stow-style import into `dotfiles/<pkg>/<path>`)
|
||||
- Modes: `--check` (dry), `--adopt` (identicals), `sync` (default: adopt + link new, quarantine divergents to `.quarantine/<host>/<ts>/<path>`)
|
||||
- Hooks: `core.hooksPath=.githooks` armed on deploy
|
||||
- Host overrides use `zz-<hostname>` convention
|
||||
- **Secrets**: `GITEA_TOKEN` moved from `.zshrc` to untracked `~/.config/environment.d/secrets.env` (0600). Gitea UI at `http://dankclaw:3000` (IP `192.168.0.143:3000`)
|
||||
|
||||
# Packages & Shell
|
||||
- **Shell**: Zsh + `cachyos-zsh-config`. `powerlevel10k-zsh` skipped (inert symlink due to dual sourcing).
|
||||
- **UI/Compositor**: `niri` (Wayland). Default browser: Firefox (`xdg-settings`). Cursor: `capitaine-cursors` @ 48px in `~/.config/niri/cfg/misc.kdl`. Reload via `niri-msg reload` or `kill -SIGUSR1`.
|
||||
- **Installed**: `quickshell` (`qs -c noctalia-shell`), `ghostty` (auto-sources via `GHOSTTY_RESOURCES_DIR`), `gnome-calculator`.
|
||||
## Desktop & Compositor
|
||||
- **Compositor**: `niri` (Wayland). Config in `~/.config/niri/cfg/misc.kdl`
|
||||
- **Desktop Environment**: `noctalia v5` runs bare natively on `dankware` & `blankpad`
|
||||
- Live runtime flip via `qs -c host` → kill & launch bare via spawn-at-startup. Single-instance guard absorbs overlap.
|
||||
- Unified lock chain: `swayidle-lock.service` uses `/usr/bin/noctalia msg session lock` (3 triggers). Resolves via D-Bus session bus (no `WAYLAND_DISPLAY` pinning).
|
||||
- Keybinds: Rewritten for v5 `msg` verbs. Config reload uses `kill -USR1 $(pidof niri)`.
|
||||
- Wallpaper: Rotation pulls from repo-tracked directory.
|
||||
- **Cursor & Browser**: Default browser is `Firefox` (`xdg-settings`). Cursor: `capitaine-cursors`, size `48px` in `niri` kdl config.
|
||||
- **OS/Kernel**: CachyOS Linux 7.2.0-1. Fixed `nvidia-modeset` semaphore deadlock blocking `niri` (GUI freeze/VT down) via `/etc/modprobe.d/nvidia-workarounds.conf` + rebuilt initramfs (`mkinitcpio -P`) + force-reboot.
|
||||
|
||||
# NPU & Hardware
|
||||
- **NPU**: Dankclaw NPU (`gemma4-it:e4b`, FastFlowLM) at `http://192.168.0.143:7771/v1`.
|
||||
- **Image Constraint**: FLM strictly rejects WebP ('Unsupported image format'). Convert upstream to PNG/JPEG.
|
||||
- **Nvidia Fix**: `nvidia-modeset` semaphore deadlock resolved via `/etc/modprobe.d/nvidia-workarounds.conf`, `mkinitcpio -P`, force-reboot.
|
||||
## AI Agent & Model Configuration
|
||||
- **Config Files**: Source of truth `~/.pi/agent/models.json` ↔ `~/.omp/agent/models.yml` (imported/generated). Edit both in lock-step unless using dedicated import.
|
||||
- **Context Sizing**: Uses Ki-style multiples (`163840` = 160×1024). "200k" → `204800`. Update `contextWindow` and `maxTokens` together for `frank-default-small`.
|
||||
- **Providers & Models**:
|
||||
- `llamacpp (dankserver)` @ `http://192.168.0.235:7770/v1`: `frank-default-small` (Ornith-1.5-35B-A3B CRACK Q6_K, ngram-mod, reasoning true). Context: 204800.
|
||||
- `llamacpp (dankclaw)` @ `http://192.168.0.143:7770/v1`: `frank-default-large` (Qwen3.8-Flash-Next Uncensored ROCmFP4 STRIX_LEAN, 177B/56B MoE, 262144 context, vision/mmproj). ngram-mod speculative decoding (MTP head stripped). Old model preserved in `kingjones-Qwen3.8-Flash-Next-ROCmFP4-STRIX.backup/` (~114G).
|
||||
- `dankclaw NPU` @ `http://192.168.0.143:7771/v1`: `gemma4-it:e4b` (FastFlowLM). Context: 131072. Inputs: text, image, audio. Reasoning: true. **Constraint**: FLM decoder rejects WebP; only PNG/JPEG valid. Convert WebP upstream.
|
||||
- **OMP Migration**: `~/.pi/agent/SYSTEM.md` → `~/.omp/agent/APPEND_SYSTEM.md` (8.4KB). `subagent` → `task` tool. `concurrency`/`context`/`async` params dropped/handled natively. `omp config set personality none` removes built-in block. `skills.enableSkillCommands` defaults to true. peon-ping skills auto-discovered from `~/.claude/skills`.
|
||||
|
||||
# OMP & Agent Migration
|
||||
- **Migration**: pi-agent → OMP harness. `SYSTEM.md` → `APPEND_SYSTEM.md` (Comrade Chief Designer persona). `omp config set personality none` removes built-in block.
|
||||
- **Tools**: `subagent` → `task`. `concurrency`, `context`, `async` params dropped/managed by harness.
|
||||
- **Skills**: Auto-discovered from `~/.claude/skills`. Harness docs via `omp://`.
|
||||
- **State**: `main` 6 ahead of origin; push pending. `agent/managed-skills/*` auto-learn.
|
||||
## Residuals & Notes
|
||||
- Dead packages: `noctalia-shell` 4.7.7 & `noctalia-qs` (zero dependents).
|
||||
- v5 Config Layer: TOML-only. Legacy v4 `colors.json`/`plugins.json` inert; custom pa/widgets may revert to v5 defaults.
|
||||
- `noctalia-live` transient unit runs until logout; autostart takeover automatic.
|
||||
- Docs: `/home/dank/.pi/agent/docs/pi/models.md` committed (`eda2edb`), updated for frank-default-large port 7770 & MTP/ngram-mod notes.
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
- 2026-09-14 dankware outage: upstream commit 49afdfe ("Noctalia theme migration") committed config.kdl with include "noctalia.kdl" but noctalia.kdl is a per-host GENERATED file, never in the repo; the same pull set ghostty theme = noctalia and alacritty import = themes/noctalia.toml, both also template-generated and absent here. Niri 26.04 does NOT exit on a config error — it logs "error parsing" and boots with DEFAULT config, producing a half-dead desktop (no keybinds/rules/autostart shell, default output placement). noctalia msg templates-apply answers "ok" but is a NO-OP on noctalia 5.0.1 (opt-in schema mismatch). Working fix (offline, no session restart needed): noctalia theme --theme-json ~/.config/noctalia/colors.json --render "builtin template:output" for each: templates/niri/niri.kdl → ~/.config/niri/noctalia.kdl (plain host-local file, NOT a repo symlink), templates/ghostty/ghostty → ~/.config/ghostty/themes/noctalia, templates/alacritty/alacritty.toml → ~/.config/alacritty/themes/noctalia.toml. Tokens resolve fully from the 16-key colors.json (primary_container etc. are derived). Verify: niri validate rc0; fresh login loads full config (journal "loaded config" + custom output placement). Also verified: kill -USR1 was NOT the cause of the session ending that night — journal showed a fresh niri-session login; don't accept blame for user-initiated logouts.
|
||||
- On this host's niri build, niri msg do reload-config is rejected ("unrecognized subcommand 'do'") — verified 2026-09-10 during the noctalia unification deploy. The working config-reload path is kill -USR1 $(pidof niri) (SIGUSR1 to the niri process); verified on both fleet hosts (dankware pid via /proc, blankpad over ssh). Future keybind/config deploys that need live reload must use the SIGUSR1 path, not niri msg do.
|
||||
- Noctalia fleet architecture UNIFIED 2026-09-10: both dankware and blankpad now run bare noctalia (v5 native, package noctalia 5.0.1-1.1) as the desktop shell, launched via niri spawn-at-startup "noctalia" from repo autostart.kdl. The v4 Quickshell-hosted architecture (qs -c noctalia-shell, JSON settings.json) is retired on dankware; qs host process killed and replaced live by a transient systemd-run unit (noctalia-live) that hands off to autostart at next login — single-instance guard in the binary makes overlap safe. Live config layer on both hosts = TOML only: hand-edit ~/.config/noctalia/config.toml; runtime state ~/.local/state/noctalia/settings.toml loads last and overrides same keys (never hand-edit). Verified mechanics: noctalia msg resolves the running instance via D-Bus session bus, so it works from systemd user-unit context (systemd-run --user --pipe --wait) even though niri's own environ lacks WAYLAND_DISPLAY; spawn-at-startup children do receive a working display connection. Lock keybinds/swayidle unified to noctalia msg session lock; verified verb grammar includes panel-toggle {launcher,session,control-center,...}, volume-up/down/mute, mic-mute, media next/previous/playPause (graceful no-op rc 0 with no active player), brightness-up/down. Wallpapers: wallpaper-next/wallpaper-get confirm rotation draws from the configured [wallpaper] directory on both hosts; current wallpaper stays on the built-in default asset until first rotation after config-reload. Leftover dead packages on dankware (noctalia-shell 4.7.7, noctalia-qs fork) are inert — removal is optional cleanup, zero dependents post-flip.
|
||||
- Divergence explained (as of 2026-09-10): dankware and blankpad both show noctalia 5.0.1-1.1 but run different live architectures because each host's autostart froze at its adoption-era architecture and package upgrades never rewrote autostart commands. Fossil record from pacman install dates: noctalia-shell 4.7.7-3 installed on dankware Jul 3 (v4 Quickshell-hosted architecture, JSON config; module files owned at /etc/xdg/quickshell/noctalia-shell/, launched via qs -c noctalia-shell from base niri package autostart.kdl); noctalia-qs 0.0.12-2 (Quickshell fork hosting the shell) installed Aug 24; v5-era noctalia package landed Sep 6 as a parallel package owning ONLY /usr/bin/noctalia + desktop file + README — CLI/client surface, no shell module. blankpad was provisioned fresh Sep 9 entirely from CachyOS repo packaging (noctalia 5.0.1-1.1 + vanilla quickshell 0.3.1-1.1 + cachyos-niri-noctalia 1.4.0-1; no v4-era packages exist in that repo set), so its zz-blankpad override autostart launches bare noctalia (native v5, TOML config). Consequence: settings.json is genuinely the live config on dankware (v4 code), while blankpad runs true v5 with TOML state at ~/.config/noctalia/config.toml + ~/.local/state/noctalia/settings.toml. Unification candidate when approved: flip both to noctalia as single entrypoint, but verify first that the v5 packaging on dankware ships the shell module (current -Ql evidence says CLI-only) — a unified flip likely requires installing the full v5 package set on dankware first. Diagnostic recipe for this class of question: query pacman install dates + package ownership (pacman -Qi/-Ql/-Qo, pgrep -af) to reconstruct which architecture each host actually runs rather than trusting version labels.
|
||||
|
||||
@@ -1 +1,4 @@
|
||||
Current repo state (`~/.omp/main`) is authoritative. When editing models, update both `models.json` and `models.yml` in lock-step using Ki-style context (200k = 204800). Use `git stash` before checkout to avoid memory file conflicts. For NPU/FLM tasks, always convert WebP to PNG/JPEG. OMP agents use `APPEND_SYSTEM.md` and `task` tool. Deploy dotfiles with `deploy.sh` (sync/adopt modes); secrets are environment-managed. Niri compositor reloads without full session restart. NPU inference on dankclaw port 7770/7771.
|
||||
Current environment: `~/.omp` repo (main/develop), CachyOS + niri/Wayland + noctalia v5 (TOML-only, native). Desktop lock uses D-Bus msg; keybinds use v5 verbs; cursor is capitaine-cursors 48px. NPU deadlock fixed via nvidia-workarounds.conf.
|
||||
AI Config: `~/.omp/agent/models.yml` & `~/.pi/agent/models.json` are locked. Edit both. Context uses Ki (200k=204800). Providers: `llamacpp dankserver` (frank-default-small, 204800 ctx) & `llamacpp dankclaw` (frank-default-large Qwen3.8, 262144 ctx, ngram-mod). NPU `gemma4-it:e4b` on :7771 rejects WebP.
|
||||
Git: Stash before checkout when `agent/memories/` is dirty. Deploy via `deploy.sh` (stow, sync mode). GITEA_TOKEN in `~/.config/environment.d/secrets.env`. OMP migration complete: use `APPEND_SYSTEM.md`, `task` tool, auto-discovered skills.
|
||||
Prioritize repo-tracked paths. v5 legacy v4 JSONs are inert.
|
||||
|
||||
@@ -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`.
|
||||
+5
@@ -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.
|
||||
+5
@@ -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.
|
||||
+9
@@ -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
|
||||
+17
@@ -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.
|
||||
+5
@@ -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
|
||||
+6
@@ -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.
|
||||
+5
@@ -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.
|
||||
+11
@@ -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
|
||||
+9
@@ -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 "$@"
|
||||
-2
@@ -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
|
||||
@@ -7,4 +7,3 @@ include "./cfg/layout.kdl"
|
||||
include "./cfg/rules.kdl"
|
||||
include "./cfg/misc.kdl"
|
||||
|
||||
include "noctalia.kdl"
|
||||
|
||||
Reference in New Issue
Block a user