diff --git a/Aaru.Tui/Aaru.Tui.csproj b/Aaru.Tui/Aaru.Tui.csproj
new file mode 100644
index 000000000..ec252fa71
--- /dev/null
+++ b/Aaru.Tui/Aaru.Tui.csproj
@@ -0,0 +1,14 @@
+
+
+
+ Exe
+ net8.0
+ enable
+ enable
+
+
+
+
+
+
+
diff --git a/Aaru.Tui/App.axaml b/Aaru.Tui/App.axaml
new file mode 100644
index 000000000..0774ab87a
--- /dev/null
+++ b/Aaru.Tui/App.axaml
@@ -0,0 +1,9 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/Aaru.Tui/App.axaml.cs b/Aaru.Tui/App.axaml.cs
new file mode 100644
index 000000000..9430c3eb1
--- /dev/null
+++ b/Aaru.Tui/App.axaml.cs
@@ -0,0 +1,23 @@
+using Avalonia;
+using Avalonia.Controls.ApplicationLifetimes;
+using Avalonia.Markup.Xaml;
+
+namespace Aaru.Tui;
+
+public partial class App : Application
+{
+ public override void Initialize()
+ {
+ AvaloniaXamlLoader.Load(this);
+ }
+
+ public override void OnFrameworkInitializationCompleted()
+ {
+ if(ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktopLifetime)
+ {
+ desktopLifetime.MainWindow = new MainWindow();
+ }
+
+ base.OnFrameworkInitializationCompleted();
+ }
+}
\ No newline at end of file
diff --git a/Aaru.Tui/MainWindow.axaml b/Aaru.Tui/MainWindow.axaml
new file mode 100644
index 000000000..5e53df29c
--- /dev/null
+++ b/Aaru.Tui/MainWindow.axaml
@@ -0,0 +1,17 @@
+
+
+
+
+
+
diff --git a/Aaru.Tui/MainWindow.axaml.cs b/Aaru.Tui/MainWindow.axaml.cs
new file mode 100644
index 000000000..b152b3913
--- /dev/null
+++ b/Aaru.Tui/MainWindow.axaml.cs
@@ -0,0 +1,21 @@
+using Avalonia;
+using Avalonia.Controls;
+using Avalonia.Controls.ApplicationLifetimes;
+using Avalonia.Interactivity;
+
+namespace Aaru.Tui
+{
+ public partial class MainWindow : Window
+ {
+ public MainWindow()
+ {
+ InitializeComponent();
+ }
+
+ private void OnExit(object sender, RoutedEventArgs e)
+ {
+ var lifetime = Application.Current!.ApplicationLifetime as IControlledApplicationLifetime;
+ lifetime!.Shutdown();
+ }
+ }
+}
\ No newline at end of file
diff --git a/Aaru.Tui/Program.cs b/Aaru.Tui/Program.cs
new file mode 100644
index 000000000..8839ca0a7
--- /dev/null
+++ b/Aaru.Tui/Program.cs
@@ -0,0 +1,18 @@
+using Avalonia;
+using Consolonia;
+
+namespace Aaru.Tui
+{
+ public static class Program
+ {
+ public static int Main(string[] args)
+ {
+ return BuildAvaloniaApp().StartWithConsoleLifetime(args);
+ }
+
+ public static AppBuilder BuildAvaloniaApp()
+ {
+ return AppBuilder.Configure().UseConsolonia().UseAutoDetectedConsole().LogToException();
+ }
+ }
+}
\ No newline at end of file
diff --git a/Aaru.slnx b/Aaru.slnx
index dd02c95b5..489ccf9a2 100644
--- a/Aaru.slnx
+++ b/Aaru.slnx
@@ -72,8 +72,9 @@
+
+
+
+
-
-
-
-
+
\ No newline at end of file
diff --git a/Aaru/Aaru.icns b/Aaru/Aaru.icns
old mode 100755
new mode 100644
diff --git a/Directory.Packages.props b/Directory.Packages.props
index 7b6ea0710..f691cfcfe 100644
--- a/Directory.Packages.props
+++ b/Directory.Packages.props
@@ -10,6 +10,7 @@
+
diff --git a/build.sh b/build.sh
old mode 100755
new mode 100644