TODO and Roadmap
This document tracks known issues, planned enhancements, and future development goals for the New Python GitHub Project application.
Known Issues
macOS CMD+Tab Generic Icon
Status: Open
Description: On macOS, when using CMD+Tab to switch between applications, the New Python GitHub Project app displays a generic Python icon instead of the custom application icon.
Root Cause: This is a macOS limitation when running Python applications directly as scripts rather than as proper macOS application bundles (.app). The issue occurs because:
Process Identity: macOS identifies the running process as the Python interpreter, not as the specific application
Bundle Structure: Python scripts lack the proper
.app
bundle structure that macOS uses for application metadataIcon Association: The dock and CMD+Tab switcher rely on bundle information (
Info.plist
) to determine the correct icon
Current Behavior: - ✅ Menu bar: Shows correct name “New Python GitHub Project” (fixed via PyObjC) - ✅ Window icon: Shows correct custom icon - ❌ CMD+Tab: Shows generic Python icon - ❌ Dock: Shows generic Python icon when app is running
Potential Solutions:
Application Bundling (Recommended) - Use tools like
py2app
orbriefcase
to create proper macOS app bundles - Provides native macOS integration with proper icon handling - Pros: Complete solution, professional distribution - Cons: Adds build complexity, larger distribution sizeRuntime Bundle Modification - Dynamically modify the NSBundle at runtime to set more metadata - Extend current PyObjC solution beyond just CFBundleName - Pros: No build changes required - Cons: Limited effectiveness, may not work for dock integration
Custom Launcher Script - Create a native macOS launcher that spawns the Python application - Use AppleScript or native code to set proper application identity - Pros: Maintains current Python-based architecture - Cons: Complex implementation, potential maintenance overhead
Priority: Low (cosmetic issue, doesn’t affect functionality)
Related Files:
- src/new_python_github_project/helpers.py:545
(_fix_macos_app_name
function)
- pyproject.toml
(PyObjC dependency configuration)
Future Enhancements
GUI Improvements
Theme Support - Add dark/light theme toggle - Respect system theme preferences - Custom color schemes
Window Management - Remember window size and position - Multiple project windows support - Tabbed interface for multiple projects
Progress Indicators - Real-time progress bars for long operations - Background task status - Cancel operation support
Development Tools Integration
IDE Integration - VS Code project setup templates - PyCharm configuration files - Sublime Text project files
CI/CD Templates - GitHub Actions workflow templates - GitLab CI configuration - Pre-commit hook templates
Documentation Generation - Auto-generate API documentation structure - README template customization - Sphinx configuration options
Platform Support
Windows Improvements - Windows-specific icon handling verification - PowerShell script templates - Windows Subsystem for Linux (WSL) support
Linux Desktop Integration - .desktop file generation verification - Wayland compatibility testing - Flatpak/Snap package support
Cross-Platform Testing - Automated testing on all platforms - Virtual machine test environments - Container-based testing
Configuration Management
Project Templates - Customizable project templates - Template marketplace/sharing - Version control for templates
Settings Profiles - Multiple configuration profiles - Import/export settings - Team configuration sharing
Plugin System - Plugin architecture design - Third-party extension support - API for custom integrations
Completed Items
- ✅ macOS Menu Bar Name Fix (v0.1.0)
Fixed menu bar showing “python3” instead of application name
Implemented PyObjC-based solution with CFBundleName modification
Added proper environment inheritance for subprocess detachment
- ✅ Icon Loading System (v0.1.0)
Implemented hierarchical icon loading with fallback system
Added cross-platform icon theme support
Proper virtual environment icon path resolution
- ✅ Environment Isolation (v0.1.0)
Fixed subprocess environment inheritance issues
Ensured virtual environment preservation in detached processes
Added proper dependency management with uv
Contributing
If you’d like to work on any of these items:
Check the GitHub Issues for existing discussions
Create a new issue to discuss your proposed changes
Follow the development guidelines in the development documentation
Submit a pull request with your implementation
Priority levels: - High: Critical functionality, major bugs - Medium: Important features, minor bugs - Low: Nice-to-have features, cosmetic issues