From 88c5f2da1fd1b8bf060707c14da844e30d1a1137 Mon Sep 17 00:00:00 2001 From: flemming-it Date: Thu, 7 May 2026 13:49:21 +0200 Subject: [PATCH] fix(studio): Cmd+; opens Settings (Cmd+, is reserved by macOS) (v0.12.1) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Operator reported Cmd+, doing nothing. macOS reserves Cmd+, for the native app-Preferences menu item which Flutter Desktop doesn't wire up — the keystroke is captured by the OS before the Shortcuts widget sees it. Adds Cmd+; as the working alternative; keeps Cmd+, registered too so a future Flutter version (or a native-menu setup) can light it up. Tooltip on the sidebar gear icon now reads "Settings (⌘;)" so the discoverable affordance also tells you the shortcut. Signed-off-by: flemming-it --- lib/main.dart | 14 +++++++++++--- pubspec.lock | 2 +- pubspec.yaml | 2 +- 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/lib/main.dart b/lib/main.dart index 2910d99..c4ebbd2 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -23,7 +23,7 @@ import 'widgets/widgets.dart'; /// Studio's own build version. Bump on every UI commit so the /// running app self-identifies — visible in the sidebar header /// and quick-glance proof that you're seeing the current build. -const String kStudioVersion = '0.12.0'; +const String kStudioVersion = '0.12.1'; Future main() async { WidgetsFlutterBinding.ensureInitialized(); @@ -185,7 +185,15 @@ class _StudioShellState extends State { LogicalKeyboardKey(LogicalKeyboardKey.digit1.keyId + i), meta: true, ): _GoToPageIntent(i), - // Cmd+, opens the settings dialog (macOS convention). + // Settings dialog. macOS reserves Cmd+, for the native + // app-Preferences menu item, which Flutter Desktop + // doesn't wire up — the keystroke is captured by the OS + // before it reaches our Shortcuts widget. Cmd+; is the + // working alternative; we register Cmd+, too for + // completeness in case a future Flutter version (or a + // native-menu setup) lets it through. + const SingleActivator(LogicalKeyboardKey.semicolon, meta: true): + const _OpenSettingsIntent(), const SingleActivator(LogicalKeyboardKey.comma, meta: true): const _OpenSettingsIntent(), }, @@ -335,7 +343,7 @@ class _Sidebar extends StatelessWidget { const Spacer(), IconButton( icon: const Icon(Icons.settings_outlined, size: 16), - tooltip: 'Hub endpoint…', + tooltip: 'Settings (⌘;)', visualDensity: VisualDensity.compact, onPressed: () async { final saved = await FaiSettingsDialog.show(context); diff --git a/pubspec.lock b/pubspec.lock index 5005ab4..899571a 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -79,7 +79,7 @@ packages: path: "../fai_dart_sdk" relative: true source: path - version: "0.4.0" + version: "0.5.0" fake_async: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index 8868302..ac8fed7 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,7 +1,7 @@ name: fai_studio description: "F∆I Studio — desktop GUI for the F∆I hub" publish_to: 'none' -version: 0.12.0 +version: 0.12.1 environment: sdk: ^3.11.0-200.1.beta