From 29f90360332cfa04c307cd46ca68331dbefdf753 Mon Sep 17 00:00:00 2001 From: vegu-ai-tools <152010387+vegu-ai-tools@users.noreply.github.com> Date: Thu, 16 Apr 2026 00:13:44 +0300 Subject: [PATCH] feat: Enhance keyboard modifier support for macOS --- CHANGELOG.yaml | 1 + docs/snippets/tips.md | 4 ++-- docs/user-guide/agents/voice/index.md | 4 ++-- docs/user-guide/scenario-tools.md | 3 +++ talemate_frontend/src/components/AIAgent.vue | 3 ++- .../src/components/AssetViewMixin.js | 6 ++++-- .../src/components/CharacterMessage.vue | 3 ++- .../ContextInvestigationMessage.vue | 3 ++- .../src/components/ContextualGenerate.vue | 5 +++-- .../src/components/MessageAssetImage.vue | 5 +++-- .../src/components/NarratorMessage.vue | 3 ++- .../src/components/NodeEditor.vue | 8 +++++--- .../src/components/RequestInput.vue | 8 ++++++-- .../src/components/SceneMessages.vue | 4 +++- .../src/components/SceneTools.vue | 20 ++++++++++--------- .../src/components/SceneToolsActor.vue | 8 +++++--- .../src/components/SceneToolsCreative.vue | 14 +++++++------ .../src/components/SceneToolsDirector.vue | 10 ++++++---- .../src/components/SceneToolsNarrator.vue | 20 ++++++++++--------- .../src/components/SceneToolsVisual.vue | 3 ++- .../src/components/TalemateApp.vue | 11 ++++++---- .../src/components/VisualImageView.vue | 3 ++- .../src/components/VisualLibraryScene.vue | 6 ++++-- .../components/WorldStateManagerCharacter.vue | 9 ++++++--- .../WorldStateManagerHistoryEntry.vue | 4 +++- .../src/utils/keyboardModifiers.js | 19 ++++++++++++++++++ talemate_frontend/src/utils/litegraphUtils.js | 9 +++++---- 27 files changed, 129 insertions(+), 67 deletions(-) create mode 100644 talemate_frontend/src/utils/keyboardModifiers.js diff --git a/CHANGELOG.yaml b/CHANGELOG.yaml index 0a57dcb9..cf5e9388 100644 --- a/CHANGELOG.yaml +++ b/CHANGELOG.yaml @@ -34,6 +34,7 @@ - "Narrate Progress: Fixed narration sometimes generating screenplay-style dialogue entries instead of continuous narrative prose." - "Advance Time: Fixed toolbar time advancement being completely non-functional due to a missing websocket handler. Also fixed invalid ISO 8601 duration strings for the 1 week and 2 weeks options." - "Node Graph: Fixed `data/MakeDict` and `data/MakeList` leaking their initial value as a shared mutable reference across graph executions. Downstream in-place mutations (e.g., writing into a dict fed into SetState) would persist on the node and appear on the next run as stale data. Both nodes now deep-copy their configured default before emitting it." + - "macOS Modifiers: Ctrl+click affordances throughout the UI now also accept Cmd (Meta) on macOS, where the OS reserves Ctrl+click for the system context menu. Tooltips, hints, and docs label the modifier as Cmd on Mac and Ctrl elsewhere. Affects regenerate, scene tools (narrator/director/actor/creative), world state manager, contextual generate, message asset image, autocomplete (Ctrl+Enter), and history navigation. (#261)" improvements: - "System Prompt Override Indicators: The system prompt override list now shows a pencil icon next to entries that have an active override, making it easy to see which prompts have been customized." - "Search Strictness: The distance_mod embedding preset value is now a float (was int) with a range of 0.1–2.0, allowing both tighter and looser similarity matching. A 'Search Strictness' slider is now available in the Context Database UI, letting users tune search sensitivity on the fly. Changes persist to the active embedding preset immediately." diff --git a/docs/snippets/tips.md b/docs/snippets/tips.md index 6c227b8b..c6e52c45 100644 --- a/docs/snippets/tips.md +++ b/docs/snippets/tips.md @@ -5,14 +5,14 @@ !!! tip "Autocomplete using AI" - **:material-auto-fix: Autocomplete** - press `ctrl+Enter` while the cursor is in the input field to use AI to autocomplete the current content, you + **:material-auto-fix: Autocomplete** - press `ctrl+Enter` (or `cmd+Enter` on macOS) while the cursor is in the input field to use AI to autocomplete the current content, you !!! tip "Generate using AI" **:material-auto-fix: Generate** - press the **generate** button on top of the input field to let the AI generate the content based on the existing details. - **:material-auto-fix: Autocomplete** - press `ctrl+Enter` while the cursor is in the input field to use AI to autocomplete the current content, you + **:material-auto-fix: Autocomplete** - press `ctrl+Enter` (or `cmd+Enter` on macOS) while the cursor is in the input field to use AI to autocomplete the current content, you diff --git a/docs/user-guide/agents/voice/index.md b/docs/user-guide/agents/voice/index.md index be3eb2d7..641b181f 100644 --- a/docs/user-guide/agents/voice/index.md +++ b/docs/user-guide/agents/voice/index.md @@ -38,8 +38,8 @@ If your voice agent is disabled - indicated by the grey dot next to the agent - ![Agent disabled](/talemate/img/0.26.0/agent-disabled.png) ![Agent enabled](/talemate/img/0.26.0/agent-enabled.png) -!!! note "Ctrl click to toggle agent" - You can use Ctrl click to toggle the agent on and off. +!!! note "Ctrl/Cmd click to toggle agent" + You can use Ctrl click (or Cmd click on macOS) to toggle the agent on and off. ## Voice Library Management diff --git a/docs/user-guide/scenario-tools.md b/docs/user-guide/scenario-tools.md index 2795b115..598f837d 100644 --- a/docs/user-guide/scenario-tools.md +++ b/docs/user-guide/scenario-tools.md @@ -1,5 +1,8 @@ # Scene Tools +!!! note "Mac users" + Throughout this guide, hold **Cmd** wherever **Ctrl** is mentioned. macOS reserves `Ctrl`+click for the system context menu, so Talemate also accepts the Command key as the primary modifier on every click and shortcut. + ## Agent Activity Bar ![Agent activity bar showing active agents](/talemate/img/0.35.0/agent-activity-bar.png) diff --git a/talemate_frontend/src/components/AIAgent.vue b/talemate_frontend/src/components/AIAgent.vue index 1d7991e3..d8e070d0 100644 --- a/talemate_frontend/src/components/AIAgent.vue +++ b/talemate_frontend/src/components/AIAgent.vue @@ -106,6 +106,7 @@