Windows Taim features that are not in the Linux window yet, and how to add each one, for the assistant who is reading this

Read TAIM-TOOLS.txt first. Plain sentences when you answer the person: no markdown, no asterisks, no bullets, no tables, because a screen reader reads symbols aloud.

Why these are missing. The Windows window gets them from a voice stack the Linux package does not carry: the voice line (speech recognition, text to speech, a microphone listener) and Windows-only calls. The Linux window talks to assistants and plays Taim's own sounds. Everything below can be added on Linux, but each needs a choice only the person can make, so ask first, build the smallest version, test it by hand, and tell the person what changed. Edit only files under ~/.local/share/taim, and keep a copy of any file before you change it (cp taim_gtk.py taim_gtk.py.before-NAME). The updater replaces Taim's program files, so keep your additions in a separate file of your own, for example taim_extras.py, and add one line to taim_gtk.py to load it; then an update only needs that one line put back. Never touch sounds/scheme.json, the settings in ~/.config/taim, or an assistant's json file without asking.

1. OPEN THE FILE MANAGER (Windows: Control O, Open File Explorer). The easiest one. In taim_gtk.py add an action that runs subprocess.Popen(["xdg-open", str(Path.home())]) and give it the accelerator <Control>o in the Tools menu. Windows opens Explorer so the person can browse to a file and tell an assistant about it; on Linux xdg-open opens whatever file manager they use. Test: press Control O and a file manager window opens.

2. SPEECH DICTIONARY (Windows: Control D). A JSON file of pronunciations: "word": "how to say it". Matching is by any capitals; a second object under the key "case_sensitive" matches only the exact spelling (AM is not am). taim_dictionary.py in this folder already reads and writes that format; point its DICTIONARY path at ~/.config/taim/pronunciations.json. It only matters once Taim itself speaks replies aloud (see item 4). Until then, Orca has its own pronunciation dictionary: Orca preferences, Pronunciation tab, which the person can use today with no code. When Taim speaks, run the text through the dictionary just before it goes to the speech engine: replace each written word with its spoken form, case-sensitive entries first. The Windows window has a dialog for editing it with a Test button (class DictionaryDialog in taim.py); on Linux a Gtk.Window with a list, two entries and Add, Remove and Test buttons does the same job.

3. SPEAKER AND MICROPHONE PER ASSISTANT (Windows: Alt+A in an assistant's settings). Each assistant has its own output device and input device. On Linux, list devices with wpctl status (PipeWire) or pactl list short sinks and pactl list short sources. Taim already plays through sounddevice when it is installed (taim_audio.py), which takes a device name or number, so the output choice is a stored setting passed to open_sound; sounddevice.query_devices() lists the choices. Store the choice per assistant in the Taim settings the way level_NAME and mood_NAME are stored. The microphone only matters once push to talk exists (item 4).

4. PUSH TO TALK AND SPEAKING REPLIES (Windows: the push-to-talk key, Control Alt T to switch hold or toggle). This is the largest piece and the person decides whether they want it. Three parts. Recording: sounddevice.InputStream while the key is held. Recognition: a local model such as faster-whisper or whisper.cpp (run python3 taim_machine.py first to see whether this computer can carry it; never assume a graphics card). Speaking: a local voice such as Piper, played through the same sounddevice path. The key itself is the hard part on Omarchy because it uses Wayland (Hyprland), where an ordinary program cannot listen for keys while it is in the background. The reliable way is a Hyprland binding in ~/.config/hypr/bindings.conf, for example bind = , F9, exec, taim-ptt toggle, which runs a small command that tells the running Taim to start or stop recording (a file or a Unix socket in ~/.config/taim is enough). Toggle mode (press to start, press again to stop) fits this naturally; hold mode needs a bindr release binding as well. The Windows version of all this is taim_ptt.py, the file to read for the event shapes: listening, transcribing, text, error. The person's own voice-line keys are separate from Taim's.

5. TAB ORDER (Windows: the assistants list can be reordered). The assistants appear in the order of their json files. To let the person reorder, store a list of assistant names in the settings and sort by it when the tabs are built, and add Alt+Up and Alt+Down in the assistants list to move one. Small and safe.

6. ALL-ASSISTANTS SLIDERS (Windows: Alt+A with the All entry). One set of voice volume, sound volume and mood sliders that sets every assistant at once. The per-assistant sliders already exist in the Linux window; the All entry just loops over every assistant and writes the same value to each. Ask before changing existing levels, since a per-assistant level is something the person tuned.

7. HOURLY PROJECT SNAPSHOTS AND THE HEALTH WATCHDOG. Windows Taim saves each project to a git repository hourly and watches that its own parts are healthy. On Linux, a systemd user timer (systemctl --user, a taim-snapshot.timer that runs every hour) calling a small script that does git add, commit and push for each project folder does the same with no model and no tokens. Never push anything with a password or key in it, and report a project that cannot be saved instead of forcing it.

After you add any of these, tell the person in plain words what it does and which keys it uses, and write a line in the person's notes about it so the next session knows. If a feature turns out to be useful to everyone, tell Jim by email at jim@fidlerinnovations.com so it can be added to the shipped package for all Linux users.
