Skin Shortcuts enables user-customizable menus for Kodi skins. Users can add, remove, reorder menu items, assign widgets, backgrounds, and more through a management dialog that you design.
- Customizable Menus: Users modify menus without editing XML
- Widget System: Assign dynamic content to menu items
- Background System: Per-item background images
- View Locking: Automatic view selection by content type
- Template Engine: Generate complex skin includes from simple definitions
- Property System: Extensible custom properties with picker dialogs
The script merges skin defaults with the user's changes and writes includes your skin references. Only the user's changes are stored.
skin defaults user customizations generated includes
(shortcuts/*.xml) + (skin.name.userdata.json) = (script-skinshortcuts-includes.xml)
| Document | Description |
|---|---|
| Getting Started | Setup walkthrough and basic integration |
| File Overview | Configuration file structure |
| Migrating from v2 | Porting a v2 Skin Shortcuts skin to v3 |
| Document | Description |
|---|---|
| Menus | Menu structure, items, submenus, shortcut picker |
| Widgets | Widget definitions and picker configuration |
| Backgrounds | Background types and sources |
| Properties | Custom property schemas, options, fallbacks |
| Templates | Template system for include generation |
| Views | View locking and automatic view selection |
| Document | Description |
|---|---|
| Management Dialog | Dialog controls, properties, window setup |
| Document | Description |
|---|---|
| Conditions | Condition syntax for properties and visibility |
| Built-in Properties | Properties available on menu items |
| Troubleshooting | Error notifications and getting a debug log |
1. Define a menu in shortcuts/menus.xml:
<?xml version="1.0" encoding="UTF-8"?>
<menus>
<menu name="mainmenu">
<item name="movies">
<label>$LOCALIZE[342]</label>
<action>ActivateWindow(Videos,videodb://movies/)</action>
<icon>DefaultMovies.png</icon>
</item>
</menu>
</menus>2. Add a button to open the management dialog:
<onclick>RunScript(script.skinshortcuts,type=manage,menu=mainmenu)</onclick>3. Display the menu using the generated include:
<control type="list" id="9000">
<content>
<include>skinshortcuts-mainmenu</include>
</content>
</control>See Getting Started for the full walkthrough.