Kategorie: linux

linux läuft fast überall drauf, wenn man will. meistens gut, manchmal gibts probleme. hier sind meine lösungen.

moode audio watchdog

Maybe you want to make sure that your moode audio player is nearly always outputting a signal. Moode does not handle this by itself, at least not predictable. So I hacked together the following shell script which I execute by cron every minute:

#!/bin/sh
#
# simple-moode-watchdog.sh
# checks if other media renderer stuck in paused state, if so, unblock that
# checks if radio stream still playing, would otherwise restart playback

if [ -n "$(cat /proc/asound/card0/pcm0p/sub0/hw_params | grep closed)" ]
then
        if [ -n "$(cat /var/local/www/currentsong.txt | grep Spotify)" ]
        then
                /usr/local/bin/moodeutl -R --spotify
        elif [ -n "$(cat /var/local/www/currentsong.txt | grep Airplay)" ]
        then
                /usr/local/bin/moodeutl -R --airplay
        elif [ -n "$(cat /var/local/www/currentsong.txt | grep Bluetooth)" ]
        then
                /usr/local/bin/moodeutl -R --bluetooth
        fi
fi

if [ -n "$(cat /var/local/www/currentsong.txt | grep state\=play)" ] && [ -n "$(mpc | grep play)" ]
then
        timestamp1=$(mpc status | awk 'NR==2 { split($3, a, "/"); print a[1]}')
        sleep 10
        timestamp2=$(mpc status | awk 'NR==2 { split($3, a, "/"); print a[1]}')
        if [ "$timestamp1" = "$timestamp2" ]; then
                mpc -q stop
                mpc -q play
        fi
fi

if [ -n "$(cat /var/local/www/currentsong.txt | grep state\=stop)" ] || [ -n "$(cat /var/local/www/currentsong.txt | grep state\=pause)" ]
then
        mpc -q clear
        mpc -q load "Favorites"
        mpc -q play
fi

if ! pgrep -x "librespot" > /dev/null
then
        /usr/local/bin/moodeutl -R --spotify
fi

kodi + alte XBOX-DVD-Kit Fernbedienung

Bei einem guten Freund von mir läuft im Wohnzimmer ein Rechner mit Ubuntu, auf dem wiederum zum Filme gucken Kodi.

Nun hatte ich von meiner alten XBOX 1 noch das originale XBOX DVD Playback Kit, was eine ziemlich gute Fernbedienung enthält sowie einen USB-IR-Empfänger dafür.

Schritt 1: USB-Empfänger an USB anschließen. Klingt trivial, aber die alte Xbox hatte so ein eigenes Steckerformat um zu kaschieren dass sie USB benutzt, weil das System ursprünglich (bis der Modchip reinkam :D) zugenagelt war. Geht ziemlich einfach, hier ist die Anleitung dazu: https://kodi.wiki/view/Archive:Wire_your_XBOX_DVD-Remote_for_USB

Schritt 2: Kodi läuft, Lirc läuft, aber die “BACK”- und die große grüne Taste ganz oben tun noch keinen Dienst? Das liegt an der originalen Lircmap.xml von Kodi, in der die Keycodes KEY_BACK und die KEY_ANGLE fehlen. Folgende Lircmap funktioniert hier ganz prächtig und sorgt dafür, dass alle Tasten sinnvoll gematcht sind (de facto sind nur die ersten beiden Zeilen der Tastendefinitionen gegenüber der originalen bei Kodi in Ubuntu mitgelieferten Lircmap an die Keycodes der XBOX Remote angepasst, daher auch bisschen noch Übeflüssiges dabei, aber Faulheit siegt):

<lircmap>
        <remote device="devinput-32">
                <back>KEY_BACK</back>
                <display>KEY_ANGLE</display>
                <left>KEY_LEFT</left>
                <right>KEY_RIGHT</right>
                <up>KEY_UP</up>
                <down>KEY_DOWN</down>
                <select>KEY_OK</select>
                <enter>KEY_ENTER</enter>
                <clear>KEY_DELETE</clear>
                <start>KEY_MEDIA</start>
                <record>KEY_RECORD</record>
                <play>KEY_PLAY</play>
                <pause>KEY_PAUSE</pause>
                <stop>KEY_STOP</stop>
                <forward>KEY_FASTFORWARD</forward>
                <reverse>KEY_REWIND</reverse>
                <volumeplus>KEY_VOLUMEUP</volumeplus>
                <volumeminus>KEY_VOLUMEDOWN</volumeminus>
                <pageplus>KEY_CHANNELUP</pageplus>
                <pageminus>KEY_CHANNELDOWN</pageminus>
                <skipplus>KEY_NEXT</skipplus>
                <skipminus>KEY_PREVIOUS</skipminus>
                <guide>KEY_EPG</guide>
                <title>KEY_TITLE</title>
                <subtitle>KEY_SUBTITLE</subtitle>
                <language>KEY_LANGUAGE</language>
                <info>KEY_INFO</info>
                <mute>KEY_MUTE</mute>
                <power>KEY_POWER</power>
                <eject>KEY_EJECTCD</eject>
                <eject>KEY_EJECTCLOSECD</eject>
                <menu>KEY_DVD</menu>
                <menu>KEY_MENU</menu>
                <myvideo>KEY_VIDEO</myvideo>
                <mymusic>KEY_AUDIO</mymusic>
                <mypictures>KEY_CAMERA</mypictures>
                <livetv>KEY_TUNER</livetv>
                <mytv>KEY_TV</mytv>
                <teletext>KEY_TEXT</teletext>
                <one>KEY_NUMERIC_1</one>
                <two>KEY_NUMERIC_2</two>
                <three>KEY_NUMERIC_3</three>
                <four>KEY_NUMERIC_4</four>
                <five>KEY_NUMERIC_5</five>
                <six>KEY_NUMERIC_6</six>
                <seven>KEY_NUMERIC_7</seven>
                <eight>KEY_NUMERIC_8</eight>
                <nine>KEY_NUMERIC_9</nine>
                <zero>KEY_NUMERIC_0</zero>
                <star>KEY_NUMERIC_STAR</star>
                <hash>KEY_NUMERIC_POUND</hash>
                <red>KEY_RED</red>
                <green>KEY_GREEN</green>
                <yellow>KEY_YELLOW</yellow>
                <blue>KEY_BLUE</blue>
                <recordedtv>KEY_PVR</recordedtv>
                <liveradio>KEY_RADIO</liveradio>
        </remote>
</lircmap>

Einfach in .kodi/userdata/Lircmap.xml abspeichern, Kodi neustarten, läuft.

kaputte Taste auf der Tastatur unter Linux auf funktionierende Taste umlegen

Bei meinem Thinkpad X260 trat kürzlich folgender Tastaturdefekt auf: die “-” bzw. “_”-Taste hörte spontan auf zu funktionieren, während alle anderen Tasten völlig unbeeinträchtigt sind. Bis die Ersatztastatur geliefert und eingebaut ist, kann es noch was dauern. Das NERVT! Denn um sich mit der Tastatur effektiv auf der Kommandozeile zu bewegen ist die “-” bzw. “_”-Taste (rechts neben der “.” bzw. “:”-Taste) unabdingbar, z.B. für Argumente etc. Oder auch für Smileys!

Also musste erstmal was passieren, und glücklicherweise befindet sich bei dem Tastaturlayout des Thinkpads ganz in der Nähe der nun “verstummten” Taste eine andere, die ich eigentlich nicht brauche: die “Druck”-Taste in der untersten Tastenreihe, eigentlich da wo früher ContextMenu gewesen wäre, zwischen “Alt Gr” und “right Strg”. Damit bietet sich also an, die kaputte Taste hierdrauf zu legen, das geht ja noch fast als exotisches Layout durch. Manche Laptoptastaturen sind da schlimmer!

Was ist zu beachten? Damit es systemweit läuft trotz Wayland und so weiter, hab ich mich analog zur Beschreibung unter https://www.beatworm.co.uk/blog/keyboards/gnome-wayland-xkb für die Lösung entschieden, nur drei Dateien zu bearbeiten: ein neues “Unter-Layout” als Tastaturdefinition mit der entscheidenden Veränderung der”Druck”taste (oder eigentlich <PRSC> Print Screen) unter /usr/share/X11/xkb/symbols/fixdefect erstellen, und in udev-Rule und udev-sprechender Liste bekanntmachen. Dann im dconf-Editor die Änderung aktivieren.

1. Erstelle /usr/share/X11/xkb/symbols/fixdefect:

partial modifier_keys
xkb_symbols "swapminusprint" {
            replace key <PRSC> { type[Group1]="FOUR_LEVEL_PLUS_LOCK", symbols[Group1]=[ minus, underscore, endash, emdash, underscore ] };
};

2. Modifiziere /usr/share/X11/xkb/rules/evdev:

ergänze im Abschnitt “! option = symbols” folgende Zeile:

fixdefect:swapminusprint = +fixdefect(swapminusprint)

3. Modifiziere /usr/share/X11/xkb/rules/evdev.lst:

ergänze irgendwo/am Ende folgende Zeile:

fixdefect:swapminusprint Fix defective minus/underscorekey by swapping with printscreen

4. Starte dconf-Editor und ändere den Eintrag /org/gnome/desktop/input-sources/xkb-options:

Bei custom-value (das ist quasi eine Liste!) unseren neuen Eintrag ergänzen:

dconf-Editor zeigt den Pfad /org/gnome/desktop/input-sources/xkb-options

(obige Notizen beziehen sich auf die zum Zeitpunkt der Erstellung aktuelle stable-x64-Distribution von Debian GNU/Linux, 11.1 bullseye, mit Gnome3 und Wayland)

Evolution druckt nicht? Sandbox deaktivieren.

Wenn mein langjähriger eMail- und alles-Client EVOLUTION unter Debian nicht drucken will (“Printer not found”), hat das mit der Sandbox zu tun, in der Webkit ausgeführt wird.

Die Lösung fand ich unter https://forum.manjaro.org/t/evolution-3-38-mail-printing-failing/38021/4:

cp /usr/share/applications/org.gnome.Evolution.desktop ~/.local/share/applications/

sed -i 's/Exec=evolution/Exec=env WEBKIT_FORCE_SANDBOX=0 evolution/g' ~/.local/share/applications/org.gnome.Evolution.desktop

grep -i "exec" ~/.local/share/applications/org.gnome.Evolution.desktop

Wie schon im Originalbeitrag beschrieben, ist das natürlich kein echter Fix für das in Evolution vorhandene Problem, welches auch bereits Bugreports etc.pp. hat, die allerdings noch nicht bis ins Release in Form eines permanenten Fixes durchgesickert sind, sondern mehr ein Workaround damit man halt wieder schnell was drucken kann. Ymmv.