diff --git a/lib/models/settings/client_settings_model.dart b/lib/models/settings/client_settings_model.dart index 224cfdf7d..688ceecc4 100644 --- a/lib/models/settings/client_settings_model.dart +++ b/lib/models/settings/client_settings_model.dart @@ -232,12 +232,24 @@ class Vector2 { static Vector2 fromPosition(Offset windowPosition) => Vector2(x: windowPosition.dx, y: windowPosition.dy); } -Map get _defaultGlobalHotKeys => { - for (var hotKey in GlobalHotKeys.values) - hotKey: switch (hotKey) { - GlobalHotKeys.toggleSideBar => KeyCombination(key: LogicalKeyboardKey.keyQ), - GlobalHotKeys.search => - KeyCombination(key: LogicalKeyboardKey.keyK, modifier: LogicalKeyboardKey.controlLeft), - GlobalHotKeys.exit => KeyCombination(key: LogicalKeyboardKey.keyQ, modifier: LogicalKeyboardKey.controlLeft), +Map get _defaultGlobalHotKeys => switch (defaultTargetPlatform) { + TargetPlatform.macOS => { + for (var hotKey in GlobalHotKeys.values) + hotKey: switch (hotKey) { + GlobalHotKeys.toggleSideBar => KeyCombination(key: LogicalKeyboardKey.keyQ), + GlobalHotKeys.search => + KeyCombination(key: LogicalKeyboardKey.keyK, modifier: LogicalKeyboardKey.superKey), + GlobalHotKeys.exit => KeyCombination(key: LogicalKeyboardKey.keyQ, modifier: LogicalKeyboardKey.superKey), + }, }, + _ => { + for (var hotKey in GlobalHotKeys.values) + hotKey: switch (hotKey) { + GlobalHotKeys.toggleSideBar => KeyCombination(key: LogicalKeyboardKey.keyQ), + GlobalHotKeys.search => + KeyCombination(key: LogicalKeyboardKey.keyK, modifier: LogicalKeyboardKey.controlLeft), + GlobalHotKeys.exit => + KeyCombination(key: LogicalKeyboardKey.keyQ, modifier: LogicalKeyboardKey.controlLeft), + }, + } }; diff --git a/lib/models/settings/key_combinations.dart b/lib/models/settings/key_combinations.dart index a21b23edb..63f6a8af4 100644 --- a/lib/models/settings/key_combinations.dart +++ b/lib/models/settings/key_combinations.dart @@ -1,5 +1,6 @@ import 'dart:convert'; +import 'package:flutter/foundation.dart'; import 'package:flutter/services.dart'; import 'package:freezed_annotation/freezed_annotation.dart'; @@ -105,7 +106,30 @@ class LogicalKeyboardSerializer extends JsonConverter "Space", _ => keyLabel }; + return switch (this) { + LogicalKeyboardKey.space => "Space", + + // macOS-style modifier symbols + LogicalKeyboardKey.meta || + LogicalKeyboardKey.metaLeft || + LogicalKeyboardKey.metaRight || + LogicalKeyboardKey.superKey => + defaultTargetPlatform == TargetPlatform.macOS ? "⌘" : "Super", + LogicalKeyboardKey.alt || + LogicalKeyboardKey.altLeft || + LogicalKeyboardKey.altRight => + defaultTargetPlatform == TargetPlatform.macOS ? "⌥" : "Alt", + LogicalKeyboardKey.control || + LogicalKeyboardKey.controlLeft || + LogicalKeyboardKey.controlRight => + defaultTargetPlatform == TargetPlatform.macOS ? "⌃" : "Ctrl", + LogicalKeyboardKey.shift || LogicalKeyboardKey.shiftLeft || LogicalKeyboardKey.shiftRight => "Shift ⇧", + LogicalKeyboardKey.arrowUp => "↑", + LogicalKeyboardKey.arrowDown => "↓", + LogicalKeyboardKey.arrowLeft => "←", + LogicalKeyboardKey.arrowRight => "→", + _ => keyLabel.isNotEmpty ? keyLabel : (debugName ?? ""), + }; } } diff --git a/lib/screens/settings/widgets/key_listener.dart b/lib/screens/settings/widgets/key_listener.dart index 589f7e380..c92ac7d15 100644 --- a/lib/screens/settings/widgets/key_listener.dart +++ b/lib/screens/settings/widgets/key_listener.dart @@ -253,7 +253,10 @@ class KeyListenerWidgetState extends ConsumerState { ), Text( currentHotKey?.label ?? "+", - style: Theme.of(context).textTheme.bodyMedium?.copyWith(fontWeight: FontWeight.bold), + style: Theme.of(context).textTheme.bodyMedium?.copyWith( + fontWeight: FontWeight.bold, + fontSize: 15, + ), ), ], ),