Mapovací soubory
Z mnoha příspěvků na téma mapování jsem odvodil, že není všeobecně známo, jak Kodi s mapovacími soubory nakládá.
V první řadě je třeba říci, kde je uloženo základní (defaultní) mapování. To, jak jsou tlačítka mapována pokud si nainstalujete čisté Kodi není dáno někde v kódu Kodi, ale používá se pro to stejný mechanismus, jako pro uživatelské mapování. Soubory mapování najdete v základním adresáři aplikace Kodi (ten závisí na typu instalace), viz např.
Adresáře a soubory Kodi v cestě
.../system/keymaps
Pro uživatelské mapování má Kodi pak definován adresář v datovém adresáři Kodi, označovaném jako Home. Umístění Home najdete popsané ve výše uvedeném odkazu, soubory mapování pak v adresáři
.../userdata/keymaps
Jména souborů s uživatelským mapováním
Tady je většina uživatelů tak trochu ve vleku působení populárního addon
Keymap Editor, který soubor s mapování pojmenovává
gen.xml. Můžeme pak vidět, i když si uživatelé soubor mapování definují (editují) sami, že stále trvají na tomto pojmenování. A také na tom, že definici mapování ukládají stále jen do jednoho souboru. A přitom by bylo mnohdy užitečné, například pro ty, kteří provozují Kodi na různých platformách a s různým způsobem ovládání, mít možnost si definice mapování rozdělit do nějakých logických skupin (a souborů) a používat pak například pro různé instalace různou skladbu souborů.
Jak to tedy ve skutečnosti je?
Kodi s mapovacími soubory pracuje tak, že si při spuštění (nebo při zadání Kodi příkazu
reloadkeymap) načte seznam všech souborů v adresáři s mapovacími soubory (setříděný podle abecedy) a pak si soubory jeden po druhém načte a nadefinuje si ta mapování, která v nich najde. Výsledkem je vždy mapování, které odpovídá zadanému předpisu po načtení všech souborů. Pokud tedy například mapování v souboru přepisuje mapování načtené dříve, tak zůstane v platnosti to mapování které bylo načtené později.
Takže platí že:
- soubory se mohou jmenovat jakkoliv (musí mít ale příponu
.xml), rozhodující je jejich obsah,
- souborů může být více,
- pro výsledné mapování, při případném konfliktu v jednotlivých souborech, je rozhodující pořadí souboru v adresáři, a platí to, co je v později načteném souboru (viz Pozn.),
- některé chyby v mapovacích souborech se projeví jen lokálně, tzn. neprovede se příslušné mapování, ve kterém je chyba, jiné mohou mít globální dopad, tzn. nějak se "poškodí" i ostatní mapování. V takovém případě, nejste-li si jisti, je dobré zapnou v Kodi "debug mode" a podívat se do logu. Popis chyby při načtení a dekódování mapování většinou pomůže chybu rychle nalézt,
- rozdělení mapování do více souborů má další pozitivní efekt, že se případná "zásadní chyba" v syntaxi mapovacího souboru omezí jen na daný soubor a lépe se pak hledá.
Samozřejmě, že pak ještě existuje plno dalších pravidel, jak má vypadat obsah mapovacích soborů a jak se má postupovat například při přemapovávání modifikovaných stisků (ctrl, shift, longpress) kláves. Zájemci to mohou najít v
Kodi Wiki, konkrétně například v
Keymaps a případné speciality na originál fóru
Kodi.tv, kde se to dá poměrně dobře nalézt. Jakmile bude čas, něco z toho se budu snažit popsat i zde.
Pozn.
Já to dělám tak, jak je to v linux/unix systémech pro tuto kategorii souborů typické, tedy že souborům dávám symbolická jména podle jejich dominanntího obsahu, před každé jméno ale předřazuji prefix
nn_ (kde nn je 00-99). Takže můj adresář
.../keymaps může vypadat například takto: