From 536332f61619026792cdd02f45469100ddd07b61 Mon Sep 17 00:00:00 2001 From: "Danilo M." Date: Fri, 23 Oct 2026 15:59:32 +0200 Subject: companion: a remark for the program in front of her The focused window's class, from Hyprland's activewindow event, picks a line from Lines.js keyed app:. The event fires on every title change too, so she reacts only when the class changes, and a third of the time, under the existing 30 s line cooldown so alt-tabbing does not make her chatter. Classes come from the window rules in the live config; one without lines says nothing. Lines only, no frames of her own yet. Co-Authored-By: Claude Opus 5.5 --- desktop/companion/Lines.js | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'desktop/companion/Lines.js') diff --git a/desktop/companion/Lines.js b/desktop/companion/Lines.js index 6f387aa..12b54d6 100644 --- a/desktop/companion/Lines.js +++ b/desktop/companion/Lines.js @@ -27,6 +27,23 @@ var lines = { dodge: ["...Fine.", "I'll move."], destruct: ["Self-destruct sequence initiated."], aftermath: ["...That was unpleasant."], + + // The focused window's class, lowercased, as "app:". A class + // with no entry says nothing. + "app:firefox": ["Researching again?", "Don't open too many tabs.", "The Bunker's network is faster."], + "app:kitty": ["A terminal. Serious work.", "Careful with that rm.", "I'll watch your commands."], + "app:discord": ["Talking to the Resistance?", "Don't tell them where we are."], + "app:signal": ["Encrypted. Good."], + "app:steam": ["Training simulation?", "Don't play all night."], + "app:gimp": ["Making art?"], + "app:com.obsproject.studio": ["Are we recording?", "I'll stay out of frame."], + "app:md.obsidian.obsidian": ["Writing a report?", "Taking notes. Good habit."], + "app:sublime_text": ["Writing code?", "Mind the typos."], + "app:qtmaildir": ["Any orders from Command?", "Mail. Anything urgent?"], + "app:virt-manager": ["More machines?", "Androids running androids."], + "app:audacious": ["Music. I like this."], + "app:llamachat": ["Talking to Pod?"], + "app:qtpass": ["I'm not looking."], }; // The game's opening, one sentence per bubble. -- cgit v1.2.3