11.4.2020, 12:40
(Tento příspěvek byl naposledy změněn: 11.4.2020, 13:59 uživatelem Client.
Důvod úpravy: Překlepy, doplnění informace.
)
Zjednodušení pohybu mezi widgety a hlavním menu na Home stránce
Jsem docela závislý na widgetech Home stránky Kodi. Prakticky většinu voleb, spouštění přehrávání atd., provádím přes ně. Používám modifikovaný skin Estuary (Estuary Stream-Cinema) a velmi často se mi stává, když listuji widgety (kterých mám opravdu hodně) a chci se vrátit do hlavního menu, že intuitivně stisknu na DO klávesu Back. To ale, při běžném mapování tlačítek, nemá samozřejmě žádný efekt - jsem stále na jedné stránce a to Home, takže "vrátit" se nemám kam. Musím tedy na začátek widgetu doskákat kurzorem, případně rychleji přes PgUp a nebo ještě rychleji přes Home klávesu (kterou na DO mám a mám na ní namapované příslušné Action Id, v tomto případě etdy firstpage), a pak se posledním stiskem klávesy left dostat do hlavního menu, ale ztratím při tom aktuální pozici ve widgetu. U jiných skinů může být návrat z widgetu jednodušší (např. Aeon Nox Silvio - kde je ta logika trochu jiná, navíc tam mohou být max. 2 widgety), ale možná i tam by se rychlý návrat do hlavního menu hodil také.
Dlouho jsem to neřešil, ale včera mi došla trpělivost. Hlavně také proto, že testuji nový box s DO, které je tlačítky vybaveno velmi "spoře", a u něj by se mi tedy rychlý návrat do hlavního menu hodil ještě více. Zasedl jsme tedy ráno k PC s tím, že to nějak vyřeším. Myslel jsem na použití addon scriptu Commands, který často pro takové speciální řešení používám, ale jen jsem otevřel soubor keymaps.xml, trklo mě to. A řešení bylo na světě raz dva.
V sekci mapování Home stránky stačí přemapovat klávesu Back, tedy zadat vhodný povel mezi tagy <back></back>. Níže je fragment z mého keymap.xml, uvedené mapování je hned první v seznamu, tedy <back>Control.SetFocus(9000)</back>. Oním vhodným povelem je tedy Control.SetFocus(9000), což způsobí, že se "vybere" kontejner s Id 9000, což je právě kontejner hlavního menu:
Dobrá zpráva, funguje to dle očekávání a je to nesmírně návykové. Ani si nedokáži představit, jak jsme bez toho mohl tak dlouho žít. Špatná zpráva je, že tohle bohužel neuděláte pomocí addon Keymap Editor , ale to už tak zkrátka je, že pokud chcete něco jiného, než to, co tento addon umí, musíte na to jinak. Tedy přes textový editor a postarat se o to "ručně".
Jsem docela závislý na widgetech Home stránky Kodi. Prakticky většinu voleb, spouštění přehrávání atd., provádím přes ně. Používám modifikovaný skin Estuary (Estuary Stream-Cinema) a velmi často se mi stává, když listuji widgety (kterých mám opravdu hodně) a chci se vrátit do hlavního menu, že intuitivně stisknu na DO klávesu Back. To ale, při běžném mapování tlačítek, nemá samozřejmě žádný efekt - jsem stále na jedné stránce a to Home, takže "vrátit" se nemám kam. Musím tedy na začátek widgetu doskákat kurzorem, případně rychleji přes PgUp a nebo ještě rychleji přes Home klávesu (kterou na DO mám a mám na ní namapované příslušné Action Id, v tomto případě etdy firstpage), a pak se posledním stiskem klávesy left dostat do hlavního menu, ale ztratím při tom aktuální pozici ve widgetu. U jiných skinů může být návrat z widgetu jednodušší (např. Aeon Nox Silvio - kde je ta logika trochu jiná, navíc tam mohou být max. 2 widgety), ale možná i tam by se rychlý návrat do hlavního menu hodil také.
Dlouho jsem to neřešil, ale včera mi došla trpělivost. Hlavně také proto, že testuji nový box s DO, které je tlačítky vybaveno velmi "spoře", a u něj by se mi tedy rychlý návrat do hlavního menu hodil ještě více. Zasedl jsme tedy ráno k PC s tím, že to nějak vyřeším. Myslel jsem na použití addon scriptu Commands, který často pro takové speciální řešení používám, ale jen jsem otevřel soubor keymaps.xml, trklo mě to. A řešení bylo na světě raz dva.
V sekci mapování Home stránky stačí přemapovat klávesu Back, tedy zadat vhodný povel mezi tagy <back></back>. Níže je fragment z mého keymap.xml, uvedené mapování je hned první v seznamu, tedy <back>Control.SetFocus(9000)</back>. Oním vhodným povelem je tedy Control.SetFocus(9000), což způsobí, že se "vybere" kontejner s Id 9000, což je právě kontejner hlavního menu:
Kód:
...
<Home>
<remote>
<back>Control.SetFocus(9000)</back>
<start>FullScreen</start>
<clear>ActivateWindow(ShutdownMenu)</clear>
<hash>ActivateWindow(Settings)</hash>
<zero>RunAddon(virtual.system-tools)</zero>
<one>ReloadSkin()</one>
<two>Skin.Theme(1)</two>
<three>Skin.ToggleDebug</three>
<four>ToggleDebug</four>
<five>PlayerDebug</five>
<six>reloadkeymaps</six>
<seven>ActivateWindow(SkinSettings)</seven>
</remote>
</Home>
...