• Vítejte na XBMC-Kodi.cz
  • Česko-slovenská komunita fanoušků XBMC/Kodi
Vítejte návštevníku! Přihlášení Registrace


Hodnocení tématu:
  • 1 Hlas(ů) - 5 Průměr
  • 1
  • 2
  • 3
  • 4
  • 5
Mapování tlačítek DO - tipy a triky
#1
Původní název tohto tématu byl Rozšíření počtu tlačítek DO, postupně se tu ale začaly objevovat i další doatzy a návody, proto jsem požádal admina @XBMC-Kodi, aby bylo možné téma přejmenovat a abych dostal přístup k tomuto 1. příspěvku a mohl ho doplnit tímto textem. Nyní je to tedy téma, které se bude věnovat mapování tlačítek DO, klávesnice, a dalších vstupních zařízení Kodi.

Ano, vím, že existuje addon Keymap Editor, který je pro tuto funki přímo určen, ale vzheldem k tomu, že tento addon nedokáže namapovat úplně všechno a také proto, že někteří uživateleé si mapování raději provádí sami, pomocí tetxového editoru a editace mapovacích souborů, bude lepší tyto věci od sebe poněku odděleit. I když nevylučuji, že tam, kde to bude účelné, se o addon Keymap Editor také můžeme bavit.

Co se týče addon Keymap Editor, tak o něm mám jednu poznámku ve 2. části tohoto postu, doporučuji k přečtení.

Pozn. To co v tomto postu následuje, tedy počínaje nadpisem Rozšíření počtu tlačítek DO, je původní text 1. příspěvku tohoto tématu, které založil a text napsal @JiRo.

Rozšíření počtu tlačítek DO

Název příspěvku je samozřejmě zavádějící, a to záměrně. O žádné skutečné rozšíření počtu tlačítek DO nejde. Dále uváděný postup jen ukazuje na to, jak lze některé tlačítka DO, která v daném kontextu nemají využití, použít k jinému, v dané chvíli praktičtějšímu účelu. Uvedený postup lze samozřejmě použít u jakéhokoliv tlačítka, já se však soustředím na tlačítka čísel. Z několika důvodů:
  1. jiná tlačítka jsou většinou využita bezezbytku
  2. tlačítka čísel se používají jen ve zcela specifických případech a v jiných jsou nevyužitá
  3. tlačítka čísel jsou do Kodi předávána vždy, tedy i v případě ovládání přes DO TV (CEC)
K bodu 3 dodám jen tolik. Všichni víme, jaká je např. v případě používání CEC "nouze o tlačítka". TV do Kodi "pouští" přes CEC rozhraní jen "omezenou množinu tlačítek". Záleží na typu TV, jak je ta množina rozsáhlá, co ale pouští vždy, to jsou právě čísla.

K bodu 2. těmi specifickými případy myslím takové, kdy skutečně tlačítka k něčemu potřebujeme. Obecně jsou to v podstatě následující činnosti:
  • pokud potřebujeme zadat číslo 0 - 9 - v tomto případě potřebujeme všech 10 tlačítek
  • v případě použití tzv. "SMS Style" psaní textu - k tomu potřebujeme mít k dispozici tlačítka 2 - 9
  • zadání úrovně zoomu při prohlížení obrátků - k tomu potřebujeme všech 10 tlačítek
Kdy potřebujeme zadat číslo 0 - 9

V tomto případě je výčet poměrně dlouhý, ale opět se dá rozdělit do několika málo případů:
  • volba kanálu v případě Live TV a Radio a příbuzných stránkách (guide/epg, seznam kanálů, atp.)
  • zadání čísla stránky teletextu
  • zadání času při přehrávání videa
  • zadání čísla při zobrazení virtuální číselné klávesnice
Mapování tlačítek v Kodi

Default mapování tlačítek je definováno v souborech umístěných v adresáři kam je Kodi instalováno (Kodi), v podadresáři .../systems/keymaps/, zvlášť pro každý typ vstupního zařízení. Chcete-li toto mapování změnit, není třeba (dokonce se to ani nedoporučuje, či to u některých instalací ani nejde) do těchto souborů zasahovat. Kodi umožňuje vytvořit soubor s mapování tlačítek, který je umístěn v datovém adresáři Kodi (Home), v podadresáři .../userdata/keymaps/. V tomto případě je soubor pouze jeden, např. keymap.xml a umožňuje pro každou funkci/stránku zadat přemapování jak tlačítek DO, tak klávesnice, případně i dalších vstupních zařízení. Do tohoto souboru zapisuje například výsledky své činnosti známý addon Keymap Editor. Přiznám se, že já tento addon nepoužívám, přímá editace souboru přemapováním mi přijde daleko jednodušší, rychlejší i přehlednější. Přesto, pokud si někdo na přímý zásah (nebo dokonce vytvoření keymap.xml) netroufá, může postupovat právě pomocí tohoto addon. Dobrý návod k němu a vlákno, kde se diskutuje vytvořil a založil @Rossi D a najdete je zde Jak si přemapovat dálkové ovládání ke Kodi.

Default mapování tlačítek

Tlačítka čísel jsou default (default znamená, že jejich mapování je uvedeno v sekci <global>) mapovaná pro využití "SMS Style" zadávání. Tedy pouze čísla 2 - 9, čísla 0 a 1 jsou mapována na číselní zadání (0 a 1). Už tato skutečnost ukazuje, že pokud nejsme v situaci, kdy jsou tlačítka 0 - 9 používána pro zadávání čísel, můžeme tlačítka 0 a 1 použít pro namapování jakékoliv jiné funkce. A protože je "SMS Style" defaultním mapováním, stačí přemapování 0 a 1 provést pouze na jednom místě (právě v sekci <global>) a budeme mít zajištěno, že bude fungovat všude jinde, pochopitelně vyjma těch případů, kdy je použito jiné, než default mapování "SMS Style".

Jiné možnosti přemapování číselných tlačítek

Tady se každý musí zamyslet a říci si, kdy číselná tlačítka a k čemu potřebuje. Já jsem v tomto případě udělal jednoduchou úvahu. Jsem-li na Home stránce, a i když se například na pozadí přehrává Live TV, možnost za této situace přeskočit na jiný kanál klidně oželím. V té chvíli jsem dostal "darem" všech deset čísených tlačítek a mohu si je, pouze pro Home stránku, namapovat jakkoliv. protože programuji addon a upravuji skiny, potřebuji čas od času rychlý přístup k některých funkcí, takto například vypadá mé dnešní (píši dnešní, protože přemapování často měním podle toho, na čem právě pracuji) přemapování číselných tlačítek na Home screen:
Kód:
 <Home>
   <remote>
     <back>FullScreen</back>
     <start>FullScreen</start>
     <clear>ActivateWindow(ShutdownMenu)</clear>
     <hash>ActivateWindow(Settings)</hash>
     <zero>Noop</zero>
     <one>ReloadSkin()</one>
     <two>Skin.Theme(1)</two>
     <three>Skin.ToggleDebug</three>
     <four>ToggleDebug</four>
     <five>RunScript(service.playlist.o2tv)</five>  
     <six>StopScript(service.playlist.o2tv)</six>  
   </remote>
 </Home>

Příklad praktického použití

V úvodu jsem psal využití v případě ovladačů TV  komunikujících s Kodi prostřednictvím CEC. Tam se nedostatek tlačítek projevu snad nejvíc. Velmi často chybí tlačítka Info nebo Context Menu. Pro ně je například použití tlačítek 0 a 1 poměrně dobré řešení. Většinou tato tlačítka potřebujeme právě při prohlížení seznamů s filmy/seriály a v takovém případě jsou číselná tlačítka mapována na použití zadávání "SMS Style". 0 a 1 je tedy nevyužitá. Pravda, někdo si na ně mapuje skok na začátek a konec seznamu, ale myslím si, že pro mnoho z vás bude užitečnější právě Info a Context Menu. V obsahu výše uvedeného souboru  remote.xml se to realizuje jednoduše:
Kód:
 <global>
   <remote>
     <zero>Info</zero>
     <one>ContextMenu</one>
   </remote>
 </global>

Jiný hodně praktický příklad je vidět ve výše uvedeném fragmentu mého souboru, kde mám v mapování na Home screen pod číslem 4 uvedeno <four>ToggleDebug</four>. Neznamená to nic jiného, že když potřebuji, skočím na Home stránku, stisknu na DO tlačítko 4 a okamžitě se mi logování Kodi přepne na a nebo z (podle stavu) Debug. Jaký to má význam při pátrání po příčinách jen občas se vyskytujících problémů ani nemusím zdůrazňovat.
 
Citovat
#2
Ahoj,
protože jsem to "nevygooglil" a přiznám se, že ani v fóru jsem to nenašel... Jde nějak nastavit aby při zmáčknutí tlačítka na do "program guide" na poprvé naskočilo menu a když zmáčknu to samé tlačítko aby bylo pro opuštění menu?
Také jsem si docela zvykl u do televize používat "předchozí program"... Jde to nastavit..? :-)
Děkuji za odpověď
 
Citovat
#3
Nie všetky tlačidlá sa dajú využívať cez CEC a teda sa ani nedajú preprogramovať. Neviem ako je to pri iných TV, ale na diaľkovom pri Samsungu nevieš použiť polku tlačidiel, lebo sú to tlačidlá len pre systém TV.
Akú máš TV?
Tu máš zoznam toho, aké má kodi funkcie: https://kodi.wiki/view/Keymap
Tie si vieš priradiť na diaľkovom k tým tlačidlám, ku ktorým sa dá niečo priradiť.

X92.. X96 max.. T95Z plus.. M8s plus..
 
Citovat
#4
Mám postaršího Samsunga a... V podstatě fungují všechny tlačítka. Krom "pre-ch" - předchozí program. To jsem nenašel v key map a... Když zmáčknu třeba "guide" tak aby se průvodce po druhém zmáčknutí zavřel...
 
Citovat
#5
Tieto 2 tlačidlá sa nedajú programovať u Samsungu. Teda aspoň u mňa sa nedajú programovať.
Funkciu ,,pre-ch" máš keď stlačíš ,,0" (nula)
A s tým ,,guide" ti nepomôžem, vypínam ho tlačidlom ,,Exit"

X92.. X96 max.. T95Z plus.. M8s plus..
 
Citovat
#6
@Lukas77 S tím guide je to jednoduché. Musíš si na guide tlačítko použité na guide stránce namapovat nějaké ukončení, buď exit nebo backspace, podle libosti. Pokud to nenajdeš v addon (všechny kombinace stránek a funkcí tam nejsou nejsou), tak musíš editovat soubor keymap.xml ručně.
 
Citovat
#7
...tak super... Zmáčknout nulu na pre-ch... Tak na to bych přišel jedině kdybych si na ten ovladač šikovně sednu... :-D Playman22 díky... ;-)
Zkusím se pohrabat v keymap.xml ale asi nejdřív ho odzálohovat... :-D
Dík všem za pomoc...
 
Citovat
#8
Mám dotaz: mám Mecool KM3 ke kterému byl dodany i Bluetooth ovladač. V Android funguje dobre. V CoreELEC mi ovšem při spalování s Bluetooth ovladačem nefunguje tlačítko OK/enter/potvrdit. Jde tohle nějak domapovat nebo v CoreELEC funguje plnohodnotne jen IR ovládání? Diky
 
Citovat
#9
Mohu mít prosbu,
potřebuji poradit jak namapovat dlouhý stisk na určité tlačítko.
(někde to tady na fóru bylo, ale nemohu to najít)
Díky
Xiaomi Redmi 6 - Android 9 - Kodi 18.8

Minix NEO U1 - Android 5.1.1 - Kodi 18.8

Odroid N2 - CoreELEC - poslední 9.2.4.2

LG 49SM8600 - do AN-MR19BA
 
Citovat
#10
Stačí ti to takto?

Kód:
<button mod="longpress">action</button>

Možno bude ale na diaľkovom fungovať dvojité stlačenie namiesto jedného dlhého. Nechcem trepnúť blbosť, ale tak sa mi marí, že kvôli IR kódom.

X92.. X96 max.. T95Z plus.. M8s plus..
 
Citovat
#11
Děkuji za radu, ale stejně nevím jak s tím zápisem zacházet.
Můj zápis je takový:

keymap>
<global>
<keyboard>
<key id="251">audionextlanguage</key>
<key id="252">nextsubtitle</key>
<key id="253">contextmenu</key>
<key id="254">osd</key>
</keyboard>
</global>
</keymap>

No a nyní bych chtěl např. na tl. "251" při dlouhém stisku mít třeba pauzu při přehrávání. Jak to tedy zapíšu.
Díky
Xiaomi Redmi 6 - Android 9 - Kodi 18.8

Minix NEO U1 - Android 5.1.1 - Kodi 18.8

Odroid N2 - CoreELEC - poslední 9.2.4.2

LG 49SM8600 - do AN-MR19BA
 
Citovat
#12
Malo by to vyzerať takto:
Kód:
<key id="251" mod="longpress">pause</key>
Na diaľkovom od android boxu mi to funguje, ale cez hdmi-cec (diaľkové od TV) mi to nefunguje.

X92.. X96 max.. T95Z plus.. M8s plus..
 
Citovat
#13
Poznámka k Longpress

Ten longpress je zapeklitý a v podstatě funguje bez problémů jen u klasiké klávesnice a pak u DO, jejichž vstupy jsou jako klávesnice zpracovávané. U jiných DO, přijímané např. přes IR (nebo jak píše @playman22 i přes HDMI-CEC, což jsem ale dosud nevěděl) je funkce longpress nejistá či dokonce nemožná. Zřejmě to souvisí se samotnou identifikací dlouhého stisku, což DO většinou reprodukuje jako opakované vysílaný kódu talčítka. A tady je podle mne problém, podobný odlišení dvojkliku od dvou jednoduchých kliků na myši. Ne všechny DO nebo ne všechny tlačítka na DO ten repeat mod mají a ne vždy je možné (či spíše většinou je to nemožné) prodlevu a frekvenci opakování nastavit. Zároveň do toho ještě může promlouvat repeat mod na úrovni driveru/systému a pak také to, že na některých tlačítkách bych naopak to opakování chtěl zachovat (směrové šipky, pageup/down), ale s nižší frekvencí opakování, než je nutné pro aktivaci longpress. A to ten problém ještě více zesložiťuje.

Někdo tady popisoval vyvolání longpress tím, že dvakrát po sobě stiskne požadované tlačítko na DO. Já jsem zase laboroval s longpress na Harmony One a také jsem zatím nebyl úspěšný. Už dlouho se chystám tomu věnovat, abych tomu přišel na kloub a ujasnil si, jako to vlastně funguje. Zatím jsme se k tomu bohužel nedostal a tak longpress nepoužívám, i když bych ho samozřejmě uvítal. Tak snad mě to teď pokne k nějaké akci.

Kdyby měl někdo nějaké zkušenosti s longress u DO, speciálně s IR komunikací a ještě speciálně s Harmony One, budu rád, pokud se o ně podělí.

Addon Keymap Editor

Ještě poznámka ke keymap editoru. Jeho současná verze neumožňuje k tlačítků přiřadit všechny funkce, které systém mapování Kodi v současnosti nabízí. Já osobně ho nepoužívám, od počátku práce s Kodi si mapování provádím sám a vzhledme k tomu, že pravidla a formáty mapovacího souboru jsou celkem jednoduché, není to zas tak staršná práce. Možná právě naopak, pro masivnější úpravy, kdy potřebujete mapování zadat pro více situací, je práce s editorem a copy/past velice snadná a přehledná. Trochu je porblém, jak zjistit kódy tačítek, ale pokud používáte Lirc nebo jiné Linuxová řešení, tak není porblém to zjisti na úrovni funkcí systému. V ostatních případech pak je možná kombinace ruční editace a Keymap Editoru. Při každém spuštění se vytvoří záloha aktuálního mapovacího souboru, takže pak stačí si v Keymap Editoru identifikovat tlačítka, dát jim nějakou funkci a pak si obsah Keymap Editorem vygenerovaného  souboru vložit do zálohy původního souboru a změnit jeho jméno.

Pro ty, kteří si chtějí mapovat tlačítka "ručně", doporučuji toto: Keymap a pak samozřejmě přehled funkcí Kodi List of built-in functions, případně ještě Action IDs. No a pak samozřejmě default mapování všech vstupních zařízení Kodi, který je uložen v Kodi instalačním adresáři (viz Adresáře a soubory Kodi) v adresáři .../kodi/system/keymaps. Studium default mapování vám před editací uživatelského mapování hodně napoví. Doporučuji.
 
Citovat
#14
Priznám sa, že som sa tomu moc nevenoval, len si prečítal pár príspevkov na EN fórach, kde sa na to sťažovali, ale riešenie neponúkali.
Diaľkové od boxu mi aj tak nesadne kvôli veľkosti, čiže longpress nepoužívam (ale je v zálohe ako možnosť).
Na diaľkovom od TV mám zas dosť farebných tlačidiel, ktoré by sa dali nastaviť, ale mám ich na tak blbom mieste, že sú ťažko nahmatateľné (chcelo by to asi len cvik), čiže som si všetko potrebné nastavil na čísla a tak to používam roky (a aj pár ľudí, ktorým som to nastavoval).
Konkrétne som na global nastavil, aby bola ,,5" kontextové menu, lebo na väčšine diaľkových má ,,5" taký výstupok pre slepých, čiže sa dobre hľadá aj v tme a od nej sa dajú ľahko nájsť ostatné čísla.
Pre ,,1" som nastavil info. Potom mám pár ďalších vecí, čo bežný smrteľníci nepotrebujú a väčšinou ani ja, čiže tie nenapíšem. Potom ale treba vo Fullscreen Video a vo Fulscreen Live TV nastaviť, aby boli čísla zase len číslami. Čiže na ,,1" nastaviť ,,1", na ,,5" nastaviť ,,5" atď.
Na play/pause, stop a pretáčanie mám originálne tlačidlá na diaľkovom, čiže tie som našťastie nemusel riešiť.
Tým, čo majú tie krpaté diaľkové, s dokopy 6 tlačidlami, odporúčam kúpiť z ali nejaký air mouse remote control keyboard s možnosťou učenia.

X92.. X96 max.. T95Z plus.. M8s plus..
 
Citovat
#15
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:
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>
...
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. 1 Špatná zpráva je, že tohle bohužel neuděláte pomocí addon Keymap Editor 10, 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ě".
 
Citovat
#16
Dovolím si upozornit, že po dohodě s adminem fóra jsme změnili název tohoto tématu na obecnější Mapování tlačítek DO - tipy a triky. Bude více odpovídat jeho zaměření.
 
Citovat
#17
Chcel by som si namapovať klavesovu skratku pre položku nastavenia/system/vstup/aktivovať ovladanie myšou
Je nejaka sanca ze tento prepinac dostanem na klavesovu skratku? Dnes mi prišla nova klaveska a nema moznost vypnúť touchpad. Aspon som nezistil ako. Je to Riitek x8 keby niekto vedel ako vypnúť touchpad.

Jsem uživatel používající Mi 9 SE , který neumí číst pravidla o nepoužívání podpisu z Tapatalku.
Mecool KII pro S905D, CoreELEC 9.0.1
 
Citovat
#18
@j.jusko - Ono to půjde nějak dotlačit v konfiguračním souboru Keymap editoru. Přibližně aspoň zkratka/tlačítko do Global-Windows-Open systém config ....do nadřazeného menu.
Kodi 20 -LibreELEC/LinuxMint/Win/Android -RPi4/3/2/ IntelPC/xMiStick4K -Router 1Gbit 2.4+5GHz
 
Citovat
#19
@j.jusko Obávám se, že na tohle Kodi standardní funkci, kterou bys mohl namapovat na nějakou klávesu, nemá.

Nejsem si ani jist, jestli na to existuje Kodi json-rpc command, ale řekl bych, že také ne. Ale 100% to potvrdit nemohu. Chtělo by to propátrat viz JSON-RPC_API.

Pak samozřejmě, jako vždycky, existuje možnost si to vytvořit jako sekvenci Kodi příkazů v python scriptu a spuštění toho scriptu namapovat na nějaké tlačítko. Script by měl začít nějak takto:
Kód:
import xbmc
xbmc.executebuiltin( "XBMC.ActivateWindow(systemsettings)" )
xbmc.executebuiltin( "XBMC.Action(Down)" )
xbmc.executebuiltin( "XBMC.Action(Down)" )
xbmc.executebuiltin( "XBMC.Action(Right)" )
xbmc.executebuiltin( "XBMC.Action(Down)" )
xbmc.executebuiltin( "XBMC.Action(Down)" )
xbmc.executebuiltin( "XBMC.Action(Select)" )
...
Ale to je samozřejmě takové "hloupé řešení", které sice udělá co má, ale ne ní to žádná krása... 11
 
Citovat
#20
Jaj tak to je na mňa veľa.
Našiel som toto v quisettings.xml ale predpokladam že keby aj nejaky script vedel zmenit hodnotu v tomto subore tak je potrebný reštart na znovu načitanie a to je nezmysel.
 2.1 Enable mouse and touch screen supportSettings level:BasicDescription:Use a mouse or touch screen device to control the interface.Note: Disabling will cause you to lose control over this application when no keyboard or remote is present. If you are suffering loss of control due to this issue:
1. Locate the following line of code in the guisettings.xml file: <enablemouse>false</enablemouse>
2. replace with: <enablemouse default="true">true</enablemouse>
Mecool KII pro S905D, CoreELEC 9.0.1
 
Citovat
  


Přejít na fórum:


Prochází: 1 host(ů)