Trucs et astuces

Masquer le navigateur par défaut (Firefox)

Si vous utilisez un autre navigateur que celui installé par défaut (Firefox) alors, vous pouvez masquer celui par défaut depuis l’interface via les commandes suivantes :

# For Fedora 39 and earlier: $ sudo cp /usr/share/applications/firefox.desktop /usr/local/share/applications/ $ sudo sed -i "2a\\NotShowIn=GNOME;KDE" /usr/local/share/applications/firefox.desktop

# Fedora 40 and later: $ 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/ ```

== Reenabling the default browser (Firefox)

If you want to make the default browser (Firefox) visible again after hiding it, you can follow these steps:

``` $ sudo rm -f /usr/local/share/applications/*firefox*.desktop $ sudo update-desktop-database /usr/local/share/applications ```

== Activation des dépôts RPM Fusion

[CAUTION]
====
Cette page traite des sources des logiciels tiers qui ne sont pas officiellement affiliées ou approuvées par le projet Fedora. Utilisez-les à votre discrétion. Fedora recommande l’utilisation de logiciels libres et open source et d’éviter les logiciels grevés de brevets.
====

Les utilisateurs peuvent souhaiter profiter des logiciels non libres mis à disposition via les dépôts https://rpmfusion.org/[RPM Fusion] afin d'utiliser les pilotes propriétaires NVIDIA, les codecs multimédia ou d'autres logiciels non distribués sur Fedora.

La première fois que vous installez les dépôts RPM Fusion, vous devez installer les RPM versionnés :

    $ 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
    $ reboot


Une fois que vous avez redémarré dans le nouveau déploiement, vous pouvez exécuter la commande suivante pour supprimer le « verrou » sur les packages versionnés précédemment installés. Cela permettra aux dépôts RPM Fusion d'être automatiquement mis à jour et versionnés correctement dans les principales rebases de versions de Fedora :

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

Pour plus d'informations, voir https://discussion.fedoraproject.org/t/simplifying-updates-for-rpm-fusion-packages-and-other-packages-shipping-their-own-rpm-repos/30364[ce fil] sur le site Fedora Discourse.

== Travailler avec Toolbx

=== Savoir si vous êtes actuellement dans un conteneur Toolbx

Si vous utilisez fréquemment Toolbx pour effectuer diverses tâches et utilisez plusieurs conteneurs Toolbx, il peut être difficile de savoir si vous exécutez actuellement des commandes sur l'hôte ou dans un conteneur Toolbx. De plus, il n'existe actuellement aucune commande pour vous indiquer dans quel conteneur Toolbx vous travaillez.

Pour atténuer cela, vous pouvez ajouter l'alias shell suivant à la fin de votre `~/.bashrc` :

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

Lorsque vous ouvrez un nouveau shell, vous avez désormais accès à la nouvelle commande « istoolbx ». Voici comment se comportera celui-ci :

* Lorsqu'il est exécuté depuis l'hôte, il renvoie un code de sortie 1
* Lorsqu'il est exécuté à partir d'un conteneur Toolbx, renvoie un code de sortie 0 et affiche le nom actuel des conteneurs Toolbx sur la console

Si vous préférez une solution plus automatisée, ajoutez ce qui suit à votre `/.bashrc`. Il modifiera votre invite bash pour inclure "[toolbox <name>]" :

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

Vous pouvez désormais inclure `is_toolbox` dans votre variable `PS1` et ne pas avoir besoin d'exécuter de commandes supplémentaires pour savoir si vous êtes ou non dans une boîte à outils ou un shell hôte.

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

Cela se traduit par une invite qui apparaît comme telle lorsqu'elle n'est pas dans une boîte à outils : `$ ❱`

Cependant, lors de l'exécution dans une boîte à outils nommée « par défaut », cela ressemble à : `[toolbox default]$ ❱`

=== Exécuter des applications depuis Toolbx sur l'hôte

Cela peut être nécessaire si vous souhaitez interagir avec les outils disponibles sur l'hôte, par exemple `podman`, `nmcli` ou `rpm-ostree` sans quitter le conteneur Toolbx. Vous pouvez utiliser `flatpak-spawn`, inclus dans l'installation de base :

  $ flatpak-spawn --host podman --help

Si l'application que vous souhaitez appeler nécessite un accès `sudo`, l'option `-S` doit être fournie à `sudo` :

  $ flatpak-spawn --host sudo -S rpm-ostree status

Si vous utilisez fréquemment des commandes pour accéder par exemple à la commande flatpak depuis l'intérieur du conteneur Toolbx, vous pouvez créer vous-même un court script wrapper personnalisé (*à l'intérieur du conteneur Toolbx*). Pour ce faire, effectuez les étapes suivantes :

1. Définissez l'alias `istoolbx` (pour plus de commodité) en exécutant la commande mentionnée ci-dessus dans votre terminal

2. Assurez-vous que vous êtes dans un conteneur Toolbx. Si la commande suivante ne produit aucun résultat, vous travaillez probablement toujours sur l'hôte !

     [toolbx]$ istoolbx
     <Toolbx container name here>

3. Une fois que vous vous êtes assuré que vous êtes dans un conteneur Toolbx, exécutez la commande suivante :

    [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

Vous disposez maintenant d'une commande `flatpak` qui vous permet d'interagir avec `flatpak` comme si vous exécutiez la commande sur l'hôte.

== Travailler avec `ostree`/`rpm-ostree`

=== Suivi des modifications apportées au système d'exploitation de base

Certains répertoires des systèmes d'exploitation basés sur `ostree` sont accessibles en écriture par l'utilisateur, comme `/etc`. Vous pouvez obtenir un aperçu rapide des fichiers modifiés sous `/etc` en utilisant la commande suivante :

  $ sudo ostree admin config-diff

Pour obtenir une comparaison plus élaborée, vous pouvez utiliser :

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

NOTE: Cela fonctionne, car `ostree` conserve une copie non modifiée du répertoire `/etc` sous `/usr/etc`.
Toutes vos modifications vont directement dans `/etc`.

== Travailler avec les applications Flatpak

=== Accéder directement aux applications Flatpak depuis la ligne de commande

Le changement le plus notable lors de l'utilisation d'applications Flatpak au lieu d'installations conventionnelles est que les applications ne peuvent plus être appelées directement depuis la CLI, comme ceci :

  $ evince
  bash: command not found: evince

Au lieu de cela, on peut les appeler ainsi :

  $ flatpak run org.gnome.Evince

De plus, la plupart des applications Flatpak exportent leurs binaires internes sous un emplacement dépendant de l'installation :

* Pour les applications Flatpak installées à partir des télécommandes `system`, celles-ci peuvent être trouvées sous `/var/lib/flatpak/exports/bin/`
* Pour les applications Flatpak installées à partir des télécommandes `user`, celles-ci peuvent être trouvées sous `$HOME/.local/share/flatpak/exports/bin/`

[NOTE]
====
Si vous ne savez pas à quelle installation appartient une application Flatpak, vous pouvez utiliser cette commande pour l'afficher :

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

Vous pouvez ensuite soit ajouter ces répertoires à votre `$PATH` :

  $ org.gnome.Evince

ou configurez les `alias` du shell selon les besoins pour les rendre disponibles à la ligne de commande comme ceci :

  $ alias evince="flatpak run org.gnome.Evince"
    # or alias evince="org.gnome.Evince"
  $ evince