public static CustomDesktopEnvironment CreateDefault()
        {
            var de = new CustomDesktopEnvironment(new KeyboardShortcutCollection());

            Directory.CreateDirectory(DesktopEnvironmentDirectory);
            return(de);
        }
        public static void Save(string name, CustomDesktopEnvironment desktopEnvironment)
        {
            string filePath = GetDesktopEnvironmentFilePath(name);

            Directory.CreateDirectory(DesktopEnvironmentDirectory);

            XmlWriterSettings settings = new XmlWriterSettings();
            XmlWriter         writer   = XmlWriter.Create(filePath, settings);

            WriteToXml(desktopEnvironment);

            writer.Flush();
            writer.Close();

            void WriteToXml(Control control)
            {
                writer.WriteStartElement(control.Type.ToString());

                writer.WriteAttributeString(nameof(control.Id), $"{control.Id}");
                foreach (var attribute in control.Attributes)
                {
                    writer.WriteAttributeString(attribute.Key, attribute.Value);
                }

                foreach (var child in control.Controls)
                {
                    WriteToXml(child);
                }

                writer.WriteEndElement();
            }
        }