A skin is a whole look for the Edge in one .edgeskin file, the way Rainmeter has .rmskin. It carries layouts, the imported widgets they use, how those widgets look, and the dashboard's theme, accent colour and background.
Use a skin
Everything happens on the Skins page in EdgeOS.
Open it
Choose Open skin… and pick the .edgeskin file. EdgeOS shows what the file holds before anything is kept. Choose Install, or Install and apply.
Apply it
Apply shows the skin on the real dashboard first, then puts it on a profile: its layouts and, if you leave the switch on, its colours, background and widget looks.
Changed your mind?
Undo on the Skins page puts back what the last Apply replaced.
Make a skin
Choose Create skin… on the Skins page. It packs a profile's screens into a file to share, and the preview in that sheet becomes the skin's picture.
That's also the easiest way to get the file format right: create a skin in the app, then edit the skin.json inside it.
The file format
An .edgeskin file is a zip with:
skin.json what the skin is (below)
preview.png its picture (or .jpg / .webp), optional
assets/<file> pictures and clips the JSON points at as /backgrounds/<file>
widgets/<id>/… each imported widget the layouts use (widget.json or manifest.json + its files)
And skin.json looks like this:
{
"edgeos": "skin", "v": 1,
"id": "you-neon-city", // letters, digits, - _ . ; the same id installs over an older version
"name": "Neon City", "author": "You", "version": "1.0.0",
"description": "One or two lines.",
"preview": "preview.png",
"layouts": { // any of: desktop, widget, desktopPortrait, widgetPortrait
"desktop": { "cols": 12, "rows": 4, "items": [ { "id": "c1", "widget": "clock", "x": 0, "y": 0, "w": 4, "h": 2, "options": {} } ] }
},
"widgetStyle": { "clock": { "radius": 20 } }, // per widget, as Widgets → Customize saves it
"appearance": { "theme": "slate", "accent": "#22d3ee", "dashboard": { "image": "/backgrounds/city.jpg" } },
"widgets": [ "my-widget" ] // folders under widgets/
}
id: letters, digits,-,_and.. A skin with the same id installs over an older version.layouts: any ofdesktop,widget,desktopPortraitandwidgetPortrait.widgetStyle: the look per widget, in the same shape Widgets → Customize saves it.widgets: the folders underwidgets/. Each one is a widget like any you'd build yourself.
What EdgeOS checks
Everything in a skin comes from someone else, so EdgeOS is careful with it. It:
- unpacks only the files listed above, refuses any path that leaves the package, and caps sizes: 200 MB for the file, 60 MB per file inside it and 320 MB unpacked;
- never unpacks programs (
.exe,.dll,.bat,.ps1and the like) or SVG pictures; - checks the layouts the same way a shared layout is checked: known screens, sizes that fit the grid, and no links to the sender's own profiles or saved layouts;
- lists buttons that open programs, files or links on the review, and leaves them out unless you keep them;
- never takes a Wallpaper Engine wallpaper along, since those are the sender's own files;
- runs a skin's widgets in the same sandbox as any imported widget, and installs a widget only if it's new or newer than the one already there.