Modify Menu Entries

I modified the default skin Estuary so I can customize the main menu items. To do this in a maintainable way I first copied the add-on folder from a Kodi Windows installation and then made the necessary changes. Menu entry names, to which favorite if any it points to, and the Menu entry icon are defined in the language strings which makes it easier to modify.

  1. Install Kodi on a Windows machine and copy folder C:\Program Files\Kodi\addons\skin.estuary to a new location
  2. Modify file addon.xml 2nd line (bco is my short name)
    <addon id="skin.estuary.bco" version="4.0.0" name="Estuary bco" provider-name="phil65, Ichabod Fletchman, bco">

    Rename folder skin.estuary to the id you changed in addon.xml, in this example skin.estuary.bco. Do not include the version of Kodi in the folder name, so you can update later when a new Kodi version will become available.

  3. Modify file xml/Home.xml where you make the changes for the menu entries. To do this we substitute a menu item we will not use in our Kodi installation, for example Games or Music videos
    1. Find 31162 which is the language message id of the games widget and comment out the surrounding <include content=“ImageWidget”> (enclose between <!-- and -->)
    2. Find <content> and comment out all items, then copy the ones you want in your menu in the sequence you want them to appear
    3. If you want to add a menu entry to a group of movies, for example all Cartoons, add an item for a movie set, all items of that set will appear when you click that menu entry
      <item>
      	<label>$LOCALIZE[31711]</label>
      	<property name="menu_id">$NUMBER[17000]</property>
      	<onclick>ActivateWindow(10025,&quot;videodb://movies/sets/$LOCALIZE[31712]/?setid=$LOCALIZE[31721]&quot;,return)</onclick>
      	<thumb>icons/sidemenu/$LOCALIZE[31713]</thumb>
      	<property name="id">games</property>
      	<visible>!Skin.HasSetting(HomeMenuNoGamesButton)</visible>
      </item>

      Note that I use language strings to reference to the name of the menu entry, the movie set it points to, and the icon to use

    4. If you want to add a menu entry for an addon, for example a Radio addon, add an item to open that addon
      <item>
      	<label>$LOCALIZE[31721]</label>
      	<property name="menu_id">$NUMBER[17000]</property>
      	<onclick>RunAddon(plugin.audio.radio_de)</onclick>
      	<thumb>icons/sidemenu/$LOCALIZE[31723]</thumb>
      	<property name="id">games</property>
      	<visible>!Skin.HasSetting(HomeMenuNoGamesButton)</visible>
      </item>
  4. Enter the corresponding language strings in language/resource.language.en_gb/strings.po right after the initial comments starting on line 5
    # modified by bco, 26.03.2024
    # modify string text and movie set id number below which depends on Kodi installed on each client
    #
    msgid ""
    msgstr ""
    
    msgctxt "#31711"
    msgid "Cartoons"
    msgstr ""
    
    msgctxt "#31712"
    msgid "343"
    msgstr ""
    
    msgctxt "#31713"
    msgid "videos.png"
    msgstr ""
    
    msgctxt "#31721"
    msgid "Radio"
    msgstr ""
    
    msgctxt "#31722"
    msgid ""
    msgstr ""
    
    msgctxt "#31723"
    msgid "radio.png"
    msgstr ""

    Add corresponding translations to all languages you will need in your Kodi installations

  5. Zip folder skin.estuary.bco and install it in Kodi –> Settings –> Add-ons –> Install from zip file

Favorite IDs

Client Device Room Cartoons Thai movies Billiard Concerts 3D Trickfilme Radio
Asklepios Nokia 8010 Living Hua Hin 401 8 10 9 76 18 yes
Aquarius Xiaomi Mi Box S Study Hua Hin 343 7 1 8 64 371 yes
Athena Mecool KM9 Study Hua Hin 343 7 1 8 64 383 yes
Aquarius Mecool KM9 Library Hua Hin 343 7 1 8 64 371 yes
Artemis Mecool KM9 Billiard Hua Hin 343 7 1 8 64 371 yes
Minerva Xiaomi Mi Box S Prachin Buri 352 7 1 9 68 366 yes
Prometheus Xiaomi Mi Box S Flims 343 7 1 8 - 365 yes
S5e Samsung Tab S5e Bernard's Tablet 343 7 1 8 64 375 yes

Bold number = visible menu entry