mirror of
https://github.com/DeeJanuz/frametop.git
synced 2026-10-06 02:00:06 +02:00
Report: the gaze service, our eye tracker, and their logs
A gaze problem couldn't be told from a report: it had no gaze section. A user's report of 2026-10-05 showed only that the gaze service ran and our tracker was picked. The report now has a Gaze section: whether the gaze service and our tracker's frame grabber are enabled and running, when SteamVR's correction and our tracker's calibration were made (or "none"), and the service's status (ft-gazectl status, on one line: the tracker in use, whether it's awake and why not, checks.problem). Then the last 10 checks and calibration dots (checks.jsonl: each dot's reply and whether it was taken), the gaze service's last 60 lines without podman's exec lines, and the frame grabber's last 20. Nothing in them is an eye image. Tested on this Frame: each section fills in, and the status is one line. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
307e2b7308
commit
1037d4e125
1 file changed
+22
@@ -68,6 +68,28 @@ section "Pointer helper (last 60 lines)"
|
||||
journalctl --user -u frametop-pointer -n 60 --no-pager -o short 2>/dev/null
|
||||
section "Power service (last 30 lines)"
|
||||
journalctl --user -u frametop-power -n 30 --no-pager -o short 2>/dev/null
|
||||
section "Gaze"
|
||||
echo "frametop-gaze: $(systemctl --user is-enabled frametop-gaze 2>/dev/null) / $(systemctl --user is-active frametop-gaze 2>/dev/null)"
|
||||
echo "frametop-eyegrab (our eye tracker's frame grabber): $(systemctl is-enabled frametop-eyegrab 2>/dev/null) / $(systemctl is-active frametop-eyegrab 2>/dev/null)"
|
||||
for f in calibration.json eyes/calibration.json; do # SteamVR's correction, our tracker's calibration
|
||||
p=~/.local/state/frametop/gaze/$f
|
||||
echo "$f: $([ -f "$p" ] && date -r "$p" '+%F %T' || echo none)"
|
||||
done
|
||||
python3 - "$repo" <<'PY' 2>&1 || true
|
||||
import json, subprocess, sys
|
||||
out = subprocess.run([sys.executable, sys.argv[1] + "/gaze/ft-gazectl", "status"], capture_output=True, text=True, timeout=10)
|
||||
text = (out.stdout or out.stderr).strip()
|
||||
try:
|
||||
print("status:", json.dumps(json.loads(text), separators=(",", ":")))
|
||||
except ValueError:
|
||||
print("status:", text or "no answer from the gaze service")
|
||||
PY
|
||||
section "Gaze checks and calibration dots (last 10)"
|
||||
tail -n 10 ~/.local/state/frametop/gaze/checks.jsonl 2>/dev/null | cut -c1-400 || true
|
||||
section "Gaze service (last 60 lines, podman's left out)"
|
||||
journalctl --user -u frametop-gaze -n 300 --no-pager -o short 2>/dev/null | grep -v ' podman\[' | tail -n 60
|
||||
section "Our eye tracker's frame grabber (last 20 lines)"
|
||||
journalctl -u frametop-eyegrab -n 20 --no-pager -o short 2>/dev/null
|
||||
for f in /tmp/frametop-session.log /tmp/frametop-screens.log /tmp/frametop-layout.log; do
|
||||
section "$f (last 60 lines)"
|
||||
tail -n 60 "$f" 2>/dev/null || echo "missing"
|
||||
|
||||
Reference in new issue
Block a user