12 Commits
Author SHA1 Message Date
Storm Dragon 60f7f7a2e9 Code review and fixes. 2026-11-02 23:37:45 -05:00
hjozwiak 3026bc55c2 Bring in goodies from testing.
# Conflicts:
#	docs/testing/wine-proton.md
2026-11-02 11:30:32 -05:00
hjozwiak 9a10a15b68 Read Wine settings live at poll and spawn
Phase 2 of the Wine/Proton stage (decisions 3, 4, 16, 17, 19 in docs/testing/wine-proton.md): replace the Wine manager's startup snapshot with a live settings source read once per poll, so accepted global settings take effect with no reader restart. The source publishes only the active/global profile's Wine values; per-application profile switching never changes the governing list. A newly listed running program restarts its helper once in the same mode; removals and clearing the global switch never downgrade a running helper.
2026-11-02 01:15:33 -05:00
hjozwiak 71093286c7 Add Wine ready-record and mixed-prefix spawn semantics
Phase 1 of the Wine/Proton stage (decisions 2, 5, 16, 17, 18, 24 in docs/testing/wine-proton.md): classify the helper exclusion-count line as info, parse the ready hook_exclusions count, mirror programs=[...] extra=[...] in the helper-start record, and stop passing prefix-wide --no-dialog-reader merely because a listed program is present, so ordinary programs in a mixed prefix keep dialog reading. Wholesale mode remains for the global controller-only switch, the environment override, and helpers whose ready record does not confirm the exclusions sent; unconfirmed binaries are remembered. A newly listed running program restarts its helper once in the same mode; removals never downgrade.
2026-11-01 23:27:55 -05:00
ak47 92d6ad3cc4 Code review and cleanup. 2026-11-01 22:01:32 -05:00
Storm Dragon f2cc47c8a0 Merged changes from hunter. Attempt to fix cthulhu announcing modifiers when suspended for xterm. 2026-10-31 16:07:29 -04:00
Storm Dragon 9538776fe3 Publish helper test output atomically and patch the release package 2026-10-31 11:03:48 -04:00
deedra 17383f732e Keep Wine accessibility helpers on the reader's session bus
A Wine application can inherit a different D-Bus session address from the
running Cthulhu instance. The helper manager previously copied that address
from the application's environment, redirecting accessibility requests to
a bus where the supervising reader was unavailable. This left foobar2000
and its Preferences dialog silent despite working native control support.

Retain the reader's inherited DBUS_SESSION_BUS_ADDRESS when launching a
helper. Continue taking the application's display, runtime directory,
Wine prefix and loader so hooks still attach to the correct Wine session.
The manager remains responsible for helper startup and shutdown.

Extend the existing manager lifecycle regression to supply conflicting
application and reader bus addresses. Assert that the helper receives the
reader's bus, the application's display, the expected prefix and the
managed-helper marker, while retaining the shutdown checks. The regression
failed against the original implementation before the fix.

Validation:
- GOPROXY=off go test ./internal/wine -count=1
- GOPROXY=off go test -race ./internal/wine -count=1
- GOPROXY=off go vet ./internal/wine
- Built and installed the reader; configuration validation passed.
- After reload, both the default-prefix and Bard helpers used the reader's
  bus. Foobar2000 Preferences opened on workspace 3 without settings changes.
- The user subsequently confirmed that the installed changes look good.
2026-10-25 14:56:36 -07:00
Storm Dragon 133953e972 Report wine-access version if available in version commands. 2026-10-24 15:19:43 -04:00
Storm Dragon d756ceb2b2 Integrate with wine-access logging. 2026-10-15 12:50:15 -04:00
Storm Dragon 7f78177786 libreoffice support started, still broken. Some updates to how wine-access gets called. 2026-10-14 16:24:49 -04:00
Storm Dragon 069fc674dc Cthulhu is no longer a fork. Now it is a screen reader written in Golang. 2026-10-14 00:16:34 -04:00