Ubuntu 22: Die Schwierigkeiten, Firefox zu betreiben

Kurzer Sprung zum Favoriten —>


Seit kurzem nutze ich Ubuntu 22 auf einer neuen schnellen Maschine und ich war gleich sehr zufrieden. Bis ich merkte, dass ich mit dem ebenfalls neuen Firefox 102 überhaupt nicht vernünftig arbeiten konnte. Wie sich herausstellte, war der Grund, dass Firefox neuerdings als Snap installiert wird. Das liefert zwar sicher einiges an Sicherheit, da der Browser nun vollständig in einer Sandbox läuft, aber das ist auch der Grund für einiges Übel. Zwei Probleme ließen sich damit nicht lösen:

1.) Ich bin es gewohnt, Bilder von Webseiten mal eben mit der Maus auf den Desktop zu ziehen. Das geht nicht mehr, denn der Zugriff ist gesperrt. Über Copy/Paste geht es, aber das ist mir mit der Maus zu umständlich.

2.) Ich habe einige Anpassungen in der Optik des Browsers, zum Beispiel bestimmte Trennlinien. An das Profil kommt man aber nicht ran, nicht mal als Root.

Außerdem habe ich gelesen, dass durch den Snap-Mechanismus einige Plugins nicht gehen, was sicher ebenfalls an irgendwelchen Zugriffrechten scheitert.

Flatpak statt Snap

Das erste Problem lässt sich damit umgehen, dass der Firefox als Snap gelöscht und als Flatpak installiert und aufgerufen wird:

snap remove firefox
flatpak install flathub org.mozilla.firefox

Um das dann aufzurufen, habe ich das Knöpfchen im Starter des Panels mit folgendem belegt:

flatpak run org.mozilla.firefox

Rechte von Flatpak-Anwendungen verwalten

Jetzt scheitert aber immer noch der Wunsch, zum Beispiel die userChrome.css im Profilordner zu bearbeiten, einfach weil man den Profilordner nicht findet – denn der ist verborgen. Auch Flatpack arbeitet als Sandbox. Aber immerhin gibt es ein Werkzeug, das solche Einschränkungen gezielt beheben kann: Flatseal. Das ist eine grafische Oberfläche mit allerlei Admin-Tools für jedes installierte Flatpak. Installiert wird es mit

flatpak install flathub com.github.tchx84.Flatseal

denn es ist selbst ein flatpak-Programm. Hier [1] ist (allerdings nur in englisch) sehr detailliert beschrieben, was sich damit alles machen lässt. Konkret für meine Aufgabe, an die Konfiguration heranzukommen, musste ich Firefox auswählen und in der Rubrik „Filesystem“ die Option „All user files / filesystem=home“ anschalten, und darunter bei „Other files“ habe ich noch /home/rollo/Downloads eingetragen. Ich hoffe, dass das genügt und werde es hier ergänzen, wenn noch etwas fehlt.

Firefox über Umwege als .deb

Wie ich heute gefunden habe, gibt es doch auch Wege, Firefox ganz normal wie „früher“ als DEB zu installieren, sogar über ein PPA des Mozilla-Teams. Damit habe ich die Eigenschaften der Sandbox (Snap, Flatpak) nicht mehr, dafür geht alles andere wieder wie gewohnt. Hier [2] ist es ausführlich beschrieben (englisch), dazu [3], und hier kommt die Kurzfassung:

# Zunächst das Snap entfernen
sudo snap remove firefox
# oder das Flatpak
sudo flatpak remove org.mozilla.firefox

Hinweis 1: Gerade wurde auf Version 112 aufgebohrt – und prompt war FF wieder ein Snap! Nun liegt meine mühsam installierte .deb-Version verwaist da. Die muss erstmal weg. Also:
sudo apt autoremove –purge firefox


Hinweis 2: Nein, diese FF-Installation muss nicht weg! Was ist passiert? Snap wurde durch ein Update wieder installiert und hat FF mitgebracht – Ubuntu will das unbedingt durchdrücken! Aber wenn man das gesamt snapd-System entfernt, sollte es auch wegbleiben [4]:

sudo apt autoremove --purge snapd
sudo rm -rf /var/cache/snapd/
rm -rf ~/snap

# Nun das PPA von Mozilla installieren:
sudo add-apt-repository ppa:mozillateam/ppa
# und damit Firefox installieren:
# (Die Optionen sind essentiell, sonst kommt snap wieder!)
sudo apt install -t 'o=LP-PPA-mozillateam' firefox

# Eine Datei zur Steuerung der Priorität anlegen und speichern
sudo gedit /etc/apt/preferences.d/mozillateamppa
# Inhalt:
Package: firefox*
Pin: release o=LP-PPA-mozillateam
Pin-Priority: 501

sudo apt update
sudo apt install firefox firefox-locale-de

Das war’s. Danke „J Im“!

Festlegung als Standardbrowser

In Ubuntu gibt es festlegungen von Standardanwendungen, unter anderem des Webbrowsers. Ich vermute mal, das ist ohne weiteres Zutun diese unsägliche snap-Installation von Firefox. Da wir die nun gerade ausgebaut haben, hängen einige Aufrufe nun in der Luft. Zum Beispiel lässt im Client von Nextcloud nichts mehr aufrufen, da dort nicht der Standardbrowser hinterlegt ist, sondern ein Aufruf von „default-web-browser“. Also muss der letzte Schritt unserer Reparatur die neue Zuweisung der Firefox-Installation von eben sein. Das geschieht entweder in der Shell mit

xdg-settings set default-web-browser firefox.desktop

was nicht immer klappt, weil es das Vorhandensein von firefox.desktop voraussetzt, oder „grafisch“ über „Einstellungen / Standardanwendungen“ und folgender Auswahl:

Standardbrowser

„Firefox Web Browser“ wäre die nun nicht mehr vorhandene snap-Installation, was wahrscheinlich das gleiche ist wie der oberste Menüpunkt (kann ich jetzt nicht mehr testen).


Links zum Thema:

[1] www.debugpoint.com/manage-flatpak-permission-flatseal/
[2] ubuntuhandbook.org/index.php/2022/04/install-firefox-deb-ubuntu-22-04/
[3] curius.de/2022/04/ubuntu-wie-du-firefox-als-ppa-anstelle-von-snap-einbindest-und-wann-du-es-tun-solltest/
[4] onlinux.systems/guides/20220524_how-to-disable-and-remove-snap-on-ubuntu-2204

Thunderbird: Aktivierung von eigenem CSS-Code

Mancheiner bemüht sich vergeblich, eigenen Code in Thunderbird’s userChrome.css und userContent.css unterzubringen und verzweifelt daran, dass das einfach nicht wirkt. Man muss Thunderbird zuvor sagen, dass das auch benutzt werden darf und soll! Ob das eine Sicherheitsmaßnahme ist, sei dahingestellt. Also:

Entweder baut man direkt in prefs.js folgendes ein – was ich wegen der Fehleranfälligkeit sehr ungern tue:

 user_pref("toolkit.legacyUserProfileCustomizations.stylesheets",true);

Oder man geht in Thunderbird in „Einstellungen/Allgemein“ nach ganz unten zu „Konfiguration bearbeiten, gibt dort den Schlüssel

toolkit.legacyUserProfileCustomizations.stylesheets

ein und setzt ihn auf true. Er steht standardmäßig auf false.

Voilá.

Firefox: userChrome.css wirken lassen

Irgendwann hatte ich das Problem, dass ich in der Datei userChrome.css (je nach Betriebssystem in verschiedenen Pfaden zu finden!) Änderungen machen konnte, wie ich wollte – und nichts wurde wirksam. Bis ich die entscheidende Einstellung fand:

Nach about:config habe ich den Schlüssel

toolkit.legacyUserProfileCustomizations.stylesheets

gesucht. Ich glaube, ich musste ihn sogar erst als boolean anlegen. Dem verpasste ich den Wert true und nach dem nächsten Neustart (!) waren meine Einstellungen in den user*.css-Files wirksam.