Skip to content

Commit

Permalink
Add customization of Windows 10 Start menu
Browse files Browse the repository at this point in the history
  • Loading branch information
cschneegans committed Oct 2, 2024
1 parent 8dc2f7b commit b5e9e09
Show file tree
Hide file tree
Showing 3 changed files with 52 additions and 22 deletions.
6 changes: 4 additions & 2 deletions Main.cs
Original file line number Diff line number Diff line change
Expand Up @@ -313,7 +313,8 @@ public record class Configuration(
bool HideEdgeFre,
bool MakeEdgeUninstallable,
TaskbarSearchMode TaskbarSearch,
IStartPinsSettings StartPinsSetting
IStartPinsSettings StartPinsSettings,
IStartTilesSettings StartTilesSettings
)
{
public static Configuration Default => new(
Expand Down Expand Up @@ -365,7 +366,8 @@ IStartPinsSettings StartPinsSetting
HideEdgeFre: false,
MakeEdgeUninstallable: false,
TaskbarSearch: TaskbarSearchMode.Box,
StartPinsSetting: new DefaultStartPinsSettings()
StartPinsSettings: new DefaultStartPinsSettings(),
StartTilesSettings: new DefaultStartTilesSettings()
);
}

Expand Down
19 changes: 0 additions & 19 deletions modifier/Bloatware.cs
Original file line number Diff line number Diff line change
Expand Up @@ -213,24 +213,5 @@ public override void Process()
packageRemover.Save(this);
capabilityRemover.Save(this);
featureRemover.Save(this);

if (!Configuration.Bloatwares.IsEmpty)
{
{
// Windows 10
XmlDocument xml = new();
xml.LoadXml("""
<LayoutModificationTemplate Version='1' xmlns='http://schemas.microsoft.com/Start/2014/LayoutModification'>
<LayoutOptions StartTileGroupCellWidth='6' />
<DefaultLayoutOverride>
<StartLayoutCollection>
<StartLayout GroupCellWidth='6' xmlns='http://schemas.microsoft.com/Start/2014/FullDefaultLayout' />
</StartLayoutCollection>
</DefaultLayoutOverride>
</LayoutModificationTemplate>
""");
AddXmlFile(xml, @"C:\Users\Default\AppData\Local\Microsoft\Windows\Shell\LayoutModification.xml");
}
}
}
}
49 changes: 48 additions & 1 deletion modifier/Optimizations.cs
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
using System.Drawing;
using System.IO;
using System.Linq;
using System.Xml;

namespace Schneegans.Unattend;

Expand Down Expand Up @@ -63,6 +64,16 @@ public record class CustomStartPinsSettings(
string Json
) : IStartPinsSettings;

public interface IStartTilesSettings;

public class DefaultStartTilesSettings : IStartTilesSettings;

public class EmptyStartTilesSettings : IStartTilesSettings;

public record class CustomStartTilesSettings(
string Xml
) : IStartTilesSettings;

class OptimizationsModifier(ModifierContext context) : Modifier(context)
{
public override void Process()
Expand Down Expand Up @@ -490,7 +501,7 @@ void SetStartPins(string json)
);
}

switch (Configuration.StartPinsSetting)
switch (Configuration.StartPinsSettings)
{
case DefaultStartPinsSettings:
break;
Expand All @@ -516,5 +527,41 @@ void SetStartPins(string json)
throw new NotSupportedException();
}
}
{
void SetStartTiles(string xml)
{
XmlDocument doc = new();
doc.LoadXml(xml);
AddXmlFile(doc, @"C:\Users\Default\AppData\Local\Microsoft\Windows\Shell\LayoutModification.xml");
}

switch (Configuration.StartTilesSettings)
{
case DefaultStartTilesSettings:
break;

case EmptyStartTilesSettings:
string xml = """
<LayoutModificationTemplate Version='1' xmlns='http://schemas.microsoft.com/Start/2014/LayoutModification'>
<LayoutOptions StartTileGroupCellWidth='6' />
<DefaultLayoutOverride>
<StartLayoutCollection>
<StartLayout GroupCellWidth='6' xmlns='http://schemas.microsoft.com/Start/2014/FullDefaultLayout' />
</StartLayoutCollection>
</DefaultLayoutOverride>
</LayoutModificationTemplate>
""";
SetStartTiles(xml);
break;

case CustomStartTilesSettings settings:
SetStartTiles(settings.Xml);
break;

default:
throw new NotSupportedException();
}
}
}
}

0 comments on commit b5e9e09

Please sign in to comment.