Kodi Community Forum

Full Version: Custom home screen menus
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2 3 4
(2014-06-19, 12:50)jingai Wrote: [ -> ]MacGyver's modifications will be in the next official release, if you can hold off for a bit.

Good news, thanks for the feedback.
In the next release, can you add Recent Played Games on Games tab, through the Advanced Launcher?

Thanks
hi all, this is the best skin !

But i am trying to add home custom 5 (the fifth or more custom buttons) on Gotham. But the skin become blank (no buttons)
Can anyone help , what did i missed ?

Thanks a millions~


I tried to edit Skinsettings.xml , Includes_Home1.xml, Includes_Home2.xml, Includes_Home3.xml, Includes_HomeDeck.xml



ON Includes_Home1 to 3.xml, i added
Code:
[Container(9000).HasFocus(21) + Skin.HasSetting(HomeCustom5_Shortcuts)]

ON Includes_HomeDeck.xml, i added
Code:
    <include name="HomeCustom5Icon">
        <description>Custom5</description>
        <label>$INFO[Skin.String(DialogHome5Title)]</label>
        <icon>$INFO[Skin.String(DialogHome5image)]</icon>
    </include>
    <include name="HomeCustom5Wallpaper">
        <description>Custom5</description>
        <label>$INFO[Skin.String(DialogHome5Title)]</label>
        <icon>$INFO[Skin.String(DialogHome5wallpaper)]</icon>
    </include>
ON Skinsetting.xml ,
I copy and paste everything on <!-- Custom Home Shortcut item 4 --> and modified control id.

Code:
    <!-- Custom Home Shortcut item 5 -->
                    <control type="radiobutton" id="2060">
                        <font>METF_Menu</font>
                        <include>SettingsLabel</include>
                        <label>$LOCALIZE[31713] 5</label>
                        <onclick>Skin.ToggleSetting(DialogHome5Enable)</onclick>
                        <selected>Skin.HasSetting(DialogHome5Enable)</selected>
                    </control>
                    <control type="button" id="2061">
                        <include>SettingsLabel</include>
                        <width>370</width>
                        <label>- $LOCALIZE[31714]</label>
                        <label2>$INFO[Skin.String(DialogHome5Title)]</label2>
                        <onclick>Skin.Reset(DialogHome5Title)</onclick>
                        <onclick>Skin.Reset(DialogHome5)</onclick>
                        <onclick>Skin.SetString(DialogHome5Title)</onclick>
                        <onclick>RunScript(script.favourites,property=DialogHome5)</onclick>
                        <visible>Skin.HasSetting(DialogHome5Enable)</visible>
                    </control>
                    <control type="button" id="2062">
                        <include>SettingsLabel</include>
                        <width>370</width>
                        <label>- $LOCALIZE[31715]</label>
                        <label2>$INFO[Skin.String(DialogHome5image)]</label2>
                        <onclick>Skin.Reset(DialogHome5image)</onclick>
                        <onclick>Skin.SetImage(DialogHome5image)</onclick>
                        <visible>Skin.HasSetting(DialogHome5Enable)</visible>
                    </control>
                    <control type="button" id="2063">
                        <include>SettingsLabel</include>
                        <width>370</width>
                        <label>- $LOCALIZE[31716]</label>
                        <label2>$INFO[Skin.String(DialogHome5wallpaper)]</label2>
                        <onclick>Skin.Reset(DialogHome5wallpaper)</onclick>
                        <onclick>Skin.SetImage(DialogHome5wallpaper)</onclick>
                        <visible>Skin.HasSetting(DialogHome5Enable)</visible>
                    </control>
                    <control type="radiobutton" id="2064">
                        <include>SettingsLabel</include>
                        <label>- $LOCALIZE[1034] $LOCALIZE[31457]</label>
                        <onclick>Skin.ToggleSetting(HomeCustom5_Shortcuts)</onclick>
                        <selected>Skin.HasSetting(HomeCustom5_Shortcuts)</selected>
                        <visible>Skin.HasSetting(DialogHome5Enable)</visible>
                    </control>
                    <!-- Custom5 submenus -->
                    <control type="button" id="2065">
                        <include>SettingsLabel</include>
                        <width>370</width>
                        <label>  - $LOCALIZE[31271] 1</label>
                        <label2>$INFO[Skin.String(HomeCustom5_Favourite1_Label)]</label2>
                        <onclick>Skin.Reset(HomeCustom5_Addon1)</onclick>
                        <onclick>Skin.Reset(HomeCustom5_Favourite1_Label)</onclick>
                        <onclick>Skin.Reset(HomeCustom5_Favourite1_Path)</onclick>
                        <onclick>Skin.SetString(CustomFavouritePath,HomeCustom5_Favourite1_Path)</onclick>
                        <onclick>Skin.SetString(CustomFavouriteName,HomeCustom5_Favourite1_Label)</onclick>
                        <onclick>ActivateWindow(1114)</onclick>
                        <visible>Skin.HasSetting(DialogHome5Enable) + Skin.HasSetting(HomeCustom5_Shortcuts) + IsEmpty(Skin.String(HomeCustom5_Addon1))</visible>
                    </control>
                    <control type="button" id="2066">
                        <include>SettingsLabel</include>
                        <width>370</width>
                        <label>  - $LOCALIZE[24000] 1</label>
                        <label2>$INFO[System.AddonTitle(Skin.String(HomeCustom5_Addon1))]</label2>
                        <onclick>Skin.SetAddon(HomeCustom5_Addon1,xbmc.addon.executable,xbmc.addon.video,xbmc.addon.audio,xbmc.addon.image)</onclick>
                        <visible>Skin.HasSetting(DialogHome5Enable) + Skin.HasSetting(HomeCustom5_Shortcuts) + IsEmpty(Skin.String(HomeCustom5_Favourite1_Path)</visible>
                    </control>
                    <control type="button" id="2067">
                        <include>SettingsLabel</include>
                        <width>370</width>
                        <label>  - $LOCALIZE[31271] 2</label>
                        <label2>$INFO[Skin.String(HomeCustom5_Favourite2_Label)]</label2>
                        <onclick>Skin.Reset(HomeCustom5_Addon2)</onclick>
                        <onclick>Skin.Reset(HomeCustom5_Favourite2_Label)</onclick>
                        <onclick>Skin.Reset(HomeCustom5_Favourite2_Path)</onclick>
                        <onclick>Skin.SetString(CustomFavouritePath,HomeCustom5_Favourite2_Path)</onclick>
                        <onclick>Skin.SetString(CustomFavouriteName,HomeCustom5_Favourite2_Label)</onclick>
                        <onclick>ActivateWindow(1114)</onclick>
                        <visible>Skin.HasSetting(DialogHome5Enable) + Skin.HasSetting(HomeCustom5_Shortcuts) + IsEmpty(Skin.String(HomeCustom5_Addon2))</visible>
                    </control>
                    <control type="button" id="2068">
                        <include>SettingsLabel</include>
                        <width>370</width>
                        <label>  - $LOCALIZE[24000] 2</label>
                        <label2>$INFO[System.AddonTitle(Skin.String(HomeCustom5_Addon2))]</label2>
                        <onclick>Skin.SetAddon(HomeCustom5_Addon2,xbmc.addon.executable,xbmc.addon.video,xbmc.addon.audio,xbmc.addon.image)</onclick>
                        <visible>Skin.HasSetting(DialogHome5Enable) + Skin.HasSetting(HomeCustom5_Shortcuts) + IsEmpty(Skin.String(HomeCustom5_Favourite2_Path)</visible>
                    </control>
                    <control type="button" id="2069">
                        <include>SettingsLabel</include>
                        <width>370</width>
                        <label>  - $LOCALIZE[31271] 3</label>
                        <label2>$INFO[Skin.String(HomeCustom5_Favourite3_Label)]</label2>
                        <onclick>Skin.Reset(HomeCustom5_Addon3)</onclick>
                        <onclick>Skin.Reset(HomeCustom5_Favourite3_Label)</onclick>
                        <onclick>Skin.Reset(HomeCustom5_Favourite3_Path)</onclick>
                        <onclick>Skin.SetString(CustomFavouritePath,HomeCustom5_Favourite3_Path)</onclick>
                        <onclick>Skin.SetString(CustomFavouriteName,HomeCustom5_Favourite3_Label)</onclick>
                        <onclick>ActivateWindow(1114)</onclick>
                        <visible>Skin.HasSetting(DialogHome5Enable) + Skin.HasSetting(HomeCustom5_Shortcuts) + IsEmpty(Skin.String(HomeCustom5_Addon3))</visible>
                    </control>
                    <control type="button" id="2070">
                        <include>SettingsLabel</include>
                        <width>370</width>
                        <label>  - $LOCALIZE[24000] 3</label>
                        <label2>$INFO[System.AddonTitle(Skin.String(HomeCustom5_Addon3))]</label2>
                        <onclick>Skin.SetAddon(HomeCustom5_Addon3,xbmc.addon.executable,xbmc.addon.video,xbmc.addon.audio,xbmc.addon.image)</onclick>
                        <visible>Skin.HasSetting(DialogHome5Enable) + Skin.HasSetting(HomeCustom5_Shortcuts) + IsEmpty(Skin.String(HomeCustom5_Favourite3_Path)</visible>
                    </control>
                    <control type="button" id="2071">
                        <include>SettingsLabel</include>
                        <width>370</width>
                        <label>  - $LOCALIZE[31271] 4</label>
                        <label2>$INFO[Skin.String(HomeCustom5_Favourite4_Label)]</label2>
                        <onclick>Skin.Reset(HomeCustom5_Addon4)</onclick>
                        <onclick>Skin.Reset(HomeCustom5_Favourite4_Label)</onclick>
                        <onclick>Skin.Reset(HomeCustom5_Favourite4_Path)</onclick>
                        <onclick>Skin.SetString(CustomFavouritePath,HomeCustom5_Favourite4_Path)</onclick>
                        <onclick>Skin.SetString(CustomFavouriteName,HomeCustom5_Favourite4_Label)</onclick>
                        <onclick>ActivateWindow(1114)</onclick>
                        <visible>Skin.HasSetting(DialogHome5Enable) + Skin.HasSetting(HomeCustom5_Shortcuts) + IsEmpty(Skin.String(HomeCustom5_Addon4))</visible>
                    </control>
                    <control type="button" id="2072">
                        <include>SettingsLabel</include>
                        <width>370</width>
                        <label>  - $LOCALIZE[24000] 4</label>
                        <label2>$INFO[System.AddonTitle(Skin.String(HomeCustom5_Addon4))]</label2>
                        <onclick>Skin.SetAddon(HomeCustom5_Addon4,xbmc.addon.executable,xbmc.addon.video,xbmc.addon.audio,xbmc.addon.image)</onclick>
                        <visible>Skin.HasSetting(DialogHome5Enable) + Skin.HasSetting(HomeCustom5_Shortcuts) + IsEmpty(Skin.String(HomeCustom5_Favourite4_Path)</visible>
                    </control>
                    <control type="button" id="2073">
                        <include>SettingsLabel</include>
                        <width>370</width>
                        <label>  - $LOCALIZE[31271] 5</label>
                        <label2>$INFO[Skin.String(HomeCustom5_Favourite5_Label)]</label2>
                        <onclick>Skin.Reset(HomeCustom5_Addon5)</onclick>
                        <onclick>Skin.Reset(HomeCustom5_Favourite5_Label)</onclick>
                        <onclick>Skin.Reset(HomeCustom5_Favourite5_Path)</onclick>
                        <onclick>Skin.SetString(CustomFavouritePath,HomeCustom5_Favourite5_Path)</onclick>
                        <onclick>Skin.SetString(CustomFavouriteName,HomeCustom5_Favourite5_Label)</onclick>
                        <onclick>ActivateWindow(1114)</onclick>
                        <visible>Skin.HasSetting(DialogHome5Enable) + Skin.HasSetting(HomeCustom5_Shortcuts) + IsEmpty(Skin.String(HomeCustom5_Addon5))</visible>
                    </control>
                    <control type="button" id="2074">
                        <include>SettingsLabel</include>
                        <width>370</width>
                        <label>  - $LOCALIZE[24000] 5</label>
                        <label2>$INFO[System.AddonTitle(Skin.String(HomeCustom5_Addon5))]</label2>
                        <onclick>Skin.SetAddon(HomeCustom5_Addon5,xbmc.addon.executable,xbmc.addon.video,xbmc.addon.audio,xbmc.addon.image)</onclick>
                        <visible>Skin.HasSetting(DialogHome5Enable) + Skin.HasSetting(HomeCustom5_Shortcuts) + IsEmpty(Skin.String(HomeCustom5_Favourite5_Path)</visible>
                    </control>
                </control>
One too many </control> in there at the end?
Notepad++ and XML Tools help me with that sort of error.
Thanks both of you : ) , i got it done , MacGyver is correct. Just basic mistake on coding. My fifth custom shortcut show up.

But i have another issue.
I am on Android device, i download metropolis through xbmc, when after i put in the name of Button, a dialog pop up for me to pick my favorite.

But when i download the metropolis from here : https://github.com/stoli/Metropolis
Put it back to apk and install it, the dialog simple don't show up anymore. Which means i can only put in the name of new button , but it is not linked to anything.

This package is missing something or it is not for gotham ?

Best wish ~~~

SImon
If you can wait a bit, I'm about 95% done with doing what Hitcher recommended. Just finishing up the default submenus and cleaning up the SkinSettings.
If I didn't have to sleep, it would have been done today. Smile It will only be for Helix and only in my personal Git unless jingai wants to adopt it for the next big release supporting Helix.

Image
I'm sure there are lots wrong with it, but if you're running Helix, are brave, and want to try out completely customizable menus on Metropolis go ahead and give it a whirl.
skin.metropolis-personal-master.zip

Partial instructions on how to install it are in the Readme.md file. However, I have no idea what it will do to your rig if you load it. So don't come crying to me, and definitely don't go bugging jingai with issues, this is my personal test version not an official anything.

It uses script.skinshortcuts by Unfledged to make the menus (as recommended by Hitcher), so make sure you have it installed or you might be stuck on a blank menu (I have included a default menu config, but you never know). If it was named correctly and zipped up, using the "Install from Zip" function of Kodi would automatically install it (I think).

Who knows, good luck. Big Grin

removed151214

(Can I also recommend, because I've dealt with enough issues on this, that you install skinshortcuts through Kodi's add-on manager so all its dependencies are installed, or make sure you also have script.module.unidecode installed - though a quick look at the provided zip suggests it will cause Kodi to install it automatically)

Looking forward to giving this a run-through - always look forward to seeing new implementing of the skin shortcuts script Smile
I only spent a few hours figuring it out Unfledged, so I'm sure there are things I did wrong (or not to the full potential). I also couldn't seem to add a button to set a custom "Icon" just the "Thumbnail". Did I miss something, or is this planned for a later date? So far your script seems to work absolutely perfect. Thanks for making it. Smile

Oh, anything I got wrong, let me know so I can fix it.

removed151214

I'll have a proper play tomorrow, and report any issues I find (quick test, though, and it works well Smile)

As regard thumbnails and icons, no you can only set the thumbnail and this won't change unless someone comes up with a very convincing argument - as far as Kodi is concerned, the icon is considered the fallback, the thumbnail is the preferred image. So if the thumbnail can't be found or isn't set, it falls back to the icon. Therefore, only the thumbnail (the image Kodi should use) is allowed to be set, meaning the icon can be kept as a default fallback (most often "DefaultShortcut.png") just in case an invalid thumbnail is specified Smile

Edit: Had a proper play. The only two things I noticed - there's an untranslated label in script-skinshortcuts.xml and, if I'm understanding right, there's two widget implementations - one managed by skinshortcuts, one managed by the skin in SkinSettings.xml...? Otherwise, a near-textbook implementation Wink
Some screenshots.

Default Home screen
Image

Icon Home screen
Image

Horizontal Home screen
Image

Settings
Image

As you can see everything on the home menu is completely movable and removable and all sub-menus are as well. Thanks to Unfledged for script.skinshortcuts that made this functionality possible. (Tip: Make the source you want a Favorite, then point the ,menu/sub-menu shortcut to that.)
MacGyver (the perfect handle for you)
This is awesome work!

Will The Metropolis-helix-custommenu-rewrite run on Gotham? If yes, how can I add it?
Thanks.

Quote:Will The Metropolis-helix-custommenu-rewrite run on Gotham? If yes, how can I add it?

Not really, mostly due to the weird changes between Gotham and Helix in the form of button and control IDs. However.... one might be able to drop just:

Includes_Home1.xml
Includes_Home2.xml
Includes_Home3.xml
Includes_HomeDeck.xml
Includes.xml
SkinSettings.xml
script-skinshortcuts.xml
script-skinshortcuts-includes.xml

..from the Helix rewrite into a Gotham build (if you have the script.skinshortcuts addon already installed), it might work. (It might destroy the space time continuum that keeps all the dimensions together, or just make it so you can't undo what you did, resulting in you manually modifying or deleting your guisettings.xml file to boot again.)
I have not tried these file changes on Gotham so you're on your own. Smile
It will be in the official Helix release too.
Pages: 1 2 3 4