v21 Changes to the skinning engine for Kodi Omega (v21)
WARNING - Omega Beta 2 will be released soon, once this is done the backward compatibility ABI will be bumped to 5.17.0 see https://github.com/xbmc/xbmc/pull/23927 This will render all skins not yet bumped to API 5.17.0 to be incompatible with Omega from that point onwards, so please start submitting to Omega v21 repo if you wish to remain compatible.

Just to keep the ball going, this thread lists all the skinning engine changes for Kodi Omega (v21)

Change to xbmc.gui and backwards-compatibility abi
xbmc.gui bumped to 5.17.0 (details)

New features
Add support for complex expressions on the fallback label (details)

Changed dialogs
Removed DialogFavourites.xml (details)
Game OSD: Move controller ID from core to the skin (details)

New dialogs
New DialogVideoManager.xml (details)
Games: Add Player Viewer (details)

Changed font handling
Fontset changed to match theme (details)
Fontset xml definitions (details)

Changed control
Slider - Add texture for disabled appearance (details)
Label - Add support for complex expressions on the fallback (details)

Changed listproviders
More button and Browse attribute added for dynamic content (details)

New infolabels
ListItem.VideoWidth (details)
ListItem.VideoHeight (details)
ListItem.SongVideoURL (details)
ListItem.VideoVersionName (details)
VideoPlayer.VideoVersionName (details)
System.Locale(timezonecountry) (details)
System.Locale(timezone) (details)
System.Locale(region) (details)
System.Locale(iso) (details)

New boolean conditions
VideoPlayer.HasVideoVersions (details)
ListItem.HasVideoVersions (details)
ListItem.HasVideoExtras (details)
Player.IsExternal (details)
Player.IsRemote (details)

Deprecated controls
Slideshow.Process (details)
Slideshow.Colour (details)
ListItem.PictureColour (details)
ListItem.PictureProcess (details)

Please keep this thread clean. It should be an easy overview for skinners who are updating their skin for Kodi.
For discussions / feature requests / bug reports, please find (or create) the appropriate thread in the skin development forum.
1/03/2023 - When theme changes, also change to matching fontset

When a skin theme changes, if a matching color theme is found, the color theme is automatically changed as well.
Themes could also having matching fontsets. Currently, when a theme changes, and a matching fontset exists, the user must manually select the matching fontset to change to. Previously only colors would react to theme change.
PR: https://github.com/xbmc/xbmc/pull/22841
2023-05-03 Added Slider Control Textures for correct disabled appearance

Added two new tags for proper disabled look of the slider, matching the skin: texturesliderbardisabled and textureslidernibdisabled
The control looked only partially disabled before the PR (or when the tags are not defined)

Implementation in Estuary / Estouchy

PR: 23163 (PR)
Always read the Kodi online-manual, the FAQ and search the forum before posting.
Do not e-mail Kodi Team members directly asking for support. Read/follow the forum rules (wiki).
For troubleshooting and bug reporting please make sure you read this first.
2023-06-21 Look for <fontset> definitions in xml files in /fonts directory

New fontsets can be defined by adding xml files to the skin's /fonts directory.
When searching for available fontsets, any xml files in the skin's /fonts directory will be searched.
The xml files must follow the same xml format as the existing Font.xml file.

PR: 22993 (PR)
2023-10-3 - Removal of DialogFavourites.xml

Every skin supporting favourites needs to switch to use MyFavourites.xml for Omega instead of DialogFavourites.xml.
We will remove DialogFavourites.xml for Omega. Replacement is MyFavourites.xml, which is available since Nexus.

PR that introduced MyFavourites.xml for Nexus: https://github.com/xbmc/xbmc/pull/22001
2023-10-3 - New infolabels for video width and height

Infolabels are now available as:
ListItem.VideoWidth -- String containing width of video in pixels - empty if unknown
ListItem.VideoHeight -- String containing height of video in pixels - empty if unknown


scott s.
2023-10-01 - New "browse" attribute and "More..." folder item for dynamic content containers with limit values

Containers with dynamic content and a limit="" attribute will now display a "More..." folder item at the end of the container if more items are available than the limit and a target="" attribute has been specified. The "More..." folder item opens the relevant media library window (target) with the full unlimited path.

The visibility of the "More..." folder item can be controlled with the "browse=" attribute

browse="always": Always add the more folder item as long as the list contains at least one item
browse="auto": Add the folder item when there are more items available than visible as specified by the limit attribute. Default behaviour.
browse="never": Never add the more folder item.

<content target="videos" limit="10" browse="always">videodb://movies/titles</content>

Arctic Fuse - Alpha now available. Support me on Ko-fi.
New infolabel containing the URL to a video of a song.

ListItem.SongVideoURL will contain any url and ListItem.Art(videothumb) will contain the thumbnail (if found).

Learning Linux the hard way !!

Bump xbmc.gui version to 5.17.0 for Kodi Omega



All skins wishing to remain compatible with Omega should bump their xbmc.gui version to 5.17.0 now, since the plan is to also bump the backwards-compatibility abi to 5.17.0 see https://github.com/xbmc/xbmc/pull/23927

Bumping the backwards-compatibility abi is necessary as there's been several breaking changes since the last bump was done.

I've noticed that of the 9 skins in Nexus repo which are currently compatible with Omega that

@realcopacetic Copacetic is missing MyFavourites.xml
@jingai Metropolis is missing DialogColorPicker.xml & MyFavourites.xml
@nonJon Quartz is missing DialogColorPicker.xml & MyFavourites.xml
@Gade Rapier is missing MyFavourites.xml

I believe these missing xml's will need to be fixed before accepted into Omega repo.

Add support for complex expressions on the fallback label


Games: Add Player Viewer


Game OSD: Move controller ID from core to the skin

New tags:
  • <texture> - passes it through to the base image control, can be used to show arbitrary artwork in the gamecontroller control
  • <aspectratio> - passes it through to the base image control
  • <controllerId> - allows the skin to specify a controller profile to show
  • <controllerAddress> - allows the skin to specify a port address and controller profile to show

Just to add for anyone coding the game agents dialog here's mine with the commented out code used for testing purposes -


Commented out code -


Uncommented out code -

2023-11-01 - New InfoLabel containing Locale information.

System.Locale(timezonecountry) - The country name for the current time zone.  eg: “Germany”
System.Locale(timezone) - The full timezone name with country and optional region.  eg: “Europe/Berlin”
System.Locale(region) - The currently selected region name within the selected language.  eg: “Deutschland”
System.Locale(iso) - The country code of the currently selected region.  eg: “DE”

2023-11-29 - New feature Video Versions

DialogSelect.xml - existing dialog

No changes necessary as the default layout will be used with no changes to the skin. However to allow for custom layouts new Windows ID's were introduced.

New Window ID's

Window ID 12015 - selectvideoversion - https://github.com/xbmc/xbmc/pull/24249
Window ID 12016 - selectvideoextra - https://github.com/xbmc/xbmc/pull/24249

Estuary example see https://github.com/xbmc/xbmc/blob/master...Select.xml and https://github.com/xbmc/xbmc/blob/master...#L714-L796

DialogVideoManager.xml - new dialog

Estuary example https://github.com/xbmc/xbmc/blob/master...anager.xml

Window ID's

Window ID 12004 - managevideoversions- Used for manage mode (selection on list only selects item) - https://github.com/xbmc/xbmc/pull/24302
Window ID 12017 - managevideoextras- Used for manage mode (selection on list only selects item) - https://github.com/xbmc/xbmc/pull/24302

List ID

List id 50 - Versions/Extras - https://github.com/xbmc/xbmc/pull/24302

Buton ID's

Button id 21 - Play
Button id 22 - Add version
Button id 23 - Add extras
Button id 24 - Rename version
Button id 25 - Set Default
Button id 26 - Remove
Button id 27 - Choose art
Button id 28 - Rename extra

New Infolabels
ListItem.VideoVersionName - https://github.com/xbmc/xbmc/pull/24430
VideoPlayer.VideoVersionName - https://github.com/xbmc/xbmc/pull/24695

New Bools
ListItem.HasVideoVersions - https://github.com/xbmc/xbmc/pull/14972
VideoPlayer.HasVideoVersions - https://github.com/xbmc/xbmc/pull/24695
ListItem.HasVideoExtras - https://github.com/xbmc/xbmc/pull/24456

Logout Mark Read Team Forum Stats Members Help
Changes to the skinning engine for Kodi Omega (v21)0
This forum uses Lukasz Tkacz MyBB addons.