A functional and customizable open-source IDE snippets built with KivyMD. It provides a modern, cross-platform development environment with extensive customization options, syntax highlighting, and a modular architecture.
License: MIT Licensed - Ready to tweak, hack, and extend.
- Features
- Installation
- Quick Start
- Architecture
- Configuration
- Usage Guide
- Development
- Contributing
- Showcases
- Multi-tab editor with syntax highlighting support
- Integrated file manager with project navigation
- Interactive console for code execution and debugging
- Customizable themes with dark/light mode support
- Language profiles for multiple programming languages
- History management for tracking file and project history
- Dialog system for user interactions and notifications
- Theme system with customizable color palettes
- Font configuration with support for popular coding fonts
- Layout customization for optimal workflow
- Language-specific settings and syntax highlighting
- Configurable editor behavior (tab spaces, line limits, etc.)
- Modular architecture for easy extension
- Plugin-ready structure for future enhancements
- Comprehensive configuration system with JSON-based settings
- Showcase applications demonstrating component usage
- Python 3.8 or higher
- pip package manager
pip install kivymd kivyThe IDE supports JetBrains Mono font by default. Ensure you have the font installed on your system for optimal experience.
-
Clone the repository:
git clone <repository-url> cd kt-ide
-
Install dependencies:
pip install -r requirements.txt # If available # Or manually install: pip install kivymd kivy
-
Run the IDE:
python main.py # Check for main entry point
KT IDE follows a modular architecture with clear separation of concerns:
kt-ide/
βββ core/ # Core functionality and managers
β βββ config_manager.py # Configuration management system
β βββ language_profiles.py # Language-specific configurations
β βββ themes.py # Theme management system
βββ ui/ # User interface components
β βββ editor.py # Code editor component
β βββ console.py # Interactive console
β βββ dialogs.py # Dialog system
β βββ settings_screen.py (NOT INCLUDED)
β βββ tabs.py # Tab management
β βββ utilities/ # UI utility components
βββ showcases/ # Demo applications
βββ data/ # Configuration and data files
βββ assets/ # Fonts, themes, and resources
- Handles loading and saving of user preferences
- Supports default and user-specific configurations
- Provides hierarchical settings management
- Supports configuration reset and reload functionality
- Editor: Full-featured code editor with syntax highlighting
- Console: Interactive console for code execution
- Dialogs: Modal dialogs for user interactions
- File Manager: Project and file navigation system
- Dynamic theme switching
- Support for custom color palettes
- Dark/Light mode toggling
- Material Design integration
data/config.json- Default configuration settingsdata/user_config.json- User-specific overrides (auto-created)
{
"theme": {
"current_theme": "default",
"theme_style": "Dark",
"primary_palette": "Blue",
"accent_palette": "Blue"
},
"language": {
"current_language": "python",
"ui_language": "en"
},
"editor": {
"tab_spaces": 4,
"font_name": "JetBrains Mono",
"font_size": 16,
"line_limit": 15
},
"console": {
"font_name": "JetBrains Mono",
"font_size": 14
},
"general": {
"auto_save": true
}
}- Through UI: Use the Settings Screen in the IDE
- Direct File Editing: Modify
data/user_config.json - Programmatic: Use the ConfigManager API
- Launch KT IDE
- Use the File Manager to navigate to your project
- Open files in the multi-tab editor
- Syntax Highlighting: Automatic language detection
- Multi-tab Support: Work on multiple files simultaneously
- Line Numbers: Toggle line number display
- Auto-save: Automatic file saving (configurable)
- Interactive Execution: Run code snippets directly
- Debugging: Use for debugging and testing
- Output Display: View execution results and errors
- Open Settings Screen
- Navigate to Theme section
- Select theme style (Dark/Light)
- Choose color palettes
- Apply changes instantly
- ConfigManager: Centralized configuration handling
- LanguageProfiles: Language-specific syntax and behavior
- ThemeManager: Dynamic theme system
- Built on KivyMD framework
- Component-based design
- Event-driven architecture
- Responsive layouts
- Create components in appropriate directories
- Update
__init__.pyfiles for proper imports - Add configuration options if needed
- Create showcase examples for testing
- Add language profile in
core/language_profiles.py - Define syntax highlighting rules
- Configure language-specific settings
- Test with showcase applications
- Fork the repository
- Create a development branch
- Install development dependencies
- Run tests using showcase applications
- Follow PEP 8 style guidelines
- Add documentation for new features
- Create showcase examples for new components
- Test thoroughly before submitting pull requests
Use the showcase applications in the showcases/ directory to test individual components:
showcase_editor.py- Test editor functionalityshowcase_console.py- Test console featuresshowcase_themes.py- Test theme systemshowcase_dialogs.py- Test dialog systemshowcase_file_manager.py- Test file managementshowcase_history_manager.py- Test history features
The showcases/ directory contains standalone demo applications that demonstrate individual components:
# Run individual showcases
python showcases/showcase_editor.py
python showcases/showcase_console.py
python showcases/showcase_themes.py
# ... and moreThese showcases serve as:
- Testing tools for development
- Documentation through example
- Feature demonstrations for users
- Integration guides for developers
MIT License - See LICENSE file for details.
Built with:
Ready to start coding? Launch KT IDE and begin your development journey with a modern, customizable IDE experience!