Tipps und Tricks

Ausblenden des Standardbrowsers (Firefox)

Wenn Sie einen anderen Browser als den standardmäßig installierten (Firefox) verwenden, können Sie den Standardbrowser über die Benutzeroberfläche mit den folgenden Befehlen ausblenden:

$ sudo mkdir -p /usr/local/share/applications
$ sudo cp /usr/share/applications/org.mozilla.firefox.desktop /usr/local/share/applications/
$ sudo sed -i "2a\\NotShowIn=GNOME;KDE" /usr/local/share/applications/org.mozilla.firefox.desktop
$ sudo update-desktop-database /usr/local/share/applications/

Den Standardbrowser (Firefox) wieder aktivieren

Wenn Sie den Standardbrowser (Firefox) nach dem Ausblenden wieder sichtbar machen möchten, können Sie folgende Schritte befolgen:

$ sudo rm -f /usr/local/share/applications/org.mozilla.firefox.desktop
$ sudo update-desktop-database /usr/local/share/applications

Alternative Methode

Wenn Sie Sway verwenden oder den Standardbrowser nur für Ihren Benutzer ausblenden möchten, können Sie dies mit diesen Befehlen tun:

$ mkdir -p ~/.local/share/applications
$ cp /usr/share/applications/org.mozilla.firefox.desktop ~/.local/share/applications/
$ sed -i "2a\\NotShowIn=GNOME;KDE;sway" ~/.local/share/applications/org.mozilla.firefox.desktop
$ update-desktop-database ~/.local/share/applications

und um wieder zu aktivieren:

$ rm -f ~/.local/share/applications/org.mozilla.firefox.desktop
$ update-desktop-database ~/.local/share/applications

Aktivierung der RPM Fusion-Paketquellen

Dieser Abschnitt behandelt Softwarequellen von Drittanbietern, die nicht offiziell mit dem Fedora-Projekt verbunden sind oder von diesem unterstützt werden. Die Verwendung erfolgt auf eigene Verantwortung. Fedora empfiehlt die Verwendung freier und quelloffener Software und rät von patentgeschützter Software ab.

Benutzer können die über die Paketquellen von RPM Fusion bereitgestellte nicht-freie Software nutzen, um die proprietären NVIDIA-Treiber, Multimedia-Codecs oder andere Software zu verwenden, die nicht Teil von Fedora ist.

Erste Installation

Bei der erstmaligen Installation der RPM Fusion-Paketquellen müssen Sie die versionierten RPMs installieren:

$ sudo rpm-ostree install \
https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm \
https://mirrors.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm
$ neu starten

Fahren Sie dann mit dem nächsten Abschnitt fort, um Ihr System auf größere Fedora-Aktualisierungen vorzubereiten.

Wichtige Fedora-Aktualisierungen

Nach dem Neustart im neuen Bereitstellungsmodus können Sie den folgenden Befehl ausführen, um die Sperre für die zuvor installierten versionierten Pakete aufzuheben. Dadurch werden die RPM-Fusion-Paketquellen bei größeren Fedora-Versionsaktualisierungen automatisch aktualisiert und korrekt versioniert:

$ sudo rpm-ostree update \
--uninstall rpmfusion-free-release \
--uninstall rpmfusion-nonfree-release \
--install rpmfusion-free-release \
--install rpmfusion-nonfree-release
$ reboot

Weitere Informationen finden Sie diesem Thread im Fedora Diskussionsforum.

Arbeiten mit Toolbx

Herausfinden, ob Sie sich aktuell in einem Toolbx-Container befinden

Wenn Sie Toolbx häufig für verschiedene Aufgaben nutzen und mehrere Toolbx-Container verwenden, kann es schwierig sein, den Überblick zu behalten, ob Sie Befehle gerade auf dem Host oder in einem Toolbx-Container ausführen. Außerdem gibt es derzeit keinen Befehl, der Ihnen anzeigt, in welchem Toolbx-Container Sie arbeiten.

Um dies zu beheben, können Sie den folgenden Shell-Alias am Ende Ihrer ~/.bashrc hinzufügen:

alias istoolbx='[ -f "/run/.toolboxenv" ] && grep -oP "(?<=name=\")[^\";]+" /run/.containerenv'

Wenn Sie eine neue Shell öffnen, steht Ihnen nun der neue Befehl istoolbx zur Verfügung. Dieser verhält sich wie folgt:

  • Wird er vom Host ausgeführt, gibt er den Exit-Code 1 zurück.

  • Wird er aus einem Toolbx-Container ausgeführt, gibt er den Exit-Code 0 zurück und gibt den Namen des aktuellen Toolbx-Containers in der Konsole aus.

Wenn Sie eine automatisiertere Lösung bevorzugen, ändert das Hinzufügen des Folgenden zu Ihrer ~/.bashrc Ihre Bash-Eingabeaufforderung so, dass sie "[toolbox <Name>]" enthält:

function is_toolbox() {
    if [ -f "/run/.toolboxenv" ]
    then
        TOOLBOX_NAME=$(cat /run/.containerenv | grep -oP "(?<=name=\")[^\";]+")
        echo "[${HOSTNAME} ${TOOLBOX_NAME}]"
    fi
}

Sie können nun is_toolbox in Ihre PS1-Variable aufnehmen und müssen keine zusätzlichen Befehle ausführen, um festzustellen, ob Sie sich in einer Toolbox- oder Host-Shell befinden.

Beispiel:
export PS1="\[\e[31m\]\`is_toolbox\`\]\e[m\]\[\e[32m\]\\$ \[\e[m\]\[\e[37m\]❱\[\e[m\] "

Dies führt zu einer Eingabeaufforderung, die außerhalb einer Toolbox folgendermaßen angezeigt wird: $ ❱

Wenn man es jedoch in einer Toolbox mit dem Namen "default" ausführt, sieht es so aus: [toolbox default]$ ❱

Ausführen von Anwendungen aus Toolbx auf dem Host

Dies kann erforderlich sein, wenn Sie mit Werkzeugen des Hostsystems wie podman, nmcli oder rpm-ostree interagieren möchten, ohne den Toolbx-Container zu verlassen. Hierfür können Sie flatpak-spawn verwenden, das in der Basisinstallation enthalten ist:

$ flatpak-spawn --host podman --help

Wenn die Anwendung, die Sie aufrufen möchten, sudo-Zugriff benötigt, muss die Option -S wie folgt an sudo übergeben werden:

$ flatpak-spawn --nost sudo -S rpm-ostre status

Wenn Sie häufig Befehle wie diese verwenden, um beispielsweise vom Toolbx-Container aus auf den flatpak-Befehl zuzugreifen, können Sie sich ein kurzes, benutzerdefiniertes Wrapper-Skript erstellen (innerhalb des Toolbx-Containers). Führen Sie dazu die folgenden Schritte aus:

  1. Definieren Sie den Alias istoolbx (der Einfachheit halber), indem Sie den oben genannten Befehl in Ihrem Terminal ausführen.

  2. Stellen Sie sicher, dass Sie sich in einem Toolbx-Container befinden. Falls der folgende Befehl keine Ausgabe erzeugt, arbeiten Sie wahrscheinlich noch auf dem Hostsystem!

    [toolbx]$ istoolbx
    <Name des Toolbx-Containers hier>
  3. Sobald Sie sichergestellt haben, dass Sie sich in einem Toolbx-Container befinden, führen Sie folgenden Befehl aus:

    [toolbx]$ echo -e '#!/bin/sh\nexec /usr/bin/flatpak-spawn --host flatpak "$@"' | \
      sudo tee /usr/local/bin/flatpak 1>/dev/null && sudo chmod +x /usr/local/bin/flatpak

Es steht Ihnen nun ein flatpak-Befehl zur Verfügung, mit dem Sie mit flatpak interagieren können, als ob Sie den Befehl auf dem Host ausführen würden.

Arbeiten mit ostree/rpm-ostree

Änderungen am Basisbetriebssystem verfolgen

In Betriebssystemen, die auf ostree basieren, sind einige Verzeichnisse, wie beispielsweise /etc, für den Benutzer beschreibbar. Mit dem folgenden Befehl erhalten Sie einen schnellen Überblick über die unter /etc geänderten Dateien:

$ sudo sharper admin config-diff

Um einen detaillierteren Unterschied zu erhalten, können Sie beispielsweise Folgendes verwenden:

$ sudo diff -yrW200 --suppress-common-lines --color=always /usr/etc /etc 2>/dev/null

Das funktioniert, weil ostree eine unveränderte Kopie des Verzeichnisses /etc unter /usr/etc speichert. Alle Ihre Änderungen werden direkt in /etc gespeichert.

Arbeiten mit Flatpak-Anwendungen

Direkter Zugriff auf Flatpak-Anwendungen über die Befehlszeile

Der auffälligste Unterschied bei der Verwendung von Flatpak-Anwendungen anstelle herkömmlicher Installationen besteht darin, dass die Anwendungen nicht mehr direkt über die Befehlszeile aufgerufen werden können, etwa so:

$ evince
bash: Befehl nicht gefunden: evince

Man kann sie stattdessen auch so nennen:

$ flatpak run org.gnome.Evince

Darüber hinaus exportieren die meisten Flatpak-Anwendungen ihre internen Binärdateien unter einem installationsabhängigen Speicherort:

  • Bei Flatpak-Anwendungen, die von system-Remotes installiert wurden, befinden sich diese unter /var/lib/flatpak/exports/bin/.

  • Bei Flatpak-Anwendungen, die von user-Remotes installiert wurden, befinden sich diese unter $HOME/.local/share/flatpak/exports/bin/.

Wenn Sie sich nicht sicher sind, zu welcher Installation eine Flatpak-Anwendung gehört, können Sie dies mit diesem Befehl anzeigen lassen:

$ flatpak list --app --columns=name,installation

Sie können diese Verzeichnisse dann entweder zu Ihrem $PATH hinzufügen:

$ org.gnome.Evince

oder richten Sie bei Bedarf Shell-Aliase ein, um sie der Befehlszeilenschnittstelle wie folgt zur Verfügung zu stellen:

$ alias evince="flatpak run org.gnome.Evince"
### oder:
alias evince="org.gnome.Evince"
$ evident