{{tag>22.04 Jammy firefox navigateur snap administration}}
====== Firefox, quelques astuces : profil, installation, lanceurs… ======
Depuis Ubuntu 22.04, Firefox est installé par défaut au format snap.
Les avantages **et** inconvénients de ce format sont indiscutables et ne sont pas l'objet de cette page.\\
\\
On pourra donc être amené à préférer d'autres façons d'installer Firefox, temporairement ou définitivement, ce qui supposera au préalable d'en sauvegarder le [[https://support.mozilla.org/fr/kb/profils-la-ou-firefox-conserve-donnees-utilisateur|profil]] ( vos informations utilisateur concernant Firefox : historique, mots de passe, favoris, extensions installées, etc ).\\
\\
Les [[https://support.mozilla.org/fr/products/firefox|pages officielles de support Firefox]] ( et [[https://support.mozilla.org/fr/products/thunderbird|Thunderbird]], d'ailleurs ) sont riches, claires et détaillées.\\
\\
Cette proposition de page vient en complément de la [[firefox|doc' Firefox]] qui aborde bien d'autres aspects du navigateur.\\
\\
**La section 1** ( synchronisation du profil ) est une recommandation pleine de sagesse, **très facile à mettre en œuvre**.\\
**La section 2** ( installation via archive autonome ) est **facile** pour la partie //utilisateur unique// ; **exigeante** pour la partie //multi-utilisateurs//.\\
**La section 3** ( lanceurs dédiés ) est **un peu exigeante**.
===== Sauvegarde et récupération du profil : la synchronisation =====
Il y a bien sûr la méthode manuelle, où on copie-colle un tel dossier « profil » d'une installation à l'autre de Firefox, d'une session à l'autre voire d'un OS vers un autre.\\
Valable mais pas sans risques :{{ :firefox:ff_sync_01.png?direct&400|}}\\
* on n'a pas droit à l'erreur lors de la manipulation de ces éléments,\\
* nécessite une bonne connaissance des divers OS concernés, et du fonctionnement interne de ce dossier de profil,\\
* posera problème lorsque des évolutions de Firefox induisent des modifications dans la façon de créer les éléments de ce profil. Ça ne survient pas à chaque mise à jour de Firefox, mais peut arriver lors de mises à jour majeures.\\
* posera problème avec des extensions qui dépendent spécifiquement d'un OS
* et avec la sauvegarde des mots de passe entre des OS différents…
Pour sauvegarder et récupérer le dossier de profil **à moindre effort**, il existe depuis une bonne dizaine d'années [[https://support.mozilla.org/fr/kb/configurer-synchronisation-ordinateur|un service de synchronisation proposé par Mozilla]].
**La création de ce compte nécessite une adresse de courrier électronique valide**, que vous devrez être en mesure de consulter lors de la connexion d'une nouvelle instance de Firefox à ce compte, pour reporter le code de validation.\\
\\
L'utilisation d'un tel compte de synchronisation fournit ces avantages :{{ :firefox:ff_sync_02.png?direct&400|}}\\
* évite la manipulation directe de fichiers,\\
* il peut se partager entre plusieurs instances et versions de Firefox,\\
* donc à travers plusieurs appareils, plusieurs sessions, plusieurs OS ( pas besoin de partition commune ),\\
* il crée à chaque nouvelle connexion un profil « propre » dans lequel sont injectées les infos de profil sauvegardées sur le compte, dans un format conforme à la version installée du logiciel,\\
* les infos sauvegardées via ce compte en ligne restent disponibles ''quand bien même vous auriez perdu tout votre $HOME localement''.\\
\\
Bref, **c'est terriblement pratique, confortable et sécurisé** ( les données sont chiffrées avant d'être envoyées chez Mozilla ) qu'il s'agisse de réinstaller, partager, ou dupliquer un profil Firefox.\\
Ça paraît logique mais mieux vaut le dire : la synchronisation de vos infos de profil Firefox ne s'initie que depuis un Firefox fonctionnel.\\
Il faut donc la mettre en place **avant** de, par exemple, supprimer un Firefox en snap que vous auriez déjà utilisé et « nourri ».\\
\\
À noter, aussi : **cette synchronisation est cumulative et bilatérale**. Si vous connectez un nouveau Firefox qui a déjà un peu servi à un compte de synchro bien plus ancien, les infos nouvelles « s'ajoutent » à celles déjà contenues par le compte plus ancien. Et le //total// de ces infos se retrouvent synchronisées via ce compte.
===== Installation depuis l'archive autonome fournie par Mozilla ( ni snap, ni .deb ) =====
Supposition préalable : vous avez « désinstallé » le snap de Firefox via\\
snap remove firefox
\\
[[https://www.mozilla.org/fr/firefox/all/#product-desktop-release|Mozilla propose sur son site officiel une archive autonome pour Firefox]] - qui se tient automatiquement à jour.\\
\\
Une fois cette archive décompressée, il suffit de double-cliquer sur l'exécutable //firefox// pour lancer le navigateur web.\\
Si on ne va pas plus loin, ça n'est pas une installation à proprement parler : on n'a pas de lanceur pour Firefox dans le menu des applications, pour le lancer depuis le terminal il faudra indiquer le chemin complet vers l'exécutable, le système ou la session ne « sauront » pas que Firefox est présent ni s'il doit être considéré comme le navigateur web par défaut…\\
\\
On va donc s'occuper de ces aspects manuellement, c'est assez simple dans un contexte utilisateur~humain~unique, c'est un peu moins simple dans un contexte multi-utilisateur ( mais pas compliqué non plus ! )\\
==== Contexte utilisateur unique ( installation dans sa session uniquement ) ====
Ici on ne travaille que dans la session utilisateur concernée donc zéro besoin de //sudo// car pas de modif' côté système.\\
On aura éventuellement besoin de voir les [[fichier_cache|éléments cachés]].\\
* décompressez l'archive autonome dans un emplacement de votre ''$HOME'' par ex. **~/Logiciels** et renommez simplement le dossier obtenu en ''firefox''\\
* placez dans **~/.local/bin** ( ou **~/bin** ) un lien symbolique nommé ''firefox'' qui cible l'exécutable :\\
ln -s ~/Logiciels/firefox/firefox ~/.local/bin/ # important le dernier caractère / indique qu'on crée un lien éponyme *dans* bin
* créez dans **~/.local/share/applications** un lanceur nommé ''firefox.desktop'' qui contiendra [[https://raw.githubusercontent.com/Coeur-Noir/Firefox-launchers/main/firefox.desktop%20%5Bfr-en%20only%5D|ce texte]] ( version courte, Français+Anglais. )\\
Relancez votre session : vous devriez trouver Firefox dans votre menu habituel d'applications **mais ne le lancez pas tout de suite**.\\
Par défaut sous Ubuntu, les chemins **~/bin** et **~/.local/bin** font partie de la variable d'environnement $PATH\\
**par contre** par défaut, aucun répertoire //bin// n'existe dans le $HOME, il faut donc le ou les créer manuellement.
Dans les paramètres de votre environnement de bureau, **trouvez l'équivalent de « Applications par défaut »** et choisissez Firefox comme Navigateur Internet ( ce choix existe grâce à la présence du lanceur dans **~/.local/share/applications** ).\\
\\
{{ :firefox:ff_defaut_00.png?direct&400|}}
\\
Maintenant lancez Firefox, **à la question « Voulez-vous faire de Firefox votre navigateur par défaut ? » cocher « Ne plus me demander » ET répondre « Plus tard »** puis dans les paramètres de Firefox ( tapez ''about:preferences'' dans la barre d'adresses ), **décochez « Toujours vérifier que Firefox est votre navigateur par défaut »** puisqu'on vient déjà de s'en assurer via « Applications par défaut ». **Pourquoi** ?\\
\\
* sinon d'une part Firefox vous posera la question à chaque lancement\\
* et d'autre part si vous le cochez comme navigateur par défaut depuis Firefox lui-même, il créera un second lanceur //.desktop// au nom aléatoire, et l'ajoutera en doublon dans le fichier ''mimeinfo.cache'' multipliant les entrées dans divers (sous-)menus du bureau ( notamment « ouvrir avec » ).\\
\\
{{ :firefox:ff_pref_default.png?direct&400|}}
==== Contexte multi-utilisateurs ( installation pour tous les utilisateurs ) ====
Dans un contexte multi-utilisateurs, il vaudra mieux installer cette archive autonome côté système ( donc usage de //sudo// ), dans ''/opt/firefox'' avec une gestion des droits et permissions adéquate afin que le mécanisme de mises à jour puisse fonctionner **depuis n'importe quelle session d'un utilisateur membre du groupe //users//** :\\
* décompressez l'archive autonome, renommez simplement le dossier obtenu en ''firefox'', déplacez le dans ''/opt'' ( l'emplacement conventionnel pour des applications installées hors gestionnaire de paquets, voir [[arborescence|arborescence]] )\\
cd ~/Téléchargements # ou autre emplacement où vous aurez téléchargé cette archive
tar xjf firefox-*.tar.bz2 # décompresser
mv firefox- firefox # renommer
sudo mv firefox /opt/ # déplacer
* appropriez ce dossier ''firefox'' ( et son contenu ) à **root:users**\\
sudo chown -cR root:users /opt/firefox/
* assurez vous que tout le contenu de ce dossier ait bien **root:users** comme propriétaires MAIS que seuls les __dossiers__ portent le //bit sgid// ( voir [[https://www.redhat.com/sysadmin/suid-sgid-sticky-bit|special permissions]] ) avec droits //rwxrw**s**---// via ces 2 commandes :\\
sudo chmod -c 2770 /opt/firefox
find /opt/firefox/ -type d -exec sudo chmod -c 2770 {} \;
# note : remplacez 2770 par 2775 si vous souhaitez que n'importe quel utilisateur puisse utiliser ce Firefox ;
# seuls les membres du groupe users pourront initier sa mise à jour.
* placez dans ''/usr/bin'' un lien symbolique nommé ''firefox'' qui cible l'exécutable ( ici ''/opt/firefox/firefox'' )\\
sudo ln -s /opt/firefox/firefox /usr/bin/
**Pour les versions d'×buntu > 22.04** : un script nommé //firefox// existe déjà dans ''/usr/bin'' → renommez-le préalablement en //firefox.bak//
sudo mv /usr/bin/firefox /usr/bin/firefox.bak
* créez dans ''/usr/share/applications'' un lanceur nommé ''firefox.desktop'' qui contiendra [[https://raw.githubusercontent.com/Coeur-Noir/Firefox-launchers/main/firefox.desktop%20%5Binternational%5D|ce texte]] ( version longue, internationale ).\\
sudo touch /usr/share/applications/firefox.desktop
gedit admin:///usr/share/applications/firefox.desktop # ouvrira gedit en mode administrateur, qui demandera le mot de passe aux moments opportuns.
**Pour les versions > 22.04** : un lanceur nommé //firefox.desktop// existe déjà dans ''/usr/share/applications'' MAIS il porte une option qui en interdit l'affichage → il s'agit donc de changer cette option :
sudo nano /usr/share/applications/firefox.desktop
et faites en sorte que cette ligne ( la troisième ) ''NoDisplay=true'' devienne ''NoDisplay=false'' pour « réactiver » l'affichage de ce lanceur ;-)
De cette façon seuls les utilisateurs membres du groupe **users** peuvent voir, utiliser et mettre à jour le Firefox contenu dans ''/opt/firefox'', il est donc impératif d'ajouter les utilisateurs concernés au groupe **users** via\\
sudo adduser un_utilisateur users
ou via un utilitaire graphique du genre « Utilisateurs et Groupes » ( fourni par **[[apt>gnome-system-tools]]** ).\\
**À partir d'×buntu 23.04** les utilisateurs « humains » sont dorénavant automatiquement membres du groupe //users//.\\
**Le choix du groupe //users//**\\
Le groupe //users// de gid //100// existe par défaut sous Linux. Les utilisateurs « humains » d'un système peuvent ( devraient ? ) faire partie de ce groupe.\\
Ubuntu manifestement ne s'en sert pas, du moins jusqu'à la version **22.04** ( Jammy ).\\
Ça évite de créer un groupe dédié à ce dossier ''/opt/firefox'' mais c'est une stratégie envisageable ( gérer précisément qui accède à quelle application, via un groupe //firefox// par exemple… )
\\
**Les mêmes remarques qu'au §2.1 s'appliquent concernant le choix du navigateur par défaut**, qu'on peut affiner pour le système avec :
sudo update-alternatives --install /usr/bin/x-www-browser x-www-browser /usr/bin/firefox 100
et dans la session de chaque utilisateur avec :
xdg-settings set default-web-browser firefox.desktop
\\
**Voilà donc un Firefox fonctionnel, rapide, qui écrit ses informations de profil classiquement dans ''~/.mozilla/firefox'', qui se tiendra à jour automatiquement, pour peu qu'il soit lancé par un quelconque utilisateur membre du groupe //users// et « compatible » avec toutes les extensions ( keepassx, audio-video-downloader, le connecteur chrome-gnome-shell, [[https://forum.ubuntu-fr.org/viewtopic.php?pid=22609795#p22609795|EiD carte d'identité électronique Belge]], etc ).**\\
\\
//Cherry on the cake// cette méthode n'a rien de spécifique à Ubuntu et s'appliquera dans d'autres ( toutes ? ) distributions Linux.
**La disponibilité d'une icône pour Firefox**\\
* dépend du thème d'icônes que vous utilisez ;\\
* pourra avoir été supprimée par la désinstallation du Firefox~en~snap.\\
\\
**Si votre lanceur affiche une icône « générique »** au lieu de celle dédiée à Firefox,\\
remplacez dans le(s) lanceur(s) ''firefox.desktop'' la ligne\\
Icon=firefox
par
Icon=/opt/firefox/browser/chrome/icons/default/default128.png
ou jetez un œil [[https://forum.ubuntu-fr.org/viewtopic.php?id=2073552|à cette astuce]] ;-)\\
Tant que vous agissez dans votre ''$HOME'' où //sudo// n'est jamais nécessaire, la création de lien symbolique peut se réaliser sans commande via l'explorateur de fichiers, [[https://forum.ubuntu-fr.org/viewtopic.php?id=2074175|pour Nautilus voir comment activer cette option]].
[[https://doc.ubuntu-fr.org/firefox#firefox_par_defaut|La solution « ppa » proposée par la doc]]' paraîtra plus simple cependant **elle implique de modifier les préférences du gestionnaire de paquets APT**.\\
Ici on ne fait que jouer avec les droits et permissions « basiques » du système de fichiers. La maintenance à long terme du //ppa// nécessaire semble moins garantie que l'existence de l'archive autonome sur le site officiel de Mozilla/Firefox.\\
\\
À priori ça n'est donc pas la voie « ppa » qui sera retenue mais un dépôt en bonne et due forme.\\
**Pour installer Firefox ( 121 et + ) en .deb** [[https://support.mozilla.org/fr/kb/installer-firefox-linux#w_installation-par-paquet-deb-pour-les-distributions-basees-sur-debian|c'est par là]] ;-)
===== Des lanceurs pour site web avec profil et icône dédiés, faute de PWA =====
**Kesaco les PWA ?**\\
Grosso-modo, c'est lancer une page web dans une fenêtre de navigateur « nue » c'est à dire sans toute son interface ( boutons de navigation, onglets, etc… ) et traiter cette fenêtre comme une application « indépendante » ( avec un lanceur dédié dans le menu des applications, son icône spécifique, son existence « à elle » dans le gestionnaire de fenêtres et de tâches… )\\
\\
**C'est terriblement pratique pour des sites web qui agissent plus ou moins comme des applications** ( des traitements de texte, d'images, des tableurs, des « drive », « maps », des sites multimédia genre radios, streaming audio, des interfaces de contrôle de machines HMI comme certaines imprimantes 3D, etc… ) **ou pour tout site qu'on souhaite rendre indépendant de la fenêtre de navigation web principale** et déjà « polyvalente ».\\
\\
**Le sort des PWA est loin d'être fixé au sein de Firefox**, l'idée va et vient mais **la réalisation native sur ordi de bureau** ( ça reste un //work-in-progress// sur la version mobile ) **n'est à ce jour pas d'actualité**. Il existe des outils dans certaines distributions pour mettre en place des PWA à partir de tous ou certains navigateurs ( [[https://github.com/peppermintos/ice|ICE]] chez Peppermint, [[https://github.com/linuxmint/webapp-manager|WebAppManager]] chez Mint, [[https://www.biglinux.com.br/|BigLinux]] a quelque chose aussi dans le même genre… ) mais pour en avoir ( longtemps ) essayé certains sous diverses ×buntu, c'est pas évident à gérer et ça casse plus ou moins selon les évolutions des navigateurs, ou leurs changements de format ( entendre par là : quand il faut ré-adapter toutes les config's des //web-app// à ~/snap ou autres… )\\
\\
**Des navigateurs, généralement issus de Chromium, le proposent nativement** [ outils supplémentaires / raccourcis / avec ou sans fenêtre / bureau ou menu d'appli's ]. Mais là aussi succès variable, tant que les PWA ne seront pas mieux « normés ». Il y aussi cette [[https://github.com/filips123/PWAsForFirefox|tentative d'extension]] ( qui requiert un hôte natif donc pas dit qu'elle fonctionne avec snap, et pas sûr qu'elle fonctionne bien sous Linux tout court, d'ailleurs. )\\
\\
Il y a aussi la question **des « liens / raccourcis » vers des sites web qu'on obtient facilement par glisser-déposer depuis la barre d'adresse d'un navigateur vers le bureau sous certains OS ou dans certains env. de bureau** mais ça aussi c'est complètement dépendant à la fois du navigateur lui-même, du gestionnaire de fenêtres et du bureau… Or comme le glisser-déposer //fenêtre→bureau// était un temps complètement pété sous Ubuntu ( 20.04 ), **des utilisateurs cherchaient des alternatives à ces gestes qu'ils pratiquaient sans souci ailleurs ou autrefois**…\\
\\
Voici donc un compromis, entre la PWA et le raccourci vers un site web…\\
{{:firefox:firefox_many_icons_and_profiles.png?direct&600|}}\\
…des lanceurs distincts, indépendants les uns des autres, pour des instances de Firefox qui ont chacune leur « profil », leur fenêtre, leur icône, leur entrée dans le menu des applications.
( Profils qu'on //peut// choisir de synchroniser via un compte Mozilla. Ou pas. )
==== Les dossiers de « profil » mais le fichier « profiles.ini » ====
Ici on rentre dans des considérations spécifiques à Firefox - quel que soit son format d'installation, et à priori quel que soit l'OS.\\
\\
Les chemins évoqués par la suite concernent un Firefox **installé en //.deb// ou depuis //l'archive autonome officielle//**,\\
il conviendra de les adapter en cas de //snap// → **~/snap/firefox/common/.mozilla/firefox/** au lieu de **~/.mozilla/firefox/**\\
ou //flatpak// → **~/.var/app/org.mozilla.firefox/.mozilla/firefox/** au lieu de **~/.mozilla/firefox/**\\
\\
Par contre on va aussi rentrer dans des considérations spécifiques aux lanceurs ( les fichiers en //.desktop// ) qui elles ne concernent que les OS Linux.\\
\\
**Le but de ce ( premier ) jeu, ici, c'est d'obtenir un lanceur indépendant pour une page web** :\\
* comme c'est un lanceur, on le trouvera dans le menu des applications ;\\
* comme il exécute Firefox avec un profil dédié, il a ses propres icône et fenêtre, distinctes des autres instances de Firefox ;\\
* il se « manipule » donc comme une appli' « à part », avec intégration à l'environnement de bureau ( par ex. les contrôles multi-média au clavier via MPRIS )…\\
* selon votre environnement de bureau vous pourrez placer ce lanceur dans un panel, un dock, sur le bureau…\\
À partir de cette « stratégie » **un deuxième jeu ( plus simple ) est proposé au [[https://doc.ubuntu-fr.org/firefox_quelques_astuces#des_lanceurs_independants_pour_differentes_sessions_de_firefox|§3.3.3]] : des lanceurs indépendants pour différentes sessions de Firefox.**
**Pour l'exemple**, disons qu'on souhaite un lanceur pour écouter la radio publique française FiP, site qu'on peut consulter à partir de cette url https://www.radiofrance.fr/fip/
Il faudra :\\
- créer un dossier de profil dédié à ce site dans ''~/.mozilla/firefox/''\\
- informer Firefox de l'existence de ce profil en l'ajoutant à liste contenue dans le fichier ''~/.mozilla/firefox/profiles.ini''\\
- enfin créer un lanceur pour une instance de Firefox qui utilisera spécifiquement ce profil.
Un //profil// dédié à une instance de Firefox est nécessaire pour que le système affiche //l'icône dédiée à ce profil//… C'est l'astuce.\\
**Sans profil dédié, pas d'icône dédiée** soit le comportement habituel où chaque fenêtre de Firefox est une tâche adjointe à son icône « en cours ».
=== le dossier de profil ===
Il s'agit de créer un dossier, vide, qui respecte une convention de nommage attendue par Firefox, par exemple :
mkdir ~/.mozilla/firefox/p3r50n4l.FiP
* Ce qui se trouve à droite du point est le nom de ce profil « FiP » - et **c'est important**.\\
* Ce qui se trouve à gauche peut se générer aléatoirement ( ce que fait Firefox lui-même, 4 chiffres et 4 lettres, quand on utilise son gestionnaire de profils ).
=== profiles.ini ===
On va ajouter à ce fichier les éléments nécessaires pour que Firefox puisse trouver ce profil.
xdg-open ~/.mozilla/firefox/profiles.ini
qui ouvrira le fichier dans votre éditeur de texte par défaut,\\
fichier qui ressemblera à :\\
[Profile0] # un [Profile0] existe forcément à cet endroit
Name=default # il s'est créé lors de votre première utilisation de Firefox…
IsRelative=1
Path=a0w1z95x.default
[General]
StartWithLastProfile=1
Version=2
[Install6AFDA46A1A8AD48] # …c'est le profil neutre, initial.
Default=a0w1z95x.default
Locked=1
auquel on ajoute les infos du nouveau dossier :
[Profile1] # évidemment si des profils existent déjà, incrémentez le numéro en conséquence.
Name=FiP # notez comme on retrouve le nom de ce profil « FiP » - c'est important.
IsRelative=1 # indique que c'est un chemin relatif ( dans le même dossier parent )
Path=p3r50n4l.FiP # c'est le chemin vers le dossier
# une ligne vide.
Même si la position de ce bloc d'infos dans le fichier a peu d'importance, par souci de lisibilité, plaçons-le au dessus du [Profile0],\\
d'où la ligne vide qui est un séparateur visuel.\\
{{ :firefox:ff_profilemanager.png?direct&400|}}\\
Pour lancer le gestionnaire de profils de Firefox, depuis un terminal :
firefox --ProfileManager
\\
**On a fini côté Firefox, on peut s'attaquer au lanceur**.
==== le lanceur et son icône dédiée ====
Enfin !\\
Ouvrez votre éditeur de texte favori et collez-y :
[Desktop Entry]
Version=1.1
Type=Application
Name=FiP Radio
Comment=FiP via Firefox
Icon=fip
Exec=firefox -P FiP https://www.radiofrance.fr/fip --class FiP --name FiP %u
Categories=AudioVideo;Audio;Player;Network;
StartupWMClass=FiP
StartupNotify=true
Observez une fois encore les occurrences du nom « FiP ».\\
Enregistrez ce fichier sous le nom ''fip-radio.desktop'' dans **~/.local/share/applications** - cet emplacement dans ''$HOME'' est important :\\
* d'abord parce qu'il est celui des lanceurs personnels d'un utilisateur dans sa session. Or ce lanceur pour Firefox fait appel à un profil qui lui aussi se trouve sous le même ''$HOME'' ;\\
* ensuite parce que sous Gnome/Ubuntu, l'explorateur de fichiers Nautilus n'exécute //à priori// les fichiers .//desktop// qu'à partir de deux emplacements, **~/.local/share/applications/** ou **~/Bureau/** ; s'il en trouve ailleurs, il se contentera d'en afficher le contenu.\\
\\
Quitter-relancer votre session.\\
Lancez FiP depuis votre menu d'applications ;-)\\
Lancez aussi votre Firefox habituel, et constatez comme les 2 instances sont indépendantes l'une de l'autre, voire imperméables.\\
\\
**Ça mérite quelques explications**,\\
à partir du rôle des diverses lignes d'un fichier //.desktop// d'une part, et des options utilisées pour lancer //cette// instance de Firefox d'autre part :
Name=FiP Radio
→ le nom sous lequel apparaîtra le lanceur dans votre interface de bureau
Icon=fip
→ cherche par défaut un fichier //.png// ou //.svg// nommé //fip// dans **/usr/share/icons/** et **~/.local/share/icons/**\\
→ {{:firefox:fip.png?linkonly |cadeau}}, enregistrez-la sous **~/.local/share/icons/**\\
Exec=firefox -P FiP https://www.radiofrance.fr/fip --class FiP --name FiP %u
**une bonne part de la magie a lieu ici** avec les options\\
→ //-P// qui appelle le profil pour Firefox nommé //FiP// ( soit le dossier //p3r50n4l.__FiP__// ) d'où l'importance des noms précédemment ;\\
→ ''%%--class FiP%%'' qui « sur-nomme » cette instance de Firefox → FiP ( et non …Firefox. )\\
→ ''%%--name FiP%%'' qui nomme((source ( concernant ''--name'' ) : [[https://github.com/linuxmint/webapp-manager/issues/103|GitHub WebApp Manager]])) cette fenêtre sous Wayland(([[https://doc.ubuntu-fr.org/wayland|Wayland]])) → FiP ( et non …Firefox. )\\
Categories=AudioVideo;Audio;Player;Network;
→ catégories dans lesquelles apparaîtra le lanceur, si votre menu d'applications affiche des catégories.\\
StartupWMClass=FiP
**l'autre part de magie est là** : ''%%--class%%'' et ''%%--name%%'' ( dans la ligne //Exec=// ) et //StartupWMClass=// **doivent impérativement avoir la même valeur**, cette équivalence crée la fenêtre dédiée à FiP, associée à l'icône, associée à ce profil spécifique, d'où encore l'importance des noms précédemment ;-)\\
**À propos de la remarque plus haut : « constatez comme les 2 instances sont indépendantes l'une de l'autre, voire imperméables. »**\\
Par exemple, vous ne pourrez pas glisser un onglet de la fenêtre FiP, vers une autre fenêtre de Firefox, et vice-versa.\\
Bien que mues par le même moteur ( Firefox ) ces fenêtres sont exclusives à leur profil.
Dans le même ordre d'idées, puisque //FiP radio// est une application avec son propre profil, **vous pouvez donc personnaliser celle-ci de façon totalement différente de votre navigateur Firefox habituel**. Notamment n'y installer que les modules complémentaires utiles à //cette// application ( il n'y a pas de pub' sur FiP… ) ou modifier les détails de son interface ( thèmes, couleurs, position des boutons… )
Pour les plus curieux d'entre vous, 2 liens vers davantage d'explications autour des options de lancement de Firefox en commande : [[https://wiki.mozilla.org/Firefox/CommandLineOptions|sur le wiki Mozilla]] et [[https://docs.gtk.org/gtk3/running.html|la doc' Gtk]].
==== Exemples et autres cas d'usage ====
=== Lanceurs dans le dossier ~/.local/share/applications===
[Desktop Entry]
Version=1.1
Type=Application
Name=Deezer
Comment=Deezer via Firefox
Icon=deezer
Exec=firefox -P Deezer https://www.deezer.com/fr/ --class Deezer --name Deezer %u
Categories=AudioVideo;Audio;Player;Network;
StartupWMClass=Deezer
StartupNotify=true
[Desktop Entry]
Version=1.1
Type=Application
Name=Google Drive
Comment=Google Drive via Firefox
Icon=google-drive
Exec=firefox -P Gdrive https://drive.google.com/drive/my-drive --class Gdrive --name Gdrive %u
Categories=Network;
StartupWMClass=Gdrive
StartupNotify=true
[Desktop Entry]
Version=1.1
Type=Application
Name=Molotov
Comment=Molotov via Firefox
Icon=molotov
Exec=firefox -P Molotov https://app.molotov.tv/home --class Molotov --name Molotov %u
Categories=AudioVideo;Audio;Player;Network;
StartupWMClass=Molotov
StartupNotify=true
=== Description des profils dans le fichier ~/.mozilla/firefox/profiles.ini ===
**Dossier ( profil )** ~/.mozilla/firefox/p3r50n4l.Deezer
[Profile2]
Name=Deezer
IsRelative=1
Path=p3r50n4l.Deezer
**Dossier ( profil )** ~/.mozilla/firefox/p3r50n4l.Gdrive
[Profile3]
Name=Gdrive
IsRelative=1
Path=p3r50n4l.Gdrive
**Dossier ( profil )** ~/.mozilla/firefox/p3r50n4l.Molotov
[Profile4]
Name=Molotov
IsRelative=1
Path=p3r50n4l.Molotov
\\
\\
Contrôles média en cours depuis le panel pour certains sites :\\
{{:firefox:ff_presque_webapp.png?direct&600|}}\\
**Icônes** : 1={{:firefox:google-drive.png?linkonly|}} 2=fournie via thème Papirus 3={{ :firefox:fip.png?linkonly |}} 4=fournie via thème Papirus\\
\\
\\
=== Des lanceurs indépendants pour différentes sessions de Firefox ===
**Votre système Ubuntu ne dispose que d'une seule session utilisateur** - disons que vous n'avez pas le choix - **mais plusieurs personnes s'en servent**.\\
Il ne serait pas très opportun, en termes de confort, de confidentialité et d'organisation, que toutes ces personnes utilisent un seul et même profil de navigateur.\\
On peut facilement créer un profil pour chacune d'elles et tant qu'à faire, leur propre compte de synchronisation, [[https://doc.ubuntu-fr.org/firefox_quelques_astuces#sauvegarde_et_recuperation_du_profilla_synchronisation|voir §1]].\\
**Dès lors que chaque personne dispose de son profil, on peut créer un lanceur Firefox pour chacune d'elle, avec icônes et noms distincts** qui afficheront des Firefox complètement indépendants les uns des autres.\\
C'était l'objet ( initial ) de [[https://forum.ubuntu-fr.org/viewtopic.php?id=2062127|cette discussion]].\\
{{ :firefox:ff_mdp_principal.png?direct&400|}}Puisque ces Firefox avec des profils personnels différents sont accessibles à quiconque devant cette session, **il convient de protéger l'accès aux données sensibles par l'utilisation d'un « mot de passe principal »** dans chacun d'eux !\\
C'est dans :\\
Menu → Paramètres → Vie privée et sécurité → Identifiants et mots de passe\\
**cocher** : Utiliser un mot de passe principal\\
\\
**Disons qu'on a 2 personnes, Petra et Noubie.**\\
Il faut donc un profil pour chacune ''~/.mozilla/firefox/47t3rn4t.Petra'' et ''~/.mozilla/firefox/47t3rn4t.Noubie''\\
\\
Chacun de ces profils dispose de sa description dans le fichier ''~/.mozilla/firefox/profiles.ini'' :\\
[Profile12]
Name=Noubie
IsRelative=1
Path=47t3rn4t.Noubie
[Profile11]
Name=Petra
IsRelative=1
Path=47t3rn4t.Petra
Dans ''~/.local/share/applications'' on placera 2 fichiers //.desktop//, les lanceurs, nommés ''firefox-petra.desktop'' et ''firefox-noubie.desktop''\\
qui contiennent respectivement :\\
[Desktop Entry]
Version=1.0
Name=Firefox for Petra
Name[fr]=Le Firefox de Petra
Comment=Browse the World Wide Web
Comment[fr]=Naviguer sur le Web
GenericName=Web Browser
GenericName[fr]=Navigateur Web
Keywords=Internet;WWW;Browser;Web;Explorer
Keywords[fr]=Internet;WWW;Browser;Web;Explorer;Fureteur;Surfer;Navigateur
Exec=firefox -P Petra --class Petra --name Petra %u
Terminal=false
X-MultipleArgs=false
Type=Application
Icon=firefox-petra
Categories=GNOME;GTK;Network;WebBrowser;
StartupWMClass=Petra
StartupNotify=true
MimeType=x-scheme-handler/unknown;x-scheme-handler/about;text/html;text/xml;application/xhtml+xml;application/xml;application/rss+xml;application/rdf+xml;image/gif;image/jpeg;image/png;x-scheme-handler/http;x-scheme-handler/https;x-scheme-handler/ftp;x-scheme-handler/chrome;video/webm;application/x-xpinstall;
Actions=new-window;new-private-window;
[Desktop Action new-window]
Name=Open a New Window
Name[fr]=Ouvrir une nouvelle fenêtre
Exec=firefox -new-window -P Petra --class Petra --name Petra
[Desktop Action new-private-window]
Name=Open a New Private Window
Name[fr]=Ouvrir une nouvelle fenêtre de navigation privée
Exec=firefox -private-window -P Petra --class Petra --name Petra
[Desktop Entry]
Version=1.0
Name=Firefox for Noubie
Name[fr]=Le Firefox de Noubie
Comment=Browse the World Wide Web
Comment[fr]=Naviguer sur le Web
GenericName=Web Browser
GenericName[fr]=Navigateur Web
Keywords=Internet;WWW;Browser;Web;Explorer
Keywords[fr]=Internet;WWW;Browser;Web;Explorer;Fureteur;Surfer;Navigateur
Exec=firefox -P Noubie --class Noubie --name Noubie %u
Terminal=false
X-MultipleArgs=false
Type=Application
Icon=firefox-noubie
Categories=GNOME;GTK;Network;WebBrowser;
StartupWMClass=Noubie
StartupNotify=true
MimeType=x-scheme-handler/unknown;x-scheme-handler/about;text/html;text/xml;application/xhtml+xml;application/xml;application/rss+xml;application/rdf+xml;image/gif;image/jpeg;image/png;x-scheme-handler/http;x-scheme-handler/https;x-scheme-handler/ftp;x-scheme-handler/chrome;video/webm;application/x-xpinstall;
Actions=new-window;new-private-window;
[Desktop Action new-window]
Name=Open a New Window
Name[fr]=Ouvrir une nouvelle fenêtre
Exec=firefox -new-window -P Noubie --class Noubie --name Noubie
[Desktop Action new-private-window]
Name=Open a New Private Window
Name[fr]=Ouvrir une nouvelle fenêtre de navigation privée
Exec=firefox -private-window -P Noubie --class Noubie --name Noubie
→ ce sont des lanceurs « complets » pour Firefox ( réduits à une version franco-anglaise ) avec les actions au clic droit ( nouvelle fenêtre et navigation privée )\\
et le //MimeType// ( l'association application / type de fichiers qu'elle exploite ) afin de rendre ces Firefox disponibles dans certains sous-menus de votre environnement de bureau ( par ex.: ouvrir avec ).\\
Dans ces lanceurs, **repérez les occurrences de Petra/petra ou Noubie/noubie** et remplacez-les par les noms utilisés dans votre contexte.\\
→ voir « ça mérite quelques explications » au **[[https://doc.ubuntu-fr.org/firefox_quelques_astuces#le_lanceur_et_son_icone_dediee|§3.2]]** pour repérer les endroits clés dans ces fichiers //.desktop//\\
→ ce sont les « rubriques » : Name, Icon, Exec, --class, StartupWMClass\\
Idem pour les noms des fichiers image ci-après, noms à adapter à votre contexte.
**Enfin** placez dans ''~/.local/share/icons'' les images au format .//png// ou .//svg// nommées ''firefox-petra'' et ''firefox-noubie''\\
{{:firefox:ff_00.png?nolink&550|}}\\
{{:firefox:ff_06.png?linkonly|}} ⋅ {{:firefox:ff_05.png?linkonly|}} ⋅ {{:firefox:ff_04.png?linkonly|}} ⋅ {{:firefox:ff_03.png?linkonly|}} ⋅ {{:firefox:ff_02.png?linkonly|}} ⋅ {{:firefox:ff_01.png?linkonly|}}\\
Bien sûr vous pouvez utiliser toute autre icône de votre choix, dites vous qu'elle doit tenir dans un carré, généralement de 128×128px, maxi 256×256px.\\
\\
Selon votre méthode d'installation de Firefox, vous pourrez trouver son icône originale quelque part dans ''/usr/share/icons/…'' ou ''/snap/…'' ou ''/opt/firefox/browser/chrome/icons/default/default128.png'' ; copiez-la ( pas besoin de //sudo// la destination est votre $HOME ; c'est un simple copier-coller depuis l'explorateur de fichiers ) dans ''~/.local/share/icons'' si vous souhaitez la modifier et renommez-là en fonction des noms utilisés dans votre contexte.\\
\\
{{:firefox:ff_2fois2_fenetres.png?direct&600|}}\\
2 icônes pour 2 profils, chacun avec 2 fenêtres en cours…\\
\\