public void Init()
        {
            LoadOrCreateSettings();

            tools      = new ObservableCollection <Tool>();
            orgUrls    = new ObservableCollection <string>();
            localRepos = new Dictionary <string, ObservableCollection <Repo> >();

            foreach (var repoRoot in Settings.RepoRoots)
            {
                try
                {
                    Repo.AddRepos(orgUrls, localRepos, repoRoot);
                }
                catch (Exception e)
                {
                    MessageBox.Show(e.Message);
                }
            }

            Tools.DataContext     = tools;
            Orgs.DataContext      = orgUrls;
            RepoNames.ItemsSource = null;
            Repos.ItemsSource     = null;

            //Visual Studio 2019
            VSTool.AddTools(tools, Settings.VSRoot);

            //VS Code
            VSCodeTool.AddTools(tools, Settings.VSCodeExe);

            //dotnet sdk
            DotNetSDKTool.AddTools(tools, Settings.DotnetSDKRoot, "SDK");

            //Windows Terminal
            NuGetFreeTool.AddTools(tools, Settings.WindowsTerminalExe, argument: "-p PowerShell");

            //Windows Explorer
            NuGetFreeTool.AddTools(tools, Settings.ExplorerExe);

            foreach (var toolExe in Settings.ToolExes)
            {
                NuGetFreeTool.AddTools(tools, Environment.ExpandEnvironmentVariables(toolExe));
            }

            foreach (var webUrl in Settings.WebUrls)
            {
                Uri uri = new Uri(webUrl);
                WebTool.AddTools(tools, webUrl, uri.Host, Settings.BrowserExe);
            }
        }