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:

Veröffentlicht am
Kategorisiert in Linux Verschlagwortet mit ,

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

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:+($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"