Firefox can be installed with the package.
Other alternatives include:
- Firefox Developer Edition — for developers
- Firefox Extended Support Release — long-term supported version
- https://www.mozilla.org/firefox/organizations/ || AUR or AUR
- Firefox Beta — cutting-edge version
- Firefox Nightly — nightly builds for testing (experimental features)
- Firefox KDE — Version of Firefox that incorporates an OpenSUSE patch for better KDE integration than is possible through simple Firefox add-ons.
- https://build.opensuse.org/package/show/mozilla:Factory/MozillaFirefox || AUR, AUR or AUR
- On top of the different Mozilla build channels, a number of forks exist with more or less special features; see List of applications#Gecko-based.
A number of language packs are available for Firefox, other than the standard English. Language packs are usually named as
languagecode can be any language code, such as de, ja, fr, etc.). For a list of available language packs, see firefox-i18n for , firefox-developer-edition-i18n for and firefox-nightly- for AUR.
Firefox is well known for its large library of add-ons which can be used to add new features or modify the behavior of existing features. Firefox's "Add-ons Manager" is used to manage installed add-ons or find new ones.
For instructions on how to install add-ons and a list of add-ons, see Browser extensions.
Adding search engines
Search engines may be added to Firefox by creating bookmarks:
- Press the star on the address bar or
- Right click on the bookmark you have created, then press Edit Bookmark...
- Complete the URL field with search URLs. Complete the place of the query with
%s. Complete the Keyword field with user-defined characters. Like this:
URL: https://duckduckgo.com/html/?q=%s Keyword: d
Searches are performed by pre-pending the search term with the keyword of the specified search engine:
d archwiki will query DuckDuckGo using the search term
Search engines may also be added to Firefox through add-on extensions; see this page for a list of available search tools and engines.
A very extensive list of search engines can be found at the Mycroft Project.
Install the AUR package to add Arch-specific searches (AUR, wiki, forum, packages, etc) to the Firefox search toolbar.
Firefox exposes a number of configuration options. To examine them, enter in the Firefox address bar:
Once set, these affect the user's current profile, and may be synchronized across all devices via Firefox Sync. Please note that only a subset of the
about:config entries are synchronized by this method, and the exact subset may be found by searching for
about:config. Additional preferences and third party preferences may be synchronized by creating new boolean entries prepending the value with services.sync.prefs.sync. To synchronize the whitelist for the extension NoScript:
noscript.sync.enabled must be set to
true to synchronize the remainder of NoScript's preferences via Firefox Sync.
Firefox stores the configuration for a profile via a
prefs.js in the profile folder, usually
Firefox also allows configuration for a profile via a
user.js file: user.js kept also in the profile folder. A
user.js configuration supersedes a
user.js configuration is only parsed at start-up of a profile. Hence, you can test changes via
about:config and modify
user.js at runtime accordingly. For a useful starting point, see e.g custom user.js which is targeted at privacy/security conscious users.
One drawback of the above approach is that it is not applied system-wide. Furthermore, this is not useful as a "pre-configuration", since the profile directory is created after first launch of the browser. You can, however, let firefox create a new profile and, after closing it again, copy the contents of an already created profile folder into it.
Sometimes, it may be desired to lock certain settings, a feature useful in widespread deployments of customized Firefox. In order to create a system-wide configuration, follow the steps outlined in Customizing Firefox Using AutoConfig:
pref("general.config.filename", "firefox.cfg"); pref("general.config.obscure_value", 0);
/usr/lib/firefox/firefox.cfg (this stores the actual configuration):
// //...your settings... // e.g to disable Pocket, uncomment the following lines // lockPref("extensions.pocket.enabled", false); // lockPref("browser.newtabpage.activity-stream.feeds.section.topstories", false);
Please note that the first line must contain exactly
//. The syntax of the file is similar to that of
Widevine is a digital rights management tool that Netflix, Amazon Prime Video, and others use to protect their video content. It can be enabled in Settings > General > Digital Rights Management (DRM) Content. If you visit a Widevine-enabled page when this setting is disabled, Firefox will display a prompt below the address bar asking for permission to install DRM. Approve this and then wait for the "Downloading" bar to disappear; now, you are able to watch videos from Widevine protected sites.
Firefox can only play 720p video (or lower) with Widevine, due to not using hardware DRM playback. It is also required that the private mode browsing is disabled, for the window and in the Settings.
"Open With" extension
- Install Open With add-on.
- Go to Add-ons > Open With > Preferences.
- Proceed with instructions to install a file in your system and test the installation.
- Click Add browser.
- In the dialog, write a name for this menu entry and command to start a video streaming capable player (e.g.
- Optionally, add needed arguments to the player (e.g. you may want
--force-window --ytdlfor mpv).
- Optionally, add needed arguments to the player (e.g. you may want
- Right click on links or visit pages containing videos. Select newly created entry from Open With's menu and if the site is supported, the player will open as expected.
The same procedure can be used to associate video downloaders such as youtube-dl.
Hardware video acceleration
To enable VA-API in Firefox:
- Ensure that your video card is correctly configured for VA-API as described in Hardware video acceleration.
- Ensure WebRender is enabled by navigating to
about:supportand then Compositing. It is enabled by default in GNOME and other desktop environments .
- Ensure you are not running Software WebRender as that will not work as of August 2021 .
- If necessary, Hardware WebRender can be force enabled by setting
- If using Wayland, run Firefox with Wayland mode enabled.
- While NVIDIA's proprietary driver does not support VA-API, newer versions support DMA-BUF. Using CUDA. See the GitHub project for documentation on necessary environment variables and about:config changes. AUR will allow for hardware video decoding on NVIDIA using
- Since currently there is no DMA-BUF support for VDPAU nor , this package will not enable hardware video acceleration in Firefox. In fact, as of Firefox 102, having this installed and
media.ffmpeg.vaapi.enabledset will make Firefox crash on startup.
- Currently, Firefox's VA-API implementation can decode H.264/AVC, VP8 & VP9, AV1 encoded video. AV1 support requires FireFox 98+ .
- Multi-GPU systems should automatically choose a suitable GPU for VA-API according to this solved issue.
- AMDGPU users under may need to rebuild linux-hardened with
CONFIG_CHECKPOINT_RESTORE=ydue to requiring the kcmp syscall. This may no longer be necessary due to this bug being solved.
VA-API usage can be verified by checking Firefox's VA-API logs. Run Firefox with the
MOZ_LOG="PlatformDecoderModule:5" environment variable and check in the log output that VA-API is enabled and used (search for the "VA-API" string) when playing a video for example. Pay attention to these logs as they might indicate that only one of the two possible compositors described before (WebRender or OpenGL) works with VA-API on your particular setup.
- To allow hardware decoding in YouTube, the video codec used must be supported by the hardware. The profiles supported by your GPU can be checked with Hardware video acceleration#Verifying VA-API and the YouTube codecs used can sometimes (if offered by YouTube!) be controlled with the h264ify or enhanced-h264ify extensions. Alternatively, you can install AUR.
Firefox can use system-wide installed Hunspell dictionaries as well as dictionaries installed through its own extension system.
To enable spell checking for a specific language, right click on any text field and check the Check Spelling box. To select a language for spell checking, you have to right click again and select your language from the Languages sub-menu.
If your default language choice does not stick, see #Firefox does not remember default spell check language.
System-wide Hunspell dictionaries
Install Hunspell and its dictionaries for the languages you require.
Dictionaries as extensions
To get more languages, right click on any text field, click Add Dictionaries... and select the dictionary you want to install from the Dictionaries and Language Packs list.
- To bring the KDE look to GTK applications (including Firefox), install and . Afterwards, go to System Settings and in Appearance > Application Style > Configure GNOME/GTK Application Style… choose 'Breeze'.
- To use the KDE file selection and print dialogs in Firefox 64 or newer, install
and , then do one of the following:
about:config. You should also change
- Launch firefox with
- For integration with KDE MIME type system, proxy and file dialog, one can use AUR variant from AUR with OpenSUSE’s patches applied. Alternatively, integration with MIME types can be achieved by creating a symbolic link to the MIME database
~/.config/mimeapps.listfrom the deprecated
~/.local/share/applications/mimeapps.listthat is used by Firefox. See XDG MIME Applications#mimeapps.list.
- Extensions/add-ons may provide additional integration, such as:
- Tip: To prevent duplicate entries in the Media Player widget or tray icon, set
false. This disables the media entry from Firefox and only uses the one from the Plasma integration add-on.
Listen (text to speech)
Firefox can perform Text to Speech synthesis for web pages. This functionality is provided by Speech Dispatcher, so you must first install . Additionally, Speech Dispatcher requires a speech synthesis engine. The currently recommended engine is Festival; follow Festival#Installation to install it.
Now, to start TTS in Firefox, enter the Reader view and click on the Listen icon in the left hand area of the page.
If Reader view is available for a page a page icon will appear at the right hand end of the address bar. You can open the Reader view by clicking on this icon.
To troubleshoot issues with TTS, see #Web Speech API has no voices.
Tips and tricks
Firefox should respect your GTK theme settings and your OS-wide dark appearance settings (as in the Appearance section of GNOME's settings or KDE system settings). If the latter does not work, make sure to have a suitablepackage installed.
Starting with Firefox 68, you can make all the Firefox interfaces and even other websites respect dark themes, irrespective of the system GTK theme and Firefox theme. To do this, set
As of Firefox 100, further control of the dark theme of web pages that opt-in (using the CSS media query prefers-color-scheme) and Firefox's own in-content pages is possible with
layout.css.prefers-color-scheme.content-override. Setting this to
3 will follow the browser theme, setting this to
2 will follow the system wide dark-mode preference (
ui.systemUsesDarkTheme as above, which defaults to
0 if the user has not changed the dark-mode preference or if a system does not support a system-wide dark-mode preference), while
0 will always force light-mode and dark-mode respectively. This setting can also be accessed through the user settings of Firefox under General > Language and Appearance > Website appearance.
If Firefox is unable to automatically detect the right value, it will default to 60 fps. To manually correct this, set
layout.frame_rate to the refresh rate of your monitor (e.g. 144 for 144 Hz).
New tabs position
To control where new tabs appears (relative or absolute), use
browser.tabs.insertRelatedAfterCurrent. See  for more information.
Screenshot of webpage
You can Take a Screenshot by either using the screenshots button that can be added to the toolbar from the customize screen in the Hamburger menu at More tools > Customize toolbar, by pressing
Ctrl+Shift+s or by right-clicking on the webpage. See  for more information.
As an alternative, you can use the screenshot button in the developer tools, which can be added through the developer tools Settings menu, under the Available Toolbox Buttons section. The settings for the developer tools are accessible through the three horizontal dots located at the top right of the developer tools pane.
$ MOZ_ENABLE_WAYLAND=1 firefox
To make this permanent, see Environment variables#Graphical environment and start Firefox via the desktop launcher like you normally would.
To verify that it worked, look for Window Protocol in
about:support. It should say
wayland. The presence of
x11 means you are running Firefox under Xorg display server, while
xwayland means your system is running Wayland but executing Firefox as legacy X11 application.
if [ "$XDG_SESSION_TYPE" == "wayland" ]; then export MOZ_ENABLE_WAYLAND=1 fi
Window manager rules
To apply different configurations to Firefox windows, change the WM_CLASS string by using Firefox's
--class option, to a custom one.
To start new Firefox instances, multiple profiles are required. To create a new profile:
$ firefox [--new-instance] -P
Class can be specified when launching Firefox with a not-in-use profile:
$ firefox [--new-instance] -P profile_name --class=class_name
Firefox Profilemaker can be used to create a Firefox profile with the defaults you like.
Touchscreen gestures and pixel-perfect trackpad scrolling
To enable touch gestures (like scrolling and pinch-to-zoom) and one-to-one trackpad scrolling (as can be witnessed with GTK3 applications like Nautilus), set the
MOZ_USE_XINPUT2=1 environment variable before starting Firefox. On Wayland, only
MOZ_ENABLE_WAYLAND=1 needs to be set.
Kinetic scrolling feels loose on Wayland due to https://bugzilla.mozilla.org/show_bug.cgi?id=1568722, and can be turned off by going to
about:config and turning off
apz.gtk.kinetic_scroll.enabled. This will make it harder to scroll to the beginning and end of long pages, however.
Multiple home pages
To have multiple tabs opened when starting Firefox, open a new window and then open the sites you want to have as "home tabs".
Now go to Settings > Home and under Homepage and new windows click the Use Current Pages button.
Alternatively, go directly to Settings > Home and now under Homepage and new windows set the first field to Custom URLs.. and enter the pages you want as new home pages in the following format:
View two pages side by side in the PDF viewer
To display two pages at once with the integrated PDF viewer, set
1 in in
Firefox supports kiosk mode that shows pages in full screen without browser chrome, context menus, and other features useful for typical desktop browsing. These can be seen on ATMs or information panels where users are not expected to interact with the rest of the system.
To use kiosk mode, start Firefox with:
$ firefox --kiosk url
The startup page can be configured the settings or supplied as a command-line parameter.
If you need printing, you can prevent Firefox from showing paper size configuration dialogs with:
$ firefox --kiosk --kiosk-printing url
Starting with Firefox version 89, the compact mode density option was removed from the Customize panel , but you can still use compact density. To do this, set
The command line switch
-safe-mode starts Firefox in Troubleshoot Mode, which disables extensions, themes, hardware acceleration, the JIT and some other features for this session.
This mode can also be enabled by pressing on the hamburger menu while Firefox is open, clicking Help, selecting Troubleshoot Mode and confirming this on the modal dialog that appears. Please note this will require a browser restart.
This mode was previously named Safe Mode until Firefox 88.
Some issues experienced by users in Firefox may be caused by profile issues, such as corruption.
If you have ruled out other causes, it may be worth trying a new Firefox profile for testing purposes to see if this will resolve your issue. More information on how to create a new profile and switch between profiles can be found on the Firefox support page.
If this resolves your issue, you should switch back to your original profile and consider refreshing your Firefox.
Refreshing your profile will retain all browsing and download history, bookmarks, web form auto-fill data, cookies, personal dictionary and passwords, and will transfer them to a brand new profile without extensions, themes, extension data and preferences, among other data. A backup of your old profile will also be retained.
To refresh your profile, navigate to
about:support, press Refresh Firefox and confirm this on the modal dialog that appears.
about:support can also be accessed by pressing the Hamburger menu, selecting Help and then clicking More troubleshooting information.
More information on refreshing your Firefox, including further details about what is transferred to the new profile, can be found on the Firefox support page.
Hardware video acceleration issues
If you are having issues with hardware video acceleration in Firefox, e.g. in case of freezes or graphical corruption, start Firefox in Troubleshoot Mode for testing purposes to confirm that this is the issue. If this step resolves the issue, merely set
about:config to disable hardware video acceleration, and restart Firefox.
Extension X does not work on some Mozilla owned domains
By default, extensions will not affect pages designated by
extensions.webextensions.restrictedDomains. If this is not desired, this field can be cleared (special pages such as
about:* will not be affected). Then create and set
privacy.resistFingerprinting.block_mozAddonManager to true.
Firefox startup takes very long
If Firefox takes much longer to start up than other browsers, it may be due to lacking configuration of the localhost in
/etc/hosts. See Network configuration#Local network hostname resolution on how to set it up.
Misbehaving Firefox extensions, or too many extensions, may be another source of slow startup. This can be confirmed through the use of Troubleshoot Mode, which will disable extensions on restart.
A further cause of slow start-up may be a profile issue, such as corruption. For more troubleshooting steps around your Firefox profile, see #Firefox refresh.
See Font configuration.
Firefox has a setting which determines how many replacements it will allow from Fontconfig. To allow it to use all your replacement rules, change
127 (the highest possible value).
Firefox ships with the Twemoji Mozilla font. To use the system emoji font, set
about:config. Additionally, to prevent the Mozilla font interfering with your system emoji font, change
false or remove
/usr/lib/firefox/fonts/TwemojiMozilla.ttf (see also pacman#Skip files from being installed to system).
Setting an email client
Inside the browser,
mailto links by default are opened by a web application such as Gmail or Yahoo Mail. To set an external email program, go to Settings > General > Applications and modify the action corresponding to the
mailto content type; the file path will need to be designated (e.g.
/usr/bin/kmail for Kmail).
See Default applications.
Firefox keeps creating ~/Desktop even when this is not desired
~/Desktop as the default place for download and upload files. To change it to another folder, set the
XDG_DESKTOP_DIR option as explained in XDG user directories.
Changes to userChrome.css and userContent.css are ignored
To use the middle mouse button to paste whatever text has been highlighted/added to the clipboard, as is common in UNIX-like operating systems, set either
middlemouse.contentLoadURL enabled was the default behaviour prior to Firefox 57.
To scroll on middle-click (default for Windows browsers), set
According to MozillaZine, the
Backspace key was mapped based on which platform the browser was running on. As a compromise, this preference was created to allow the
Backspace key to either go back/forward, scroll up/down a page, or do nothing.
Backspace go back one page in the tab's history and
Shift+Backspace go forward, set
To have the
Backspace key scroll up one page and
Shift+Backspace scroll down one page, set
1. Setting this property to any other value will leave the key unmapped (Arch Linux defaults to
2; in other words, it is unmapped by default).
Firefox does not remember login information
It may be due to a corrupted
cookies.sqlite file in Firefox's profile folder. In order to fix this, just rename or remove
cookie.sqlite while Firefox is not running.
Open a terminal of choice and type the following:
$ rm -f ~/.mozilla/firefox/<profile id>.default/cookies.sqlite
The profile id is a random 8 character string.
Restart Firefox and see if it solved the problem.
If it did not work, check if there exists a
cookies.sqlite.bak file that you could use to manually restore the cookies.
Cannot enter/leave fullscreen
If Firefox detects an EWMH/ICCCM compliant window manager, it will try to send a WM_STATE message to the root window to request Firefox be made to enter (or leave) full-screen mode (as defined by the window manager). Window managers are allowed to ignore it, but if they do, Firefox will assume the request got denied and propagate it to the end user which results in nothing happening. This may result in not being able to full screen a video. A general workaround is to set the
Related bug reports: Bugzilla 1189622.
You can try setting
Firefox does not remember default spell check language
The default spell checking language can be set as follows:
about:configin the address bar.
spellchecker.dictionaryto your language of choice, for instance
- Notice that the for dictionaries installed as a Firefox plugin the notation is
en-GB, and for dictionaries the notation is
When you only have system wide dictionaries installed with dictionary installed as a Firefox plugin. Notice that now you will also have a tab Dictionaries in Add-ons. You may have to change the order of preferred language for displaying pages in
about:preferences#general to make the spell check default to the language of the addon dictionary.
Some MathML symbols are missing
You need some Math fonts, namely Latin Modern Math and STIX (see this MDN page: ), to display MathML correctly.
Videos load but do not play
This may be a PulseAudio issue. See the suggested fix in PulseAudio/Troubleshooting#Browsers load videos but do no play.
Tearing when scrolling
Try disabling smooth scrolling in Settings > General >Browsing.
Firefox WebRTC module cannot detect a microphone
WebRTC applications for instance Firefox WebRTC getUserMedia test page say that microphone cannot be found. Issue is reproducible for both ALSA or PulseAudio setup. Firefox debug logs show the following error:
$ NSPR_LOG_MODULES=MediaManager:5,GetUserMedia:5 firefox
... [Unnamed thread 0x7fd7c0654340]: D/GetUserMedia VoEHardware:GetRecordingDeviceName: Failed 1
You can try setting
media.navigator.audio.full_duplex property to
about:config Firefox page and restart Firefox.
This can also help if you are using the PulseAudio module-echo-cancel and Firefox does not recognise the virtual echo canceling source.
WebRTC sharing indicator displays an XML parsing error
After agreeing to share a microphone or web camera, you may then see a window with a tan background and a red border in the top left corner on your primary window, displaying the following error message:
XML Parsing Error: no root element found Location: chrome://browser/content/webrtcLegacyIndicator.xhtml Line Number: 1, Column 1: ^
If this is the case for you, performing the following steps should resolve the issue:
- Navigate to
- Click on the Clear Startup Cache button and agree to restart the browser.
See Mozilla's bug report for more information.
Cannot login with my Chinese account
Firefox provides a local service for Chinese users, with a local account totally different from the international one. Firefox installed with the this page, then you can login with your Chinese account now.package uses the international account system by default, to change into the Chinese local service, you should install the add-on manager on
No audio on certain videos when using JACK and PulseAudio
If you are using JACK in combination with PulseAudio and cannot hear any sound on some videos, it could be because those videos have mono audio. This happens if your JACK setup uses more than just stereo, but you use normal headphones. To fix this, you simply have to connect the
front-center port from the PulseAudio JACK Sink to both
playback_2 ports of the system output.
You can also do this automatically using a script:
#!/bin/sh jack_connect "PulseAudio JACK Sink:front-center" "system:playback_1" jack_connect "PulseAudio JACK Sink:front-center" "system:playback_2"
Keep in mind that the names for the sink and the ports might be different for you. You can check what your JACK setup looks like with a Patchbay like Catia from.
Geolocation does not work
Recently, Google limited the use of its location service with Arch Linux, which causes the following error when geolocation is enabled on a website:
Geolocation error: Unknown error acquiring position. Region-locked services such as Hulu may display a similar error indicating that your location could not be determined even though you have allowed location services for the site.
To avoid these problems, you can switch to use the Mozilla Location Service. In
about:config change the
geo.provider.network.url setting to:
See FS#65241 for more details.
To fix it, navigate to
about:config and change
Firefox window does not repaint after disabling or enabling compositing
Unset the environment variable
Related bug report: Bugzilla 1711039.
Firefox continuously asks to be set as default browser upon launch
There are a couple things you can try: if you are using a desktop environment, check if Firefox is set as the default browser in your system settings. If it is not, then set it, otherwise you can run the following command, provided by the xdg-utils package, to query which browser is set as default on your system:
$ xdg-settings get default-web-browser
If no value is returned or it is not Firefox, then run this command to set it:
$ xdg-settings set default-web-browser firefox.desktop
If Firefox still asks to be set as the default browser, then it may be quieted if it is set to handle http and https URL schemes. To do so, run thesecommands:
$ xdg-mime default firefox.desktop x-scheme-handler/http $ xdg-mime default firefox.desktop x-scheme-handler/https
If those do not work either, check if you have set the environment variable
GTK_USE_PORTAL (all values trigger the bug), in which case, unset it. Related bug report: Bugzilla 1516290. If that does not work or you did not set it, navigate Firefox to
about:config, check if the variable
widget.use-xdg-desktop-portal is set to
true and, if so, set it to
If you wish to disable default browser check entirely, navigate Firefox to
about:config and set
If you experience video stuttering and you notice that Firefox is only hitting one core at 100% when watching videos (especially higher resolution videos), this might help you.
about:config and search for
dom.ipc.processCount and change
dom.ipc.processCount.file from 1 to a higher number. An ad hoc method to find a good number is to increase it one at a time until you get good results, but 4 seems to be a good value.
Bengali font broken in some pages
In most cases, installing the Page Inspector, find out all the fonts that are being loaded on that particular page. Removing fonts other than Noto Sans from the system will resolve the issue permanently.and making Noto Sans Bengali as defaults in Fonts and Colors settings solves it. However, in some social media sites, Bengali fonts may still be broken. In those cases, Mozilla provides a detailed guide on how to see all the fonts gets loaded in a page. By using
There will be some fonts that have been installed as dependency of other package. For example, font configuration:installs as dependency, which loads itself in some Firefox pages automatically and breaks Bengali fonts on those pages. To solve this issue, use the following rule in your
<match target="pattern"> <test qual="any" name="family"><string>Liberation</string></test> <edit mode="assign" name="family" binding="same"><string>Noto Sans Bengali</string></edit> </match>
Web Speech API has no voices
Firefox uses for text to speech (tts) speechd. You can use the command
spd-say "some test sentence" to test if it reads the text or
spd-say -L to get a list of the voices. If there are no voices, too, you can install some with the package . If they do not work out of the box, you maybe have to configure them. You can use the
spd-conf command or edit the config file
.config/speech-dispatcher/speechd.conf. There should be the following lines active (without # in front of it):
AddModule "espeak-ng" "sd_espeak-ng" "espeak-ng.conf" DefaultModule espeak-ng
Narrate/Listen icon missing in Reader Mode
Enable Speech Synthesis
Per https://developer.mozilla.org/en-US/docs/Web/API/Web_Speech_API/Using_the_Web_Speech_API, speech synthesis must be enabled (it is enabled by default). To enable, set
Disable Fingerprinting Protection
Fingerprinting Protection disables the WebSpeech API. If you enabled this option, you will need to disable it for the narrator to work. To disable fingerprinting protection, set
Disable filter voices
If you do not see the narrator icon, try setting
This can be used to check whether
speech-dispatcher works at all. If it helps, you may miss voices for the language of the article opened in reader mode (check
spd-say -L). If you have voices for the reader article language installed, there may be some incorrect settings or defaults related to
File dialogs do not open when downloading files
If no file chooser is shown when downloading files, even with the option "Always ask where to save files" enabled in Firefox's preferences, then you might not have both i3, then you may need to manually install one. Install and for example .and a suitable implementation. Desktop environments usually provide an implementation, but if you are using a standalone window manager such as