From fd7844f2f264c51db027b945031704c36169b4c6 Mon Sep 17 00:00:00 2001 From: "Danilo M." Date: Fri, 23 Oct 2026 15:03:41 +0200 Subject: companion: the window, her inputs and her drawing Companion.qml is a Top-layer PanelWindow bottom-right of the focused monitor, masked to her body so every other click passes through. It gathers the inputs (Hyprland's custom typing and delete events, the assistant's state and replied signal, the balloons on her screen, three IdleMonitors, clicks and a hover), hands a snapshot to Mood.js, and speaks from Lines.js. Figure.qml crossfades frames, bobs, drops out of view and back, and plays the self-destruct. Figure.qml was planned as Sprite.qml, but QtQuick ships a Sprite type and an explicit import beats the directory's own file: the shell failed to load with "Cannot assign to non-existent property onSettled". Maximised windows report fullscreen 1 and most windows here are, so only 2 hides her. She only feels the pointer once it is on her, so the dodge waits 0.6 s and a quick click still lands. Co-Authored-By: Claude Opus 5.5 --- desktop/shell.qml | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'desktop/shell.qml') diff --git a/desktop/shell.qml b/desktop/shell.qml index 8579709..de190e8 100644 --- a/desktop/shell.qml +++ b/desktop/shell.qml @@ -40,6 +40,7 @@ import "modules/user" import "modules/vm" import "island" import "assistant" +import "companion" ShellRoot { // Quickshell exits once no window is visible, and the drawer is closed @@ -125,6 +126,10 @@ ShellRoot { // socket. See assistant/README.md. Assistant { id: assistant; swapping: asstSettings.loading; hears: asstSettings.hears } + // The desktop companion, bottom-right of the focused monitor, on SUPER+\. + // She reads the assistant's state. See companion/README.md. + Companion { asst: assistant } + // Opening the assistant loads its preferred model if another one is in // VRAM. See modules/assistant/README.md. Connections { -- cgit v1.2.3