* feat: Add comprehensive logging system with UI for debugging 🔍 New Logging Features: - Add LoggingManager for centralized log capture and management - Add LoggingDialog with real-time log viewing, filtering, and export - Add 'View Logs' menu item to system tray for easy access - Support log filtering by level (DEBUG, INFO, WARNING, ERROR, CRITICAL) - Support log filtering by module name - Export logs to text files with applied filters - Auto-scroll functionality for real-time log monitoring - Log statistics and management (clear logs, view counts) 🐛 Enhanced Text Injection Debugging: - Add detailed logging for text injection process - Log target window information (name, class, PID, process) - Log injection chunks and retry attempts - Add timeout handling with detailed error messages - Log environment detection and tool selection - Enhanced error reporting with stack traces 🎯 UI Improvements: - Integrated logging dialog with GTK interface - Color-coded log levels for easy identification - Real-time log updates in the UI - Export functionality with file chooser dialog - Status bar showing log statistics - Non-modal dialog for continuous monitoring 📁 New Files: - src/vocalinux/ui/logging_manager.py - Core logging management - src/vocalinux/ui/logging_dialog.py - GTK logging viewer dialog This will help debug text injection issues in applications like TextEdit and terminal where voice typing may not work as expected. * fix: Improve logging dialog UI layout and add clipboard functionality 🎨 UI Layout Improvements: - Increase dialog default size from 900x600 to 900x700 - Set minimum content height for scrolled window to 400px - Enable vertical and horizontal expansion for text view and scrolled window - Ensure log text area takes up most of the available dialog space 📋 Clipboard Functionality: - Add 'Copy All' button to dialog for easy log sharing - Implement clipboard copy with formatted headers and timestamps - Add user feedback messages for successful/failed copy operations - Include line count information in success messages - Handle empty log cases gracefully 🔧 Technical Improvements: - Proper GTK clipboard integration using Gdk.SELECTION_CLIPBOARD - Error handling for clipboard operations - Formatted clipboard content with metadata headers - Thread-safe clipboard operations This fixes the issue where the log text area was too short and users could barely see 2 lines despite having plenty of vertical space available. The new layout ensures the text view expands to fill the available space, and the clipboard functionality makes it easy to share logs for debugging.
Vocalinux
A seamless voice dictation system for Linux, comparable to the built-in solutions on macOS and Windows.
Overview
Vocalinux provides a user-friendly speech-to-text solution for Linux users with:
- Activation via double-tap Ctrl keyboard shortcut
- Real-time transcription with minimal latency
- Universal compatibility across applications
- Offline operation for privacy and reliability
- Visual indicators for microphone status
- Audio feedback for recognition status
Quick Start
Prerequisites
- Ubuntu 22.04 or newer (may work on other Linux distributions)
- Python 3.8 or newer
- X11 or Wayland desktop environment
Installation
# Clone the repository
git clone https://github.com/jatinkrmalik/vocalinux.git
cd vocalinux
# Run the installer script
./install.sh
The installer will set up everything you need, including system dependencies and a Python virtual environment.
For detailed installation instructions and options, see docs/INSTALL.md.
Running Vocalinux
After installation:
# Activate the virtual environment
source activate-vocalinux.sh
# Run Vocalinux
vocalinux
Usage
Voice Dictation
- Double-tap the Ctrl key to start recording
- Speak clearly into your microphone
- Double-tap Ctrl again or pause speaking to stop recording
Voice Commands
| Command | Action |
|---|---|
| "new line" | Inserts a line break |
| "period" | Types a period (.) |
| "comma" | Types a comma (,) |
| "question mark" | Types a question mark (?) |
| "delete that" | Deletes the last sentence |
| "capitalize" | Capitalizes the next word |
For a complete user guide, see docs/USER_GUIDE.md.
Configuration
Configuration is stored in ~/.config/vocalinux/config.json. You can customize:
- Recognition engine (VOSK or Whisper)
- Model size (small, medium, large)
- Keyboard shortcuts
- Audio feedback
- UI behavior
- And more
Features
Custom Icons
Vocalinux includes custom icons for system trays and application launchers that visually indicate:
- Microphone inactive state
- Microphone active state
- Speech processing state
Custom Sounds
Audio feedback is provided for:
- Start of recording
- End of recording
- Error conditions
You can customize these sounds by replacing the files in resources/sounds/.
Advanced Usage
# With debugging enabled
vocalinux --debug
# With a specific speech recognition engine
vocalinux --engine whisper
# With a specific model size
vocalinux --model medium
# Force Wayland compatibility mode
vocalinux --wayland
Documentation
- Installation Guide - Detailed installation instructions
- User Guide - Complete user documentation
- Contributing - Development setup and contribution guidelines
Roadmap
Future development plans include:
Custom icon design✅ (Implemented in v0.1.0)- Graphical settings dialog
- Advanced voice commands for specific applications
- Multi-language support
- Better integration with popular applications
- Improved model management
- Customizable keyboard shortcuts via GUI
- More audio feedback options
Contributing
Contributions are welcome! Please see CONTRIBUTING.md for development setup instructions and contribution guidelines.
License
This project is licensed under the GNU General Public License v3.0 - see the LICENSE file for details.