diff options
| -rw-r--r-- | desktop/companion/README.md | 13 | ||||
| -rw-r--r-- | desktop/companion/frames.txt | 15 |
2 files changed, 27 insertions, 1 deletions
diff --git a/desktop/companion/README.md b/desktop/companion/README.md index 37aab16..4fbe887 100644 --- a/desktop/companion/README.md +++ b/desktop/companion/README.md @@ -11,7 +11,7 @@ The design, with what was measured on the way, is | `Companion.qml` | the window, inputs, timers, speech, IPC (`companion toggle/show/hide`) | | `Figure.qml` | draws a frame: crossfade, bob, drop out and back, explosion | | `Mood.js` | which state wins, from a snapshot; all the timings are its `T` | -| `Lines.js` | her reaction and per-app lines, and the opening monologue | +| `Lines.js` | her reaction, per-app and per-artist lines, and the opening monologue | | `Admired.qml` | the wallpaper list she blushes at, and what wallp has on each monitor | | `ListFile.js` | that list as plain text: parse and toggle | | `prep-frames` | generated images to display frames | @@ -77,6 +77,17 @@ frame falls back to its outfit's `base`. sings once for `Mood.T.singHold`, 4 s, and says a line if the usual 30 s cooldown allows it. A shell start with them already on is not a connection: Bluetooth reads empty for ~2 s, then populates. +- What is playing is `modules/sound/Player.qml`, which already drops the + playerctld and browser-integration duplicates. A new artist+title while + playing makes her DJ for `Mood.T.djHold`, 6 s (`dj` and `dj-scratch` + cycling), and say the artist's line if one matches: lowercased keys in + `Lines.artists`, matched as a substring, edited on Settings > Companion + artists into `Prefs.companionArtists`. Pause and resume of the same + track is not a change; a shell start with music on DJs once. While + music plays, the first idle stage is a groove instead of bored: + `whistle`, `headbang` (`headbang-up`/`-down` cycling) or `airguitar`, + picked at random, with a `groove` line; yawning and lying down are + unchanged. - She only feels the pointer while it is over her: Quickshell has no global pointer and Hyprland sends no motion events. Hence the 0.6 s dodge rather than moving away as the pointer approaches. diff --git a/desktop/companion/frames.txt b/desktop/companion/frames.txt index 64a57fb..5a67f40 100644 --- a/desktop/companion/frames.txt +++ b/desktop/companion/frames.txt @@ -76,6 +76,15 @@ dress/stretch <- dress/base : She stretches both arms up above her head, waking dress/shoved <- refs/shoved-7 : Keep her face, her scared expression, her uncovered eyes and both raised hands exactly as they are. Change her body and legs: she is in the air, lifted completely off the ground, knocked flying toward the left side of the image by a strong blast from the right; both feet off the ground, legs trailing behind her toward the right side, her body tilted, her hair and skirt blown toward the left. No ground, no blast effect drawn. ${KEEP_BARE} # Headphones connecting: a few seconds of her singing along. dress/sing <- dress/base : ${SING} ${POSE} ${KEEP_BARE} +# Music: behind the decks on a track start or change, and the grooves +# that replace boredom while music plays. +DECK = A small black DJ console with two turntables and a mixer stands in front of her at waist height, hiding her legs. +dress/dj <- dress/base : ${DECK} Both gloved hands rest on the turntables, head nodding, a small smile; she wears black over-ear headphones. ${EYES} ${KEEP} +dress/dj-scratch <- dress/dj : Change only her arms: the hand on the left side of the image scratches a record, the other holds one headphone cup to her ear. Everything else exactly the same. ${KEEP} +dress/whistle <- dress/base : Change only her expression: lips puckered, whistling, a couple of small black musical notes floating beside her mouth. ${POSE} ${EYES} ${KEEP} +dress/headbang-up <- dress/base : She headbangs: head tipped back, hair flying up, eyes shut, fists clenched at her sides. ${BARE} ${KEEP_BARE} +dress/headbang-down <- dress/headbang-up : Change only her head: tipped sharply forward and down, hair thrown forward over her face. Everything else exactly the same. ${KEEP_BARE} +dress/airguitar <- dress/base : She plays an invisible air guitar: one hand strumming at her hip, the other fretting in the air to the side, knees bent, eyes shut, mouth open in a grin. Nothing in her hands. ${BARE} ${KEEP_BARE} # --- the leotard set: the same frames, after the self-destruct leotard/base <- dress/base : ${LEOTARD} @@ -109,3 +118,9 @@ leotard/stretch <- dress/stretch : ${LEOTARD} leotard/shoved <- dress/shoved : ${LEOTARD} leotard/sing <- dress/sing : Her skirt is gone, revealing a plain white leotard underneath. Change nothing else: she keeps her closed eyes, her black over-ear headphones, the musical notes beside her head, her pose, black gloves, puffy black juliet sleeves, black bodice, black thighhigh boots, black hairband, lips and the small mole under her mouth. Same character, chibi proportions, art style and white background. leotard/scorched <- leotard/base : Right after an explosion: her clothes lightly scorched and smudged with soot, a few wisps of smoke rising from her, hair slightly messy, a dazed flat expression; standing, arms at her sides. Her eyes stay uncovered, no blindfold. Her top stays black: the black bodice with its chest cutout and the puffy black juliet sleeves, exactly as in the image; the plain white leotard shows only below her waist, where the skirt was. She keeps her black gloves, black thighhigh boots, black hairband, lips and the small mole under her mouth. Same character, chibi proportions, art style and white background. +leotard/dj <- dress/dj : ${LEOTARD} +leotard/dj-scratch <- dress/dj-scratch : ${LEOTARD} +leotard/whistle <- dress/whistle : ${LEOTARD} +leotard/headbang-up <- dress/headbang-up : ${LEOTARD} +leotard/headbang-down <- dress/headbang-down : ${LEOTARD} +leotard/airguitar <- dress/airguitar : ${LEOTARD} |
