Blog

  • mjs: nginx config for Nextcloud

    If you updated to Nextcloud 27 or 28, you might encounter the message „Your webserver does not serve .mjs files using the JavaScript MIME type.“

    You therefore need to add mjs to the mimetype configuration:

    In /etc/nginx/mime.types by changing

    application/javascript                js;

    to

    application/javascript                js mjs;

    Or by including this config block in your server config:

    server {
     # …
     # mjs support
        include mime.types;
        types
        {
            application/javascript mjs;
        }
     # …
    }

    And don’t forget to add mjs to the parts of your configuration that apply to js files, like here:

     location ~ ^\/nextcloud\/.+[^\/]\.(?:css|js|mjs|woff2?|svg|gif|map)$ {
    
  • iwd: eduroam config for University of Hamburg

    If you are using iwd the new-ish Wi-Fi daemon, you might notice that the eduroam CAT installer only supports wpa_supplicant. Nonetheless, it is still useful to get the correct settings and obtain the correct certificate. Run the script, obtain the cert and move it from ~/.config/cat_installer/ca.pem to /etc/iwd/eduroam.pem as iwd by default cannot read the home directory.

    Then add the connection configuration file with the following content.
    File location: /var/lib/iwd/eduroam.8021x

    Connection configuration for UHH (Universität Hamburg):

    [Security]
    EAP-Method=TTLS
    EAP-Identity=anonymous@uni-hamburg.de
    EAP-TTLS-CACert=/etc/iwd/eduroam.pem
    EAP-TTLS-ServerDomainMask=roamrad.rrz.uni-hamburg.de
    EAP-TTLS-Phase2-Method=Tunneled-PAP
    EAP-TTLS-Phase2-Identity=xxxxxxxxx@uni-hamburg.de
    EAP-TTLS-Phase2-Password=XXXXXXXXXXXX
    
    [Settings]
    AutoConnect=true

    Don’t forget to add your user and password

    Relevant Arch Linux Wiki article.

    Please note that your university might use different authentication protocols.

  • Fedora 37 – alten Kernel als Standard setzen

    Manchmal bringen neue Kernel neue Probleme mit sich. Dann lohnt es sich einen alten funktionierenden Kernel, als Standard zu setzen, bis die Probleme wieder behoben worden sind.

    dnf-Versionlock

    Bei Fedora werden maximal 3 Kernel installiert. Damit der funktionierende Kernel nicht durch Updates wieder deinstalliert wird, sollte man ein Versionlock setzen:

    Zunächst installiert man das entsprechende dnf-Plugin:

    dnf install python3-dnf-plugins-extras-versionlock

    Auflisten der Paketnamen:

    rpm -qa kernel
    ## Ausgabe:
    kernel-6.0.16-300.fc37.x86_64
    kernel-6.0.18-300.fc37.x86_64
    kernel-6.1.6-200.fc37.x86_64

    Versionlock setzen:

    dnf versionlock add <kernel-paketname>

    Später kann man das Versionlock auch wieder entfernen. Beim nächsten Update wird der Kernel automatisch entfernt.

    dnf versionlock delete <kernel-paketname>

    Kernelversion als default setzen

    Mit grubby kann der Default-Kernel gesetzt über den Index gesetzt werden.

    Kernel und deren Index auflisten:

    sudo grubby --info=ALL | grep -E "^kernel|^index"             
    index=0
    kernel="/boot/vmlinuz-6.1.7-200.fc37.x86_64"
    index=1
    kernel="/boot/vmlinuz-6.1.6-200.fc37.x86_64"
    index=2
    kernel="/boot/vmlinuz-6.0.18-300.fc37.x86_64"
    index=3
    

    Zu bootenden Default-Kernel setzen:

    grubby --set-default /boot/vmlinuz-6.0.18-300.fc37.x86_64

    Quellen:

  • LineageOS: Zurück-Wischgeste am linken Rand deaktivieren

    Zurück-Wischgeste

    Viele Android-Apps nutzen eine Wischgeste von Links. Zum Beispiel zum Öffnen der Seitenleiste. Hat man allerdings die Wischgesten-Navigation von LineageOS aktiviert, dann kollidiert dies mit Zurück-Wischgeste vom linken Rand, sodass man die Seitenleiste nicht auf aufwischen kann. Die Zurück-Wischgeste kann allerdings auch vom rechten Rand ausgelöst werden. Aus diesem Grund kann man die Geste auf der linken Seite getrost deaktivieren.

    Hierfür öffnet man entweder die Terminal-App auf dem Gerät, oder nutzt ADB und führt folgenden Befehl aus:

    settings put secure back_gesture_inset_scale_left -1
  • Fedora Silverblue – Speicherplatz freigeben

    Option 1: Alte Deployments entfernen

    Gewöhnlich werden immer nur 2 bzw. 3 Deployments bei Silverblue vorgehalten. D.h. man hat mind. eine alte Version des Betriebssystems, in die man z.B. bei Problemen booten kann:

    rpm-ostree status
    State: idle
    Deployments:
    ● fedora:fedora/37/x86_64/silverblue
                      Version: 37.20221210.0 (2022-12-10T00:41:48Z)
                   BaseCommit: ae94b79996705356a2aa95038f6155a8132899bbd6d63762b563ba7cb7e46de3
                 GPGSignature: Valid signature by ACB5EE4E831C74BB7C168D27F55AD3FB5323552A
              LayeredPackages: distrobox powertop vim
    
      fedora:fedora/37/x86_64/silverblue
                      Version: 37.20220925.n.0 (2022-09-25T08:01:09Z)
                   BaseCommit: c6a720b4ca644974554dc7069d0e6bd7f3f091cff702345024196b5295657413
                 GPGSignature: Valid signature by ACB5EE4E831C74BB7C168D27F55AD3FB5323552A
              LayeredPackages: distrobox powertop vim

    Damit Deployments nicht automatisch gelöscht werden (z.B. nach einem Upgrade von Fedora 36 auf 37) können diese angepinnt werden. Diese Einträge werden dann mit folgendem Hinweis versehen:

                   Pinned: yes

    Um diese Einträge zu entfernen, muss man erstmal die Stecknadel lösen:

    sudo ostree admin pin --unpin <nummer> # nummer ist der Index in der Liste

    Danach werden auch diese Einträge mit dem cleanup Befehl entfernt:

    rpm-ostree cleanup -r 
    Transaction complete; bootconfig swap: yes; bootversion: boot.0.0, deployment count change: -3
    Freed: 3,7 GB (pkgcache branches: 6)

    Option 2: ungenutzte Flatpaks entfernen

    Gewöhnlich werden alte Flatpaks automatisch entfernt. Ist dies jedoch noch nicht geschehen, kann man dies auch erzwingen:

    flatpak uninstall --unused
  • Gnome Erweiterungsmanager

    Gnome Erweiterungsmanager

    Es gibt mehrere Methoden, wie man Gnome Shell Erweiterungen installieren kann:

    1. Über die Webseite extensions.gnome.org mit Browsererweiterung
    2. Über den Paketmanager
    3. Dateien kopieren (nach ~/.local/share/gnome-shell/extensions)

    Leider findet man nicht alle Erweiterungen im Repo der eigenen Distribution und leider existiert die Browsererweiterung, die man benötigt, um extensions.gnome.org zu nutzen nicht für jeden Browser bzw. ist auch nicht immer einfach nutzbar (z.B. im Firefox Flatpak). Die manuelle Installation und besonders das Aktualisieren empfiehlt sich aus offensichtlichen Gründen natürlich nicht.

    Erweiterungsmanager

    Doch seit kurzem gibt es eine neue Anwendung über Flathub, mit der man sowohl Erweiterungen suchen, diese installieren als auch konfigurieren kann.

    Hierzu muss man natürlich Flatpak installiert und Flathub aktiviert haben. Danach kann man die Anwendung Erweiterungs Manager entweder über die Softwareverwaltung installieren oder über die Kommandozeile (siehe vorheriger Link).

    Detailansicht der "Blur My Shell" Erweiterung
    Detailansicht
    Ansicht der Suche vom Erweiterungs Manager
    Suche
    Das Bild zeigt die installierten Anwendungen im Erweiterungs Manager
    Installierte Erweiterungen
  • Schnelle Emoji-Eingabe in allen Anwendungen

    Mit Strg + . (Punkt) kann unter Gnome der Emoji-Dialog angezeigt werden. Leider funktioniert dieser nur in GTK Anwendungen.

    Emoji Dialog in Gnome

    Um schnell in allen Anwendungen, also auch denen, die nicht GTK verwenden, Emojis einzugeben kann eine IBus-Eingabehilfe verwendet werden:

    Chrome – hier funktioniert der normale Dialog leider nicht

    Konfiguration:

    Die Einrichtung geht recht einfach:

    1. Gnome Tastatur-Einstellungen öffnen
    2. Neue Eingabequelle „Typing Booster“ hinzufügen
    3. In dessen Einstellungen die Emoji-Optiona aktivieren und ggf. andere Optionen deaktivieren (z.B. Wortvorschläge)

    Video:

    Benutzung:

    Wechseln mittels Super + Leertaste

    Um die Eingabequelle zu wechseln, muss man nun nur noch Super + Leertaste drücken. Nach dem Eingeben von Emojis sollte man natürlich wieder zurückwechseln, da jedes Wort als Emoji-Name interpretiert wird.

    Natürlich geht die Emoji-Eingabe damit auch in GTK-Anwendungen. Man kann nach den Emojis auch auf Englisch suchen:

    Eingabe mittels IBus Typing Booster auf 🇬🇧

    Über die Nummern kann man übrigens auch direkt das richtige Emoji aus der Liste auswählen.

  • LXC-Container mit zwei+ IP-Adressen in verschiedenen Netzwerken

    Mit mehrere Netzwerkgeräten kann man einem LXC-Container mehrere IP-Adressen in unterschiedlichen Netzen zuweisen.

    Dazu erstellt man in der LXC-Container-Konfiguration (z.B.: /var/lib/lxc/beispiel-kontainer/config) zwei (oder mehr) Blöcke mit entsprechenden Netzwerk-Einstellungen.

    lxc.network.type = veth
    lxc.network.flags = up
    lxc.network.link = br0
    lxc.network.name = eth0
    lxc.network.hwaddr = 00:16:3e:1d:3f:2b
    lxc.network.ipv4 = 123.122.121.120/32
    lxc.network.ipv4.gateway = 188.187.186.185
    
    
    lxc.network.type = veth
    lxc.network.flags = up
    lxc.network.link = lxcbr0
    lxc.network.name = eth1
    lxc.network.hwaddr = 00:16:3e:1d:4f:1b
    lxc.network.ipv4 = 10.0.0.10
    

    In diesem Beispiel hat der Host die IP-Adresse 188.187.186.185 und der Container die private 10.0.0.10 und öffentliche 123.122.121.120 IP-Adresse. Da Host-IP und die öffentliche IP-Adresse des Containers in unterschiedlichen Netzwerken liegen muss man beim Host eine entsprechende Route eintragen.

    Hier der entsprechende Auszug aus /etc/network/interfaces des Hosts:

    iface br0 inet static
            bridge_ports eth0
            bridge_stp off
            bridge_fd 0
            bridge_maxwait 0
            address 188.187.186.185
            broadcast 188.187.186.255
            gateway 188.187.186.1    
            up route add -host  123.122.121.120/32 dev br0
    

    Nun kann der Container neu gestartet werden. Ohne Konfiguration innerhalb des Containers kennt dieser nun 2 neue Netzwerkgeräte, IP-Adressen und die entsprechenden Routen:

    $ route -n
    Kernel-IP-Routentabelle
    Ziel                         Router                      Genmask                   Flags  Metric Ref    Use Iface
    0.0.0.0                   188.187.186.185    0.0.0.0                   UG            0       0        0 eth0
    10.0.0.0                 0.0.0.0                    255.0.0.0               U              0       0        0 eth1
    188.187.186.185   0.0.0.0                    255.255.255.255   UH            0       0        0 eth0
    
  • Bash Prompt mit zufälligen Farben

    Bildschirmfoto von »2016-06-21 00-08-29«

    Wer mit vielen Containern oder Rechnern arbeitet verliert schnell den Überblick darüber in welcher Shell man sich gerade befindet. Aus diesem Grund habe ich mich entschieden die Farben meines Prompts zufällig generieren zu lassen, damit ich schnell merke in welcher Shell ich mich befinde.

    Dazu habe ich bei jedem Container drei Zeilen in die ~/.bashrc der root Nutzer eingetragen:

    r_col1=$(( $RANDOM * 6 / 32767 +1 ))
    r_col2=$(( $RANDOM * 6 / 32767 +1 ))
    PS1='\[$debian_chroot\]\[\e[3$(echo "$r_col1")m\]\u\[\033[0m\]@\[\e[3$(echo "$r_col2")m\]\h\[\033[0m\]:\w\$ '
    

    Die ersten beiden Zeilen generieren jeweils einen Zufallswert zwischen 1 und 6. Dann werden diese als Farb-Codes in den Prompt eingesetzt:

    \e[3$(echo $r_col1)m\u
    

    Dieser Teil fügt mit \e[34m einen zufälligen Farbcode hinzu (31 – 36). Darauf folgt der Benutzername mit \u. Das selbe dann nochmal in anderer Farbe für den Hostname (\h).

    Durch die Kombination von Benutzername und Hostname gibt es insgesamt 36 Farbkombinationen. Wer Rot als Farbe ausschließen möchte kann aus dem +1 einfach ein +2 machen.

    Das kann man bestimmt auch etwas eleganter umsetzen. In diesem Sinne: Verbesserungsvorschläge willkommen.

  • mpv – Videos per Tastendruck löschen und verschieben

    Wenn man eine größere Video-Sammlung zum Sichten hat, oder Video-Podcasts automatisch herunterladen lässt, dann ist es oft aufwendig die Dateienin einem zweiten Schritt zu löschen oder sortieren.

    Mit mpv und selbst definierten Tastenkombinationen in der Konfigurationsdatei ~/.mpv/input.conf kann man den Prozess vereinfachen.

    Folgende Zeile in der Datei löscht beim Drücken von Strg+r die aktuell angezeigte Mediendatei und zeigt eine Meldung an.

    ctrl+r run "rm" "-v" "${path}" ; show_text "Gelöscht: ${filename}"
    

    Um die Datei nur in den Papierkorb zu verschieben, nicht aber zu löschen kann das Programm trash-cli anstelle von rm verwendet werden. Das Programm befindet sich in den Repositories der meisten großen Linux Distributionen.

    Zum verschieben verwendet man mv anstelle von rm.

    ctrl+m run "mv" "-v" ${path} "/home/Schreiberling/Schnitt/gesichtet" ; show_text "Nach ~/Schnitt/gesichtet verschoben"