–name
) : GitHub WebApp Manager
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 profil ( vos informations utilisateur concernant Firefox : historique, mots de passe, favoris, extensions installées, etc ).
Les pages officielles de support Firefox ( et Thunderbird, d'ailleurs ) sont riches, claires et détaillées.
Cette proposition de page vient en complément de la 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.
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 :
Pour sauvegarder et récupérer le dossier de profil à moindre effort, il existe depuis une bonne dizaine d'années 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 :
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.
Supposition préalable : vous avez « désinstallé » le snap de Firefox via
snap remove firefox
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 ! )
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 éléments cachés.
$HOME
par ex. ~/Logiciels et renommez simplement le dossier obtenu en firefox
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
firefox.desktop
qui contiendra 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.
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 ).
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 ?
mimeinfo.cache
multipliant les entrées dans divers (sous-)menus du bureau ( notamment « ouvrir avec » ).
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 :
firefox
, déplacez le dans /opt
( l'emplacement conventionnel pour des applications installées hors gestionnaire de paquets, voir 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-<version> firefox # renommer sudo mv firefox /opt/ # déplacer
firefox
( et son contenu ) à root:userssudo chown -cR root:users /opt/firefox/
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.
/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
/usr/share/applications
un lanceur nommé firefox.desktop
qui contiendra 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 gnome-system-tools ).
À partir d'×buntu 23.04 les utilisateurs « humains » sont dorénavant automatiquement membres du groupe users.
/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, 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.
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 à cette astuce
$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, pour Nautilus voir comment activer cette option.
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 ( ICE chez Peppermint, WebAppManager chez Mint, 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 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…
…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. )
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 :
À partir de cette « stratégie » un deuxième jeu ( plus simple ) est proposé au §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 :
~/.mozilla/firefox/
~/.mozilla/firefox/profiles.ini
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
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.
On a fini côté Firefox, on peut s'attaquer au lanceur.
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 :
$HOME
;
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/
→ 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 nomme1) cette fenêtre sous Wayland2) → 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
Pour les plus curieux d'entre vous, 2 liens vers davantage d'explications autour des options de lancement de Firefox en commande : sur le wiki Mozilla et la doc' Gtk.
[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
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 :
Icônes : 1=google-drive.png 2=fournie via thème Papirus 3=fip.png 4=fournie via thème Papirus
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, 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 cette discussion.
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 ).
Enfin placez dans ~/.local/share/icons
les images au format .png ou .svg nommées firefox-petra
et firefox-noubie
ff_06.png ⋅ ff_05.png ⋅ ff_04.png ⋅ ff_03.png ⋅ ff_02.png ⋅ ff_01.png
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.
2 icônes pour 2 profils, chacun avec 2 fenêtres en cours…
–name
) : GitHub WebApp Manager