A Flutter application that connects to a WebSocket server to receive and display real-time transcript data. The app is designed with a Nintendo-inspired UI theme and provides functionality to view, copy, and paste transcript segments.
- Real-time Transcript Display: Connect to a WebSocket server to receive and display transcript segments in real-time.
- Auto-Paste: Automatically paste new transcript segments to the active application.
- Copy to Clipboard: Copy the entire transcript to the clipboard.
- Paste to Active App: Paste the transcript to the currently active application.
- Connection Management: Connect, disconnect, and auto-reconnect to the WebSocket server.
- Settings Configuration: Configure server URL, auto-reconnect, and auto-paste settings.
- Nintendo-inspired UI: Enjoy a visually appealing interface with Nintendo Switch-inspired colors and design elements.
- Flutter SDK (latest stable version recommended)
- Dart SDK (latest stable version recommended)
- macOS for running the desktop app (Windows and Linux support can be added)
provider: For state managementweb_socket_channel: For WebSocket communicationshared_preferences: For storing settingsintl: For date and time formattingkeypress_simulator: For simulating keyboard shortcuts
-
Clone the repository:
git clone <repository-url> cd tools/02/app
-
Install dependencies:
flutter pub get
To run the app in debug mode:
flutter run -d macosTo build a release version of the app:
flutter build macosThe built app will be available in build/macos/Build/Products/Release/.
- Connect to Server: The app will automatically attempt to connect to the WebSocket server specified in the settings.
- View Transcripts: Transcript segments will appear in the main view as they are received.
- Copy Transcript: Click the "Copy" button to copy the entire transcript to the clipboard.
- Paste to Active App: Click the "Paste to Active App" button to paste the transcript to the currently active application.
- Configure Settings: Click the settings icon in the app bar to configure server URL, auto-reconnect, and auto-paste settings.
The app expects to connect to a WebSocket server that sends transcript data in the following JSON format:
{
"segments": [
{
"text": "Transcript text content",
"speaker": "Speaker Name",
"speaker_id": 1,
"is_user": false,
"person_id": "optional-id",
"start": 0.0,
"end": 5.0,
"timestamp": "2023-01-01T12:00:00Z"
}
]
}- Connection Issues: Ensure the WebSocket server is running and accessible. Check the server URL in the settings.
- Paste Functionality: The paste functionality requires macOS permissions for accessibility. Go to System Preferences > Security & Privacy > Privacy > Accessibility and add the app to the list of allowed applications.
This project is licensed under the MIT License - see the LICENSE file for details.