# Fix Fuckup Recovery Plan
## What Happened
Code was stored in /tmp directory which got cleared on restart. Recovered code from decompiled VM binaries.
## What Was Lost
The decompiled code has all the **logic** but:
1. **XAML files are gone** - they were compiled to C# code
2. **AppThemeBinding additions** - dark/light mode XAML bindings
3. **Original formatting/comments** - decompiler output is messy
## Recovery Order
### Step 1: Fix maui-linux Library First
The library code is recovered and functional. Build and verify:
```bash
cd ~/Documents/GitHub/maui-linux-main
dotnet build
```
### Step 2: Recreate Sample XAML with AppThemeBinding
#### ShellDemo XAML to Recreate
All pages had AppThemeBinding added for dark/light mode:
- [ ] **AppShell.xaml** - FlyoutHeader with:
- VerticalStackLayout (logo above text)
- Image with AspectFit
- BackgroundColor: `{AppThemeBinding Light=#F0F0F0, Dark=#2A2A2A}`
- TextColor bindings for labels
- [ ] **HomePage.xaml** - AppThemeBinding for:
- BackgroundColor
- TextColor
- Button colors
- [ ] **ButtonsPage.xaml** - AppThemeBinding colors
- [ ] **TextInputPage.xaml** - Entry/Editor theme colors
- [ ] **PickersPage.xaml** - Picker theme colors
- [ ] **ProgressPage.xaml** - ProgressBar theme colors
- [ ] **SelectionPage.xaml** - CheckBox/Switch theme colors
- [ ] **ListsPage.xaml** - CollectionView theme colors
- [ ] **GridsPage.xaml** - Grid theme colors
- [ ] **AboutPage.xaml** - Links with tap gestures, theme colors
- [ ] **DetailPage.xaml** - Theme colors
#### TodoApp XAML to Recreate
- [ ] **TodoListPage.xaml** - AppThemeBinding for:
- Page background
- List item colors
- Button colors
- [ ] **TodoDetailPage.xaml** - Theme colors
- [ ] **NewTodoPage.xaml** - Theme colors
#### XamlBrowser XAML to Recreate
- [ ] **MainPage.xaml** - WebView container with theme
## AppThemeBinding Pattern
All XAML used this pattern:
```xml
```
## FlyoutHeader Specifics
The FlyoutHeader had this structure:
```xml
```
## Screenshots Needed
User can take screenshots of running app to recreate XAML:
1. **ShellDemo Flyout open** - Light mode
2. **ShellDemo Flyout open** - Dark mode
3. **Each page** - Light and dark mode
4. **TodoApp** - Light and dark mode
## Key Features Recovered in Library
### SkiaShell (1325 lines)
- [x] FlyoutHeaderView, FlyoutHeaderHeight
- [x] FlyoutFooterText, FlyoutFooterHeight
- [x] Flyout scrolling
- [x] All BindableProperties for theming
### X11Window
- [x] Cursor support (XCreateFontCursor, XDefineCursor)
- [x] CursorType enum
### Theme Support
- [x] SystemThemeService
- [x] UserAppTheme detection
- [x] Theme-aware handlers
## File Locations
| Item | Path |
|------|------|
| Library | `~/Documents/GitHub/maui-linux-main` |
| Samples | `~/Documents/GitHub/maui-linux-samples-main` |
| Recovered backup | `~/Documents/GitHub/recovered/` |
## Build & Deploy Commands
```bash
# Build library
cd ~/Documents/GitHub/maui-linux-main
dotnet build
# Build ShellDemo
cd ~/Documents/GitHub/maui-linux-samples-main/ShellDemo
dotnet publish -c Release -r linux-arm64 --self-contained
# Deploy
sshpass -p Basilisk scp -r bin/Release/net9.0/linux-arm64/publish/* marketally@172.16.1.128:~/shelltest/
# Run
sshpass -p Basilisk ssh marketally@172.16.1.128 "cd ~/shelltest && DISPLAY=:0 XAUTHORITY=/run/user/1000/.mutter-Xwaylandauth.* ./ShellDemo"
```
## CRITICAL RULES
1. **NEVER use /tmp** - always use ~/Documents/GitHub/
2. **Commit and push after EVERY significant change**
3. **Only push to dev branch** - main has CI/CD actions