diff --git a/docs/ROADMAP.md b/docs/ROADMAP.md new file mode 100644 index 0000000..c2b7d8f --- /dev/null +++ b/docs/ROADMAP.md @@ -0,0 +1,96 @@ +# OpenMaui Linux Platform Roadmap + +This document outlines the development roadmap for the OpenMaui Linux platform. + +## Version 1.0 (Current - Preview) + +### Completed Features ✅ + +| Feature | Status | Description | +|---------|--------|-------------| +| Core Control Library | ✅ Complete | 35+ controls including Button, Label, Entry, etc. | +| SkiaSharp Rendering | ✅ Complete | Hardware-accelerated 2D graphics | +| X11 Support | ✅ Complete | Full X11 display server integration | +| Platform Services | ✅ Complete | Clipboard, file picker, notifications, etc. | +| Accessibility (AT-SPI2) | ✅ Complete | Screen reader support | +| Input Methods | ✅ Complete | IBus and XIM support | +| High DPI Support | ✅ Complete | Automatic scale factor detection | +| Drag and Drop | ✅ Complete | XDND protocol implementation | +| Global Hotkeys | ✅ Complete | System-wide keyboard shortcuts | +| XAML Support | ✅ Complete | Standard .NET MAUI XAML syntax | +| Project Templates | ✅ Complete | Code and XAML-based templates | +| Visual Studio Extension | ✅ Complete | Project templates and launch profiles | + +## Version 1.1 (Next Release) + +### In Progress 🚧 + +| Feature | Priority | Description | +|---------|----------|-------------| +| Complete Wayland Support | High | Full Wayland compositor support | +| XAML Hot Reload | High | Live XAML editing during debugging | +| Performance Optimizations | Medium | Rendering and memory improvements | + +### Planned 📋 + +| Feature | Priority | Description | +|---------|----------|-------------| +| Hardware Video Acceleration | Medium | VA-API/VDPAU integration | +| Live Visual Tree | Medium | Debug tool for inspecting UI hierarchy | +| Theming Improvements | Medium | Better system theme integration | + +## Version 1.2 (Future) + +### Planned 📋 + +| Feature | Priority | Description | +|---------|----------|-------------| +| GTK4 Interop Layer | Low | Native GTK dialog support | +| WebView Control | Medium | Embedded web browser support | +| Maps Integration | Low | OpenStreetMap-based mapping | +| Printing Support | Medium | CUPS printing integration | + +## Version 2.0 (Long-term) + +### Vision 🔮 + +| Feature | Description | +|---------|-------------| +| Vulkan Rendering | Next-gen graphics API support | +| Flatpak Packaging | Easy distribution via Flatpak | +| Snap Packaging | Ubuntu Snap store support | +| AppImage Support | Portable Linux app format | +| Multi-window Support | Multiple top-level windows | +| System Tray Menus | Rich tray icon interactions | + +## Contributing + +We welcome contributions! Priority areas: + +1. **Wayland Support** - Help complete the Wayland backend +2. **Testing** - Integration tests on various distributions +3. **Documentation** - API docs and tutorials +4. **Controls** - Additional control implementations +5. **Samples** - Real-world demo applications + +See [CONTRIBUTING.md](../CONTRIBUTING.md) for details. + +## Milestones + +| Milestone | Target | Status | +|-----------|--------|--------| +| v1.0.0-preview.1 | Q1 2025 | ✅ Released | +| v1.0.0-preview.2 | Q1 2025 | ✅ Released | +| v1.0.0 | Q2 2025 | 🚧 In Progress | +| v1.1.0 | Q3 2025 | 📋 Planned | +| v1.2.0 | Q4 2025 | 📋 Planned | + +## Feedback + +- GitHub Issues: https://github.com/open-maui/maui-linux/issues +- Discussions: https://github.com/open-maui/maui-linux/discussions + +--- + +*Last updated: January 2025* +*Copyright 2025 MarketAlly LLC* diff --git a/samples/ControlGallery/App.xaml b/samples/ControlGallery/App.xaml new file mode 100644 index 0000000..8de3e73 --- /dev/null +++ b/samples/ControlGallery/App.xaml @@ -0,0 +1,20 @@ + + + + + #512BD4 + #3B1F9E + #DFD8F7 + #2B0B98 + #E1E1E1 + #C8C8C8 + #ACACAC + #919191 + #6E6E6E + #404040 + #212121 + + + diff --git a/samples/ControlGallery/App.xaml.cs b/samples/ControlGallery/App.xaml.cs new file mode 100644 index 0000000..9270a3b --- /dev/null +++ b/samples/ControlGallery/App.xaml.cs @@ -0,0 +1,10 @@ +namespace ControlGallery; + +public partial class App : Application +{ + public App() + { + InitializeComponent(); + MainPage = new AppShell(); + } +} diff --git a/samples/ControlGallery/AppShell.xaml b/samples/ControlGallery/AppShell.xaml new file mode 100644 index 0000000..40514a6 --- /dev/null +++ b/samples/ControlGallery/AppShell.xaml @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/samples/ControlGallery/AppShell.xaml.cs b/samples/ControlGallery/AppShell.xaml.cs new file mode 100644 index 0000000..419d271 --- /dev/null +++ b/samples/ControlGallery/AppShell.xaml.cs @@ -0,0 +1,9 @@ +namespace ControlGallery; + +public partial class AppShell : Shell +{ + public AppShell() + { + InitializeComponent(); + } +} diff --git a/samples/ControlGallery/ControlGallery.csproj b/samples/ControlGallery/ControlGallery.csproj new file mode 100644 index 0000000..4b6880d --- /dev/null +++ b/samples/ControlGallery/ControlGallery.csproj @@ -0,0 +1,21 @@ + + + + net9.0 + Exe + enable + enable + ControlGallery + + + + + + + + + + + + + diff --git a/samples/ControlGallery/MauiProgram.cs b/samples/ControlGallery/MauiProgram.cs new file mode 100644 index 0000000..ea6104d --- /dev/null +++ b/samples/ControlGallery/MauiProgram.cs @@ -0,0 +1,22 @@ +using Microsoft.Maui.Hosting; +using OpenMaui.Platform.Linux.Hosting; + +namespace ControlGallery; + +public static class MauiProgram +{ + public static MauiApp CreateMauiApp() + { + var builder = MauiApp.CreateBuilder(); + builder + .UseMauiApp() + .UseOpenMauiLinux() + .ConfigureFonts(fonts => + { + fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular"); + fonts.AddFont("OpenSans-Semibold.ttf", "OpenSansSemibold"); + }); + + return builder.Build(); + } +} diff --git a/samples/ControlGallery/Pages/ButtonsPage.xaml b/samples/ControlGallery/Pages/ButtonsPage.xaml new file mode 100644 index 0000000..0f03138 --- /dev/null +++ b/samples/ControlGallery/Pages/ButtonsPage.xaml @@ -0,0 +1,73 @@ + + + + + + +