Fernsehen mit Kodi (ehemals XBMC)

Einer meiner beliebtesten Beiträge ist der schon über drei Jahre alte über das TV Schauen mit XBMC. Hier wird es wohl mal Zeit für ein kleines Update.
koditvhead
Da ich normalerweise auf MediaPortal setze, bezieht sich die folgende Anleitung auf die Verwendung des MediaPortal-TV-Servers. Mittlerweile werden noch viele weitere Backends unterstüzt, deren Kodi-Addons bei der Installation von Kodi auch gleich mitgeliefert werden. Soll MediaPortal verwendet werden, so ist das zunächst zu installieren. Es ist unter diesem Link erhältlich.
koditv-mp1
koditv-mp2
Wenn MediaPortal nur als Server dienen soll, kann die enstprechende Option im Installer ausgewählt werden.
koditv-mp3
Ich bevorzuge die MySQL-Datenbank. Nach abgeschlossener Installation und Einrichtung des MediaPortal-TV-Servers, wie sie hier beschrieben ist, muss die Verbindung mit Kodi vorbereitet werden.
Dazu wird ein Plugin für den TV-Server benötigt, welches passenderweise TVServerKodi heißt. Dieses muss in den Plugins-Ordner des TV-Servers unter "%PROGRAMFILES(x86)%\Team MediaPortal\MediaPortal TV Server\Plugins" (oder halt mit %PROGRAMFILES% bei einem 32-bit OS) kopiert werden. Wählt dazu die Version aus dem Release-Ordner des Archivs. In den hier gezeigten Screenshots ist noch die alte Plugin-Version TVServerXBMC gezeigt, die in meinem Test auch immer noch funktionierte.
Dann muss in der Konfiguration des TV-Servers das Plugin noch aktiviert werden, was durch das kleine Häkchen geschieht:
Unter Manual Control kann der TV-Server nun noch mit einem Klick auf “Stop Service” und einem anschließenden auf “Start Service” neu gestartet werden, damit das Plugin geladen wird. Dies geht alternativ auch über die Kommandozeile:

net stop TVService
net start TVService

Auf den folgenden Kodi-Screenshots ist der Skin Mimic zu sehen, mit dem Standard-Skin Confluence sollte aber alles ähnlich ablaufen. Zunächst einmal muss das entsprechende Add-On aktiviert werden. In den Einstellungen unter Add-Ons werden also die deaktivierten Add-Ons aufgesucht.
koditv1
Dort wird der “MediaPortal PVR Client” ausgewählt. Zunächst begeben wir uns in die Konfiguration und tragen die IP-Adresse des TV-Servers ein. Ist dieser auf dem selben Rechner installiert, so beträgt sie 127.0.0.1.
koditv2
koditv3
Die anderen Einstellungen können wie gewünscht gesetzt werden. Der TSReader (meine Wahl) greift dabei direkt auf MediaPortals Timeshift-Dateien zu. Er funktionierte bei mir in einer Client-Server-Umgebung einwandfrei.
koditv4
koditv5
Im Anschluss wird das Add-On aktiviert. Danach muss dann noch der TV-Support in den Einstellungen von Kodi eingeschaltet werden und dem Vergnügen steht nichts mehr im Weg.
koditv6
koditv7
Die Senderliste war schnell geladen, der EPG verfügbar und auch auf Aufnahmen und Programmierungen konnte ich sofort zugreifen.
koditv8
koditv9
Die ganze Geschichte kam mir in dem kurzen Test sogar flotter als bei MediaPortal vor, was vielleicht daran liegen mag, dass MediaPortal 1 allgemein eher träge ist. Mit MediaPortal 2 wird dann wohl alles besser. Allerdings ist auch Kodi eine interessante Alternative, deren TV-Teil mittlerweile auch problemlos funktioniert.

von meinem neuen Blog: http://ift.tt/1A3TVYl

Logitech R400 unter OSX mit Skim verwenden

Ich besitze einen R400 Presenter von Logitech. Meiner Meinung nach bietet dieser alles, was man so von einem Presenter erwartet. Zusatzfunktionen der teureren Modelle wie Display oder Diktiergerät benötige ich nicht. Er funktioniert auch einwandfrei – sofern man denn PowerPoint verwendet – da die einzelnen Tasten einfache Tastaturkommandos schicken, wie sie PowerPoint erwartet. Wenn man nun aber die Präsentation mit LaTeX erstellt und das daraus resultierende pdf am Mac in Skim anzeigt, funktioniert die Bedienung nicht mehr.

Normalerweise sendet der R400 für nächste und vorherige Folie “Bild ab” beziehungsweise “Bild auf”. Der Knopf zum Start der Präsentation entspricht einem Klick auf “F5″ und das Abdunkeln des Bildschirms einem auf “.” – eben genau so, wie es für PowerPoint benötigt wird. Diese Tastendrücke lassen sich mit Karabiner anderen Tasten zuweisen. Nach der Installation begeben wir uns dazu in die Einstellungen von Karabiner und öffnen dort die private.xml, was das Hinzufügen von eigenen, über die voreingestellten hinausgehenden Zuweisungen, ermöglicht.
karabiner1
Der komplette Inhalt kann dann einfach durch den meiner private.xml ersetzt werden, die ich hier hochgeladen habe. Sie sieht folgendermaßen aus:

<?xml version="1.0"?>
<root>
  <appdef>
    <appname>SKIM</appname>
    <equal>net.sourceforge.skim-app.skim</equal>
  </appdef>
  <item>
    <name>R400 for presentation in Skim</name>
    <identifier>private.presenter_skim</identifier>

    <only>SKIM</only>

    <autogen>__KeyToKey__ KeyCode::PAGEDOWN, KeyCode::CURSOR_RIGHT</autogen>
    <autogen>__KeyToKey__ KeyCode::PAGEUP, KeyCode::CURSOR_LEFT</autogen>
    <autogen>__KeyToKey__ KeyCode::DOT, KeyCode::B</autogen>
  </item>
</root>

Dabei wird zunächst die App Skim definiert, um das Remapping später nur bei geöffnetem Skim durchzuführen. Schließlich soll der R400 ja auch noch in PowerPoint funktionieren.

  <appdef>
    <appname>SKIM</appname>
    <equal>net.sourceforge.skim-app.skim</equal>
  </appdef>

Dann wird ein frei wählbarer Name und eine ID für das Remapping vergeben, der später im Karabiner-Fenster angezeigt wird.

    <name>R400 for presentation in Skim</name>
    <identifier>private.presenter_skim</identifier>

Nun wird festgelegt, dass die Zuweisung nur in Skim erfolgen soll.

    <only>SKIM</only>

Und zum Schluss erfolgt dann das eigentliche Remapping. So wird aus “Bild ab” der “Pfeil nach rechts”, aus “Bild auf” der “Pfeil nach links” und aus dem Punkt ein “B”, was in Skims Präsentationsmodus für das Abdunkeln des Bildschirms sorgt.

    <autogen>__KeyToKey__ KeyCode::PAGEDOWN, KeyCode::CURSOR_RIGHT</autogen>
    <autogen>__KeyToKey__ KeyCode::PAGEUP, KeyCode::CURSOR_LEFT</autogen>
    <autogen>__KeyToKey__ KeyCode::DOT, KeyCode::B</autogen>

Die Taste zum Start des Präsentationsmodus von Skim habe ich auf F5 geändert. Da das mit Bordmitteln geht, ist hier kein Umweg über Karabiner nötig. Dazu müssen die Systemeinstellungen geöffnet werden. Unter “Tastatur” kann dann jedem Befehl, der im Menü auftaucht, eine Tastenkombination zugewiesen werden.
karabiner2
Dazu muss der Name nur exakt dem Eintrag im Menü entsprechen, im vorliegenden Fall also “Präsentation”.
karabiner3
Und damit funktionieren alle Tasten des R400 auch in Skim und damit bei pdfs wie von PowerPoint gewohnt. Die Fähigkeiten von Karabiner wurden hierbei nur oberflächlich behandelt und sind weitaus größer, wie der Dokumentation zu entehmen ist.

von meinem neuen Blog: http://ift.tt/1A3TVrl

Mit AutoHotkey schnell BibTeX zu DOI erhalten

Alle meine Berichte für das Studium schreibe ich in LaTeX. Wenn man es einmal kann, gibt es einfach nichts besseres. Auf jeden Fall braucht man da natürlich auch einiges an Literatur. Man könnte die BibTeX-Datei jetzt natürlich komplett von Hand schreiben oder man nutzt Programme wie Mendeley oder Citavi, die die Daten eines Papers automatisch herunterladen.
doi2bibtex2
Letztere machen aber meist nicht genau das, was man haben will und haben oft auch Probleme mit der Abkürzung der Journal-Namen, weshalb ich die bib-Datei schließlich immer noch einmal mit JabRef nachbearbeite (Automatische Abkürzung der Zeitschriftentitel ftw). Will man nun noch “mal eben” ein Paper einfügen, müsste man die Daten per Hand in JabRef eingeben, das Zitat einzeln als bib von der Artikelseite herunterladen oder – was ich noch als die angenehmste Lösung empfinde – den BibTeX-Eintrag von Crossref kopieren. Aber all diese Methoden erfordern natürlich einige Klicks, die man sich auch gerne sparen kann.
Dafür habe ich ein kleines AutoHotkey-Skript geschrieben:

; CTRL + WINDOWS KEY + I LOOKS UP DOI
^#i::
  Gui, Add, Edit, w300 vDOI
  Gui, Add, Button, default section, BibTeX
  Gui, Add, Button, x260 ys, Website
  Gui, Show,, DOI Lookup
return

ButtonBibTex:
  Gui, Submit
  bibtex:=doiToBibtex(DOI)
  bibtex=%bibtex%
  clipboard=%bibtex%
  TrayTip, BibTeX kopiert, %bibtex%, 10, 1
  GUI, Destroy
return

ButtonWebsite:
  Gui, Submit
  openWebpage(DOI)
  GUI, Destroy
return

GuiClose:
  Gui, Destroy
return

; DOI to BibTeX
doiToBibtex(doi="")
{
  ; from http://ift.tt/ONxcsX
  cURL_command := "curl -LH ""Accept: application/x-bibtex"" http://dx.doi.org/" . doi
  Cmd := ComObjCreate("WScript.Shell")
  CmdRun := Cmd.Exec(ComSpec . " /c cURL.exe " . cURL_command)
  output := CmdRun.StdOut.ReadAll()
  return output
}

; Open webpage from DOI
openWebpage(doi="")
{
  Run, http://dx.doi.org/%doi%
}

Damit wird nach dem Drücken von Strg + Win + I ein kleines Eingabefenster geöffnet, in das der DOI eingegeben werden muss. Mit einem Klick auf BibTex wird der BibTex-Eintrag in die Zwischenablage kopiert, mit einem auf Website die Seite zum Artikel im Browser geöffnet.
doi-lookup
doi-lookup-tray
Nun folgt, wie immer, noch die Erklärung:

^#i::
  Gui, Add, Edit, w300 vDOI
  Gui, Add, Button, default section, BibTeX
  Gui, Add, Button, x260 ys, Website
  Gui, Show,, DOI Lookup
return

Hier wird zunächst die GUI erstellt. Ein 300 Pixel breites Eingabefeld mit zugehörigem Variablennamen DOI und zwei Buttons. BibTeX wird bei einem Druck auf Enter ausgelöst (default), Website befindet sich bei einem x-Wert von 260 Pixeln und auf der selben y-Höhe wie BibTeX (das s in ys steht für section). Schließlich wird die GUI mit dem Titel “DOI Lookup” angezeigt.

ButtonBibTex:
  Gui, Submit
  bibtex:=doiToBibtex(DOI)
  bibtex=%bibtex%
  clipboard=%bibtex%
  TrayTip, BibTeX kopiert, %bibtex%, 10, 1
  GUI, Destroy
return

Bei einem Klick auf BibTeX wird mit Gui, Submit der DOI in der Variable DOI gespeichert. Dann wird über die unten erklärte Funktion doiToBibtex der ausgegebene BibTeX-Inhalt in bibtex gespeichert und in die Zwischenablage geschrieben. bibtex=%bibtex% entfernt Leerzeichen am Anfang und Ende. Schließlich wird noch der Ballon-Tip angezeigt. Zum Schluss wird mit Gui, Destroy dafür gesorgt, dass die Variablen für das nächste Öffnen der GUI wieder zur Verfügung stehen.

ButtonWebsite:
  Gui, Submit
  openWebpage(DOI)
  GUI, Destroy
return

Mit einem Klick auf Website wird nur eine weitere Funktion (siehe unten) aufgerufen.

doiToBibtex(doi="")
{
  cURL_command := "curl -LH ""Accept: application/x-bibtex"" http://dx.doi.org/" . doi
  Cmd := ComObjCreate("WScript.Shell")
  CmdRun := Cmd.Exec(ComSpec . " /c cURL.exe " . cURL_command)
  output := CmdRun.StdOut.ReadAll()
  return output
}

Hier kommt der wichtige Teil: Mit curl wird über CrossCite aus dem DOI ein BibTeX erzeugt. Dazu wird curl über die cmd aufgerufen und die Ausgabe zurückgegeben.

openWebpage(doi="")
{
  Run, http://dx.doi.org/%doi%
}

Zum Öffnen der Artikelseite wird der DOI einfach an dx.doi.org angehängt.

Schließlich gibt es natürlich noch den Download der ahk-Datei. Außerdem wird curl benötigt. Der “Download WITHOUT SSL” ist in Ordnung. Die curl.exe muss im selben Verzeichnis wie das Skript liegen. Dann nur noch das Skript ausführen und schon klappt alles.

von meinem neuen Blog: http://ift.tt/1dejgDE

Ein erneuter Blick auf ShareMouse: Software-KVM

Vor zwei Jahren habe ich mir schon einmal ShareMouse angeschaut und war sehr begeistert. Im Gegensatz zu Synergy funktionierte das Programm einfach ohne jegliche Konfiguration zwischen meinem Windows-PC und dem MacBook – einfach nur die Maus an den Bildschirmrand schieben und schon befindet sich der Mauszeiger auf dem anderen Rechner.
sharemouse-monitormanager
Bei meinem letzten Test habe ich noch bemängelt, dass Drag & Drop zwischen den Rechnern, anders als beworben, nicht funktionierte. Damals war man aber auch noch in der Beta. Heute verrichtet diese Funktion einwandfrei ihren Dienst. Ebenso wie die gemeinsame Zwischenablage.
In der Vergangenheit habe ich ShareMouse wirklich gerne genutzt, auch wenn manchmal bestimmte Tastendrücke auf dem Mac nicht mehr ankommen wollten. Auch dies konnte ich nun mit Version 2 aber nicht mehr reproduzieren. Dann jedoch, als ich einen zweiten Monitor an den PC anschloss, war ich für ShareMouse ein Power-User und die kostenlose Version wollte nicht mehr laufen. Dies führte dazu, dass ich das Programm nicht mehr verwendete – als armer Student muss man ja auch sehen, wo man bleibt.
sharemouse-settings
Nun bekam ich jedoch vom Entwickler eine Lizenz zum Testen zur Verfügung gestellt und muss sagen, dass das Programm schon eine feine Sache ist. Gut, die Standard-Version kostet 20 Euro mit Upgrades für ein Jahr, aber wenn man viel mit mehreren Rechnern arbeitet und nicht ständig zwischen den Eingabegeräten wechseln will, lohnt sich das meiner Meinung nach schon. Zumal man die ja auch nur zahlen muss, wenn man mehr als einen Monitor pro Rechner nutzt. Ich bin also letztendlich selbst daran schuld, dass die kostenlose Version für mich nicht mehr ausreichte.
Von mir gibt es demnach eine Empfehlung für ShareMouse, für die kostenlose Version sowieso. Aber auch die Standard-Edition lohnt sich meiner Meinung nach, sofern sie denn erforderlich ist.

von meinem neuen Blog: http://0manzel.bigmaxxxl.de/ein-erneuter-blick-auf-sharemouse-software-kvm/

Kein Sound am HTPC mit AVR nach Ausschalten des Fernsehers

Seit ich einen AV-Receiver (Denon AVR-X1000, gefällt mir gut) am HTPC hängen habe, tritt das Problem auf, dass nach dem Ausschalten des Fernsehers kein HDMI-Audio-Gerät mehr erkannt wird. Ist natürlich blöd, wenn zum Musik Hören immer die Glotze laufen muss. Aber es gibt ja für alles eine Lösung, nicht?
mepotitan
Das Problem tritt wohl nur dann auf, wenn der HTPC über HDMI am AVR hängt und sowohl Bild als auch Ton über HDMI übertragen werden. Wenn nun der Fernseher ausgeschaltet wird, denkt Windows, es wäre kein Gerät mehr verfügbar, obwohl der AVR ja noch eingeschaltet und funktional ist. Wenn nun der Fernseher wieder eingeschaltet wird, wird selbst das nicht erkannt. Bild ist zwar verfügbar, aber es gibt immer noch keinen Ton. Nebenbei stürzt MediaPortal bei Wiedereinschalten ganz gerne mal ab. Weiterlesen

Deutsche Kinderkrebsstiftung unterstützen und Domain-Weltkarte kostenlos erhalten

Wie ich bei caschy erfahren habe, gibt es von checkdomain eine Aktion, bei der jeder Blogger, der über dieselbe schreibt eine sehr schicke Domain-Weltkarte kostenlos erhält.
Domain-Weltkarte von Checkdomain
Außerdem spendet checkdomain für jede Karte 10 Euro an die Deutsche Kinderkrebsstiftung, welche an Krebs erkrankte Kinder und deren Familien betreut und unterstützt. Allein dafür lohnt sich das Mitmachen doch schon.
Und wer keinen Blog hat, kann die Weltkarte für 27 Euro auch käuflich erwerben. Davon werden dann auch 10 Euro gespendet.

von meinem neuen Blog: http://0manzel.bigmaxxxl.de/deutsche-kinderkrebsstiftung-unterstuetzen-und-domain-weltkarte-kostenlos-erhalten/

Multimedia-Tasten der Logitech-Tastatur mit foobar2000 verwenden

Ich besitze ein Illuminated Keyboard von Logitech. Es hat so schöne Tasten für Play/Pause sowie letzter und nächster Titel. Diese funktionieren auch mit foobar2000, dem Player meiner Wahl. Allerdings nur dann, wenn er nicht minimiert ist. Und dann kann ich ja auch mit der Maus im Programm auf Play drücken. Aber das Problem lässt sich beheben. So gilt es, sich nach

%PROGRAMFILES%\Logitech\SetPointP

zu begeben und dort die players.ini zu öffnen. Am Ende des mit [players] überschriebenen Abschnitts muss nun die folgende Zeile hineinkopiert werden:

foobar2000=wac,foobar2000.exe,{E7076D1C-A7BF-4f39-B771-BCBE88F2A2A8}/1,xxx,xxx,xxx,xxx,xxx,xxx,xxx,0,1,foobar2000

Dabei ist {E7076D1C-A7BF-4f39-B771-BCBE88F2A2A8} die ID für die Columns UI, bei einer anderen Benutzeroberfläche muss diese ID angepasst werden. Herausfinden lässt sie sich zum Beispiel mit dem AU3_Spy, der bei AutoHotkey enthalten ist. Dies gibt es auch in einem zip-File. Einfach die AU3_Spy.exe starten und mit foobar2000 anklicken. Dann wird oben die ID angezeigt. Sie lässt sich einfach kopieren und in der players.ini einfügen.
foobarid
Nach einem Neustart von SetPoint (und eventuell foobar2000) funktionieren dann die Multimedia-Tasten auch dann, wenn der Player minimiert ist.

von meinem neuen Blog: http://0manzel.bigmaxxxl.de/multimedia-tasten-der-logitech-tastatur-mit-foobar2000-verwenden/

SQL-Datenbank des MediaPortal-TV-Servers reparieren

Gestern wollte ich nur noch schnell eine Aufnahme in MediaPortal programmieren, bevor es ins Bett gehen sollte. Allerdings war auf einmal der komplette EPG leer. Live TV funktionierte ebenfalls nicht. Eine Aufnahme hatte ich aber gerade noch ohne Probleme angesehen. Also nicht ins Bett – Problem lösen war angesagt.
mysql-fehler

Erst dachte ich an ein Problem mit dem TVService. Aber auch ein Neustart desselben und ebenso des ganzen TV-Servers (also des Rechners, nicht des Programms) brachte keinen Erfolg. Demnach habe ich mal flugs in der Ereignisanzeige (eventvwr im Startmenü eingeben) von Windows nachgeschaut. Und siehe da – Tausende von MySQL-Fehlern waren innerhalb weniger Stunden aufgetreten. Dabei war es fast ausschließlich ein und derselbe Fehler:
mysql-fehler2

Table '.\mptvdb\program' is marked as crashed and should be repaired

Die Datenbank war also kaputt. Dies könnte vielleicht an der defekten Festplatte – zu erkennen an den Unmengen von Disk- und Ntfs-Fehlern – liegen. Die wird auch bald ersetzt, läuft aber nach Ausführung von chkdsk immer ungefähr wieder einen Monat ohne Probleme. Ich sollte die Datenbank reparieren, die Frage war nur wie. Zum Glück wusste das exzellente MediaPortal-Forum, genauer mm1352000, einer der Entwickler, die Lösung: Auf der Kommandozeile (cmd im Startmenü eingeben) müssen die folgenden Befehle ausgeführt werden:

cd C:\Program Files\MySQL\MySQL Server 5.1\bin
mysqlcheck mptvdb --auto-repair -e -u root -p

Der erste sollte bei anderem Installationspfad von MySQL entsprechend angepasst werden. Nach Eingabe der zweiten Zeile sollte eine Passwortabfrage auftauchen. Das Standardpasswort ist hier “MediaPortal” (ohne die “). Nach kurzer Zeit sollte die Datenbank repariert sein. Das Fernsehen an meinem Client funktionierte dabei erst nach einem Neustart von MediaPortal. Den TVService habe ich sicherheitshalber auch mal neu gestartet.

Und seitdem sind keine Probleme mehr aufgetreten. Das bleibt hoffentlich auch so bis die Festplatte endgültig stirbt – aber nach fast zehn Jahren sei ihr das gegönnt.

from Manzels Blog http://0manzel.bigmaxxxl.de/sql-datenbank-des-mediaportal-tv-servers-reparieren/

Per Kontextmenü in Sublime Text öffnen

Vor kurzem habe ich den erstklassigen Texteditor Sublime Text für mich entdeckt, den es sogar in einer portablen Version gibt. Allerdings habe ich keine Möglichkeit gefunden, Dateien wie bei Notepad++ direkt aus dem Kontextmenü zu öffnen. Insofern habe ich selbst Hand angelegt.

Dazu muss nämlich nur ein kleiner Eintrag in der Registry gesetzt werden. Im Pfad

HKEY_CLASSES_ROOT\*\shell\

muss dazu ein neuer Schlüssel mit beliebigem Namen angelegt werden. Dieser Name taucht dann später im Kontextmenü auf, weshalb er bei mir Mit Sublime Text öffnen heißt. Darin muss ein neuer Schlüssel namens command liegen, dessen Standardwert den Pfad zur Anwendung, gefolgt von "%1" enthalten muss. Bei mir also:

"D:\PortableApps\Sublime Text\sublime_text.exe" "%1"

Wem das jetzt alles zu aufwändig ist, der kann auch gerne meine reg-Datei mit folgendem Inhalt verwenden:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\*\shell\Mit Sublime Text öffnen\command]
@="\"D:\\PortableApps\\Sublime Text\\sublime_text.exe\" \"%1\""

Es gibt natürlich auch eine Datei, um das wieder rückgängig zu machen. Diese sieht wie folgt aus:

Windows Registry Editor Version 5.00

[-HKEY_CLASSES_ROOT\*\shell\Mit Sublime Text öffnen]

Dabei muss das Programm aber entweder im selben Pfad liegen, oder aber dieser muss in der Datei angepasst werden – was zum Beispiel mit Sublime Text geht. Dabei ist auf die doppelten Backslashes zu achten, sonst funktioniert es nicht.

from Manzels Blog http://0manzel.bigmaxxxl.de/per-kontextmenue-in-sublime-text-oeffnen/