Firefox - Support for native KDE file save dialog windows

How to add support for native KDE file save dialog windows in Firefox:

If you prefer your applications to be consistent there is a way to make the GTK based Firefox browser display the proper Plasma file dialogs with KDE. It involves a bit of work, but it's not too complicated and I've provided detailed instructions below.

If you have an older version of KDE Garuda installed you may not need to install the full list of required packages below.

On the newer lighter versions of KDE Garuda you will likely need to install the following packages:


You can install all the above packages that are required with the following command:

sudo pacman -S xdg-desktop-portal xdg-desktop-portal-kde plasma-browser-integration firefox-extension-plasma-integration --needed

You will probably also want to install the "Plasma integration" extension for the best plasma support.

Install the "Plasma integration" extension through the Firefox Add-ons manager.

A logout or reboot may be required to activate the changes once all the installations are complete.

Once you have all the required pieces installed the only thing left to do is create a modified Firefox launcher.

On your desktop right click with your mouse and choose "create new" and then select "text file".

Name the file "firefox.desktop" then open the new file in whatever text editor you prefer.

Paste the contents of the code box below into the new text file:

[Desktop Entry]
GenericName=Web Browser
Comment=Browse the World Wide Web
Exec=GTK_USE_PORTAL=1 /usr/lib/firefox/firefox --new-window %u

[Desktop Action new-window]
Name=New Window
Exec=GTK_USE_PORTAL=1 /usr/lib/firefox/firefox --new-window %u

[Desktop Action new-private-window]
Name=New Private Window
Exec=GTK_USE_PORTAL=1 /usr/lib/firefox/firefox --private-window %u

Save the modifiied desktop file's contents, and close your text editor.

The modified desktop start file should now be able to execute a startup of firefox with the proper native KDE file dialog present.

You can use the Firefox launcher from your desktop to start an instance of Firefox with the KDE dialogs present or move it elsewhere.

If you normally start your browser from a dock or panel then delete the Firefox icon that is currently there and replace it via drag and drop with the new launcher you've created.

If you normally start Firefox from within the terminal you can still do that via an alias with the following command:

GTK_USE_PORTAL=1 /usr/lib/firefox/firefox --new-window %u > /dev/null 2>&1 & disown; sleep 2; exit

I hope that helps some of the KDE lovers out there, as I hate the GTK dialog boxes (and I'm sure I'm not the only one out there that does).


Thanks. Now my only problem is that latte-dock ignores the environment var for some reason when the icon is dragged over.

1 Like

I have also updated Plasmafox to 78.3.1(esr) if anyone's interested.
81.0.1 is available too, but you have to build it yourself.


Its in our repo already


Out of date, we're at 81.0.1 or 78.3.1esr :wink:


Well it builds daily from your pkgbuild

So maybe it will be available after few hours


Ok thanks, tell me if there's a problem with 81.0.1 because I haven't found any time to build it yet.
(Personally I only use ESR for the moment, anything past 78.x is not tested by me)


I tried plasmafox, but GTK dialogs remain.

Okay I think I have fixed 81.0.1 now. Switched to the openSUSE-like build system. Not tested yet but it builds fine again.
scobiehague, you might have to install kplasmafoxhelper as well if you haven't done so yet. Or simply follow the procedure from OP with vanilla Firefox.


I have kplasmafoxhelper. I will use the OP procedure.

With the newest just released version of KDE Lite the ISO has gotten even lighter. It seems that the packages for Firefox Plasma integration no longer come pre-installed on the new KDE lite version. So, I have updated my original post to include full instructions on how to get Plasma integration with Firefox.

See my updated post at the top of the thread for updated instructions.