yt-dlp Desktop App UI Configuration
By A Clusy user · Published July 29, 2026
Helper notebook for updating MainWindow.axaml UI components in YTDLnisDesktop application, including sidebar navigation and button layout fixes.
- dotnet
- desktop-app
- ui-development
- avalonia
- migration
- xaml
- configuration
2 cells1 experiment7 views1 forks
Inside this notebook
# Helper: Update MainWindow.axaml with Files page and other features
import re
with open('/home/user/YTDLnisDesktop/src/YTDLnisDesktop.App/Views/MainWindow.axaml', 'r', encoding='utf-8') as f:
content = f.read()
# Add Files to sidebar (after Observe item)
observe_pattern = '''\n <ListBoxItem Classes="sidebar-item">\n <Grid ColumnDefinitions="Auto,*">\n <TextBlock Grid.Column="0" Text="\uD83D\uDC41\uFE0F" Classes="nav-icon"/>\n <TextBlock Grid.Column="1" Text="Observe"/>\n </Grid>\n </ListBoxItem>'''
files_after_observe = observe_pattern + '''\n <ListBoxItem Classes="sidebar-item">\n <Grid ColumnDefinitions="Auto,*">\n <TextBlock Grid.Column="0" Text="\uD83D\uDCC2" Classes="nav-icon"/>\n <TextBlock Grid.Column="1" Text="Files"/>\n </Grid>\n </ListBoxItem>'''
content = content.replace(observe_pattern, files_after_observe)
# Add Auto-Select button and grid column shift
content = content.replace(
'Content="\uD83D\uDD04 Fetch Formats" Command="{Binding FetchFormatsCommand}" Classes="primary small" IsEnabled="{Binding IsFormatsLoading, Converter={StaticResource InverseBoolConverter}}"',
'Content="\uD83C\uDFAF Auto Select" Command="{Binding AutoSelectFormatCommand}" Classes="small" Grid.Column="2"'
)
content = content.replace(
'Command="{Binding FetchFormatsCommand}" Classes="primary small" IsEnabled=',
…Done - MainWindow.axaml updated Lines: 573
# Fix the duplicate Grid.Column issue in MainWindow.axaml
import re
with open('/home/user/YTDLnisDesktop/src/YTDLnisDesktop.App/Views/MainWindow.axaml', 'r', encoding='utf-8') as f:
content = f.read()
# Fix: remove duplicate Grid.Column from the Fetch Formats button
# The button currently has "Grid.Column="2" Content="🔄..." Grid.Column="3""
# We need to remove the first Grid.Column="2"
content = content.replace(
'Button Grid.Column="2" Content="\U0001F504 Fetch Formats" Command="{Binding FetchFormatsCommand}" Classes="primary small" Grid.Column="3" IsEnabled=',
'Button Content="\U0001F504 Fetch Formats" Command="{Binding FetchFormatsCommand}" Classes="primary small" Grid.Column="2" IsEnabled='
)
with open('/home/user/YTDLnisDesktop/src/YTDLnisDesktop.App/Views/MainWindow.axaml', 'w', encoding='utf-8') as f:
f.write(content)
print("Fixed duplicate Grid.Column")Fixed duplicate Grid.Column