Skip to content

LibreELEC Kodi - Tastenbelegung einer Fernbedienung (HDMI CEC) anpassen

Ich möchte die kleine LibreELEC Serie fortsetzen und heute zeigen, wie sich eine Fernbedienung für die Steuerung von Kodi anpassen lässt.

In unserem Szenario wird LibreELEC über den TV verwendet und somit über die normale TV Fernbedienung angesteuert.

Was ist eine Keymap

Jede Kodi Variante hat sogenannte Keymaps auf dem System hinterlegt. Dabei handelt es sich um XML Dateien in denen Tastenbelegungen verschiedener Eingabegeräte hinterlegt sind.

Diese lassen sich auf das eigene Setup anpassen. (In meinem Fall vermisse ich auf den meisten Fernbedienungen beispielsweise den Rechtsklick bzw. das Kontextmenü, welches ich auf einer extra Taste einrichte.)

Übersicht der Keymap Pfade auf den einzelnen Systemen

Android Android/data/org.xbmc.kodi/files/.kodi/userdata/ (see note)
iOS /private/var/mobile/Library/Preferences/Kodi/userdata/
Linux ~/.kodi/userdata/
Mac /Users/<your_user_name>/Library/Application Support/Kodi/userdata/ (see note)
LibreELEC /storage/.kodi/userdata/keymaps/
Windows Start - type %APPDATA%\kodi\userdata - press <Enter>
   

 

 

 

 

 

 

Unter LibreELEC befinden sich die original Keymaps unter /usr/share/kodi/system/keymaps

Weitere Informationen finden sich hier.

Keymap manuell anpassen

Eine angepasste Keymap würde in unserem Szenario unter /storage/.kodi/userdata/keymaps/gen.xml abgelegt werden.

Ein Eintrag für das Kontextmenü kann ungefähr wie folgt aussehen, wobei der Aufbau immer gleich ist:

<keymap>
    <virtualkeyboard>
        <keyboard>
            <key id="221">contextmenu</key>
        </keyboard>
    </virtualkeyboard>
    <global>
        <keyboard>
            <key id="221">contextmenu</key>
        </keyboard>
    </global>
</keymap>

Hier stellt sich recht schnell die Frage wie man auf die IDs kommt. Diese lassen sich beispielweise über das debug.log herausfinden, was aber Aufwand darstellt, daher würde ich beim Anpassen einer Fernbedienung den Weg über den Keymap Editor wählen.

Keymap mit dem Keymap Editor anpassen

Um sich Arbeit zu sparen, für Schritte wie Tastenbelegung erkunden und XML File anlegen wurde bereits ein einfaches Addon programmiert.

Installation Keymap Editor

Der Keymap Editor erlaubt es mit wenigen Schritten eine CEC Fernbedienung nach euren Wünschen zu programmieren. Praktischerweise ist dieser auch im System bereits vorhanden.

kodi-keymap-editor

Sollte unter den Programm-Addons kein Keymap Editor zu finden sein, dann installiert das Addon manuell über den Download Button weiter unten.

kodi-keymap-editor

Nach der Installation lassen sich Tasten einfach anpassen oder zusätzliche Funktionen auf freie Tasten legen.

kodi-keymap-editor

Fazit

Wie ihr seht ist es relativ einfach sich sein eigenes Bedienkonzept zu erstellen. Wobei die Variante über den Keymap Editor sicherlich die schnellste und einfachste dafür darstellt.

Download Keymap edito

 

Notepad++ (nicht Notepadqq) unter Ubuntu installieren und nutzen

Ob und wie sich das Tool Notepad++ unter Ubuntu nutzen lässt war vor Jahren schon einmal Thema auf ITrig. 

Damals hatte ich die freie Alternative Notepadqq empfohlen.

Mit der Einführung der Snap Apps und der Verwendung von wine-i386 steht nun das aus Windows bekannte Notepad++ unter Ubuntu zur Verfügung.

 

notepadplusplus

Seit Ubuntu 16.04 sind Snaps fester Systembestandteil, falls dennoch eine Installation nötig sein sollte, ist die mit folgendem Befehl möglich:

sudo apt-get install snapd 

Notepad++ unter Ubuntu installieren

Durch neue Paketformates kann der Notepad Klassiker nun unter Ubuntu verwendet werden.

sudo snap install notepad-plus-plus

Die Notepad++ Version entspricht der Windows Variante und bringt somit auch die gleichen Funktionen mit.

notepadplusplus-ubuntu-snap

Natürlich kann die oben erwähnte Alternative über den gleichen Weg installiert werden.

sudo snap install notepadqq

 

Ubuntu 18.04 - Command not found - Unterschied zwischen tailf und tail -f

Unter Ubuntu gab es bis zur Version 16.04 LTS die Möglichkeit tailf und tail -f zu verwenden. Dies ist mit der neuesten LTS Version nicht mehr der Fall. Nur noch die zweite Möglichkeit wird erkannt, ansonsten wird eine Fehler geworfen.

Wo liegen die Unterschiede dieser zwei Kommandos und warum gibt es eines nicht mehr?

Unterschied tailf und tail -f

tailf

Laut Befehlsdefinition verfolgt tailf das Wachstum einer Logdatei. tailf gibt die letzten 10 Zeilen der angegebenen Datei aus und wartet dann darauf, dass diese Datei wächst. Es ist ähnlich wie tail -f, greift aber nicht auf die Datei zu, wenn sie nicht wächst.

Dies hat den Nebeneffekt, dass die Zugriffszeit für die Datei nicht aktualisiert wird, so dass ein Flush des Dateisystems nicht periodisch stattfindet, wenn keine Protokollaktivität stattfindet.

tailf ist äußerst nützlich für die Überwachung von Protokolldateien auf einem Laptop, wenn die Protokollierung selten ist und der Benutzer möchte, dass sich die Festplatte herunterdreht, um die Akkulaufzeit zu verlängern. (Übersetzt mit www.DeepL.com/Translator)

tail

Für tail lautet die Definition wie folgt:

Das Tail-Utility muss seine Eingabedatei in die Standardausgabe kopieren, beginnend mit einem festgelegtem Ortes.

Das Kopieren beginnt an der Stelle in der Datei, die durch die -c-Nummer oder -n-Nummer gekennzeichnet ist.

Optionen: Die Nummer des Optionsarguments wird in Zeilen- oder Byteseinheiten gezählt, entsprechend der zu den Optionen -n und -c.  Sowohl die Zeilen- als auch die Byteanzahl beginnen bei 1.

Tails in Bezug auf das Ende der Datei können in einem internen Puffer gespeichert werden und sind somit möglich.

Der Originaltext ist hier zu finden.

Tail ist auf allen Ubuntu Varianten installiert, was sich auch überprüfen lässt

dpkg -S $(which tail)

oder

dpkg -L coreutils | grep tail

tail-f

tailf wurde nicht mit den coreutils ausgeliefert, sondern mit util-linux und genau dieses Paket ist seit Version 18.04 nicht mehr dabei.

dpkg -L util-linux |grep tail

Bei 16.04 LTS ist es allerdings noch verfügbar

tailf

Doch wie lässt sich ein alter Befehl weiterhin nutzen?

Tailf unter Ubuntu 18.04 einsetzen


Ein Workaround wäre der Einsatz von alias, damit könnte das alte nicht mehr verfügbare Kommando auf das neue gelegt werden, der Befehl ist einfach gesetzt:

sudo nano ~/.bashrc

alias tailf='tail -f'


Meist wird der tail Befehl für Dateien verwendet, welche erhöhte Rechte benötigen, darum kann es sinnvoll sein, den Alias auch beim root Benutzer zu hinterlegen.

sudo nano /root/.bashrc

alias tailf='tail -f'

Alternativ kann natürlich zusätzlich less eingesetzt werden. tailf selbst ist deprecated und sollte nicht mehr eingesetzt werden..

KeyStore Explorer - Java Keystore und Zertifikate ohne die Kommandozeile verwalten

Zunächst ein gesundes neues Jahr 2019.

Java Keystore Management auf der Konsole empfinde ich als anstrengend. Liegt mit daran, dass ich mir Befehle wie

keytool -import -keystore /opt/data/cacerts -file /home/itrig/url.itrig.de.crt -alias url.itrig.de

einfach nicht merken kann oder zu selten benötige und sie daher nicht mag. Außerdem ist es mit einem Befehl nicht getan, denn nach dem Import, muss das Ganze noch einmal aufgelistet und eventuell ergänzt werden, usw.

keytool -list /opt/data/cacerts

keystore explorer

Eine Auswahl dieser Befehle hatte ich auch schon in einem Artikel - 9 praktische Keytool Befehle zusammengefasst.

KeyStore Explorer

Abhilfe schafft der KeyStoreExplorer, vorausgesetzt ein Verwaltungsgerät mit Oberfläche ist vorhanden.

Das Programm ergänzt quasi Tools wie das erwähnte keytool oder jarsigner mit einem grafischen Userinterface und lässt sich somit relativ leicht bedienen.

Es läuft auf nahezu jedem System, da es auf Java basiert und erlaubt alle Funktionen, die von der Kommandozeile bekannt sind. Dinge wie Import von Zertifikaten, sowie Export oder umbenennen. Passwort ändern oder generieren.  Insgesamt viele praktische Befehle die sich nun via Klick realisieren lassen.

Auch eine Konvertierung der folgenden Formate beherrscht das Tool: JKS, JCEKS, PKCS #12, BKS (V1 and V2) und UBER.

Aktuell ist Version 5.4.1.

KeyStore_Explorer

Fazit

Wer sich auf der Kommandozeile nicht immer wohlfühlt, der hat mit dem KeyStoreExplorer das richtige Werkezug um Java, Zertifikaten und deren Speicherung Herr zu werden. 

PS: Das Standardpasswort für einen Java Keystore ist "changeit"

Download Keystore Explorer

PostgreSQL 11 - die Neuerungen, sowie Installation und Upgrade unter Ubuntu 18.04 LTS

Letzte Woche war es soweit, nach einen Jahr wurde PostgreSQL 11 veröffentlicht.

Die neue Version 11 hat im Vergleich zur letzten viele Änderungen erhalten. Neben Performance wurde auch an der Usability gearbeitet.

PostgreSQL 11 Neuerungen

Die vielleicht beste Neuerung für den Wald und Wiesen Datenbanknutzer betrifft die Postgres Konsole psql. Diese kann nun mit quit und exit verlassen werden, in Ergänzung zu \q oder Strg+D

postgres

Weitere Änderungen sind:

Die Parallelisierung wurde auf Hash Joins, Append, Index Erstellung, UNION-Abfragen und weitere Elemente erweitert.

JIT (Just in Time ) Kompilierung wurde integriert, was nach eigenen Aussagen 30% Geschwindigkeitszuwachs bringt . JIT muss manuell aktiviert werden.

Die Partitionierung wurde verbessert (z.B. hash partitioning) und PRIMARY KEY und FOREIGN KEY Anweisungen sind nun auch auf Partitionen möglich.

Neue Rollen wurden eingeführt (pg_read_server_files, pg_write_server_files, pg_execute_server_program).

Und ALTER TABLE beherrscht nun ADD COLUMN mit NOT NULL als Standardwert. 

 

Dies ist nur ein minimaler Auszug der neuen Features des aktuellen Releases. Daher verweise ich auf die Release Notes.

Nun zur Installation

Installation PostgreSQL 11 unter Ubuntu 18.04 LTS

sudo wget -O - http://apt.postgresql.org/pub/repos/apt/ACCC4CF8.asc | sudo apt-key add -
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ bionic-pgdg main 11" >> /etc/apt/sources.list.d/postgresql-11.list'
sudo apt update
sudo apt install postgresql-11

The following additional packages will be installed:
  libllvm6.0 libpq5 libsensors4 pgdg-keyring postgresql-client-11 postgresql-client-common postgresql-common sysstat
Suggested packages:
  lm-sensors locales-all postgresql-doc-11 libjson-perl isag
The following NEW packages will be installed:
  libllvm6.0 libpq5 libsensors4 pgdg-keyring postgresql-11 postgresql-client-11 postgresql-client-common postgresql-common sysstat
0 upgraded, 9 newly installed, 0 to remove and 1 not upgraded.
Need to get 30.7 MB of archives.
After this operation, 115 MB of additional disk space will be used.
Do you want to continue? [Y/n] y

Upgrade auf PostgreSQL 11 von PostgreSQL 10

Bei einem Upgrade muss die neue Version (wie oben beschrieben) installiert werden. Danach kann überprüft werden, ob beide aktiv sind. Vorher aber das Backup nicht vergessen.

pg_dumpall > Sicherung
pg_lsclusters

Danach wird das neue Cluster vorerst angehalten damit das alte auf das neue migriert werden kann.

sudo pg_dropcluster 11 main --stop
sudo pg_upgradecluster 10 main

  Stopping old cluster...
  Disabling connections to the old cluster during upgrade...
  Restarting old cluster with restricted connections...
  Creating new PostgreSQL cluster 11/main ...
  /usr/lib/postgresql/11/bin/initdb -D /var/lib/postgresql/11/main --auth-local peer --auth-host md5 
  --encoding UTF8 --lc-collate en_US.UTF-8 --lc-ctype en_US.UTF-8
  The files belonging to this database system will be owned by user "postgres".
  This user must also own the server process.

  The database cluster will be initialized with locale "en_US.UTF-8".
  The default text search configuration will be set to "english".

  Data page checksums are disabled.

  fixing permissions on existing directory /var/lib/postgresql/11/main ... ok
  creating subdirectories ... ok
  selecting default max_connections ... 100
  selecting default shared_buffers ... 128MB
  selecting dynamic shared memory implementation ... posix
  creating configuration files ... ok
  running bootstrap script ... ok
  performing post-bootstrap initialization ... ok
  syncing data to disk ... ok

pg_lscluster

Im nächsten Schritt kann die korrekte Funktion des Systems und der Datenbanken überprüft werden.

Ist alles in Ordnung kann das alte Cluster entfernt werden.

sudo pg_dropcluster 10 main