Using JetBrains IDEs on Fedora Silverblue

Published July 30, 2025
Cover image

I’ve been wondering for a while whether atomic desktop distributions are the future of Linux on the desktop, or just an useless layer of stuff you’ve got to fight against when you’re using your computer. So a couple of weeks ago, I installed Fedora Kinoite, the KDE spin of Silverblue, on my laptop.

So far, I’ve had a great experience. All the programs I need for my daily computing are packaged as Flatpaks, and except for a couple of quirks with poorly packaged apps, I’ve been having a great time.
The only significant change has been with coding, which I’ve wanted to do into Toolbx containers in order not to clutter up the rest of my install. After an embarrassing amount of trial and error, I managed to get my favorite suite of IDEs - JetBrains’ - working. In this article, I want to explain how you can do it as well, without having to dig through GitHub issues and Discussion posts.

Step 0: The plan

By the end of the article, our IDEs will run inside Toolbx containers, GUI included. While you could theoretically run them on your bare system, and have JetBrains install whatever SDK you need into your account’s home, I’ve chosen not to, and I recommend you do the same, because this solution ensure there won’t be as much home directory clutter, and you will be able to install whatever development dependencies you need without ever touching the OSTree.

Theoretically, the optimal solution would be having the IDEs’ UI run on the bare system, and the “backend” operations (linting, compiling and all things that require a SDK) running inside a container with the proper SDK and dependencies. Sadly, support for Toolbx containers is not yet implemented in Jetbrains IDEs, so for now we will have to stick with our containers. Other IDEs like Gnome Builder do have that support.

Step 1: Install the IDEs outside the containers

JetBrains IDEs are not available as system packages on Fedora, so your options are the Flatpaks, the Jetbrains Toolbox (not to be confused with Fedora’s Toolbx), or manually installing them.

We will run our IDE inside a Toolbx container, so Flatpaks are automatically excluded, since they can’t be started from within containers. Here you can see why I chose the Jetbrains Toolbox method over the manual install.

VersionLinkProsCons
Flatpak🔗- Auto-updates- Unofficial
- Need workarounds to get things working
- Not callable from within Toolbx containers
Manual install🔗- Official support
- Works out of the box
- No auto-updates (only manual updates)
Jetbrains Toolbox🔗- Official support
- Auto-updates
- Works out of the box
- It sees the same IDE twice, so the desktop icons get duplicated

Whether you choose the manual or Toolbox method, you should proceed normally by downloading the IDEs on your host system as you normally would, by downloading the files from Jetbrains’ website and unpacking them in your home directory.

The rest of the guides assumes you’re using the Jetbrains Toolbox method, but the only difference between the two is the installation path of your IDEs. Make sure to adjust it in the next steps if needed.

Step 2: Create and prepare the containers

We’re going to use goland as the example IDE for this guide. So far, I’ve been using one container per IDE, but you may want to use more than one if some of your projects in a certain language require some external dependencies, like GUI libraries or a buildroot, which you fear may interfere with the others.

Let ‘s now create a new Toolbx container named goland and enter it.

toolbox create goland
toolbox enter goland

You will now enter the Toolbx shell, which you can distinguish because your prompt looks like ⬢ [username@toolbx directory]$. In order to install the libraries that are needed to show the IDE’s user interface, run:

sudo dnf install @base-x # inside the container

At this point, you should already be able to start the IDE. Depending on the path where it is installed, you should be able to launch it with a command such as:

~/.local/share/JetBrains/Toolbox/apps/goland/bin/goland # inside the container

After the IDE has started, go in the IDE’s terminal, you will see that it’s in the toolbx container.

image

At this point, you can get your SDKs and development tools ready, for example by running sudo dnf install go. In Toolbx containers, you can use dnf as you normally would in any non-atomic Fedora spin.

Whenever you need to exit from your container, just type exit. If you want to enter it again, run toolbox enter goland.

Step 3: Fixing the stuttering

You will soon notice that your IDE is running way slower than it used to, with some freezes that can last for tens of seconds at a time even if your computer is reasonably powerful.

Stuttering? In my Jetbrains IDEs? Unacceptable!

Luckily, it turns out it’s not a performance issue with Toolbx itself, it’s way sillier than that. It turns out Jetbrains IDEs expect the machine’s hostname to be resolvable. The toolbx containers have their hostname automatically set to toolbx, which for some odd reason is not set to automatically resolve to localhost. Let’s get that fixed.

sudo nano /etc/hosts # outside the container

Append some new loopback entries to the end of the file:

127.0.0.1   toolbx
::1         toolbx

Restart your OS and IDE, and it should work fine. Since all Toolbx containers have the toolbx hostname, regardless of what name you gave them (in this case goland), you won’t need to repeat the procedure for every new container you add.

Step 4: Wayland

Were you worried we were going to be stuck with XOrg? Today is your lucky day: all you’ve got to do is run

sudo dnf install libwayland-client libwayland-cursor libxkbcommon \
                 wayland-protocols-devel gtk3-devel cairo-gobject \
                 pango-devel gdk-pixbuf2-devel libXdamage-devel \
                 libXrandr-devel libXcomposite-devel mesa-libEGL-devel \
                 mesa-libGL-devel # inside the container

to get your IDEs working on Wayland, with fractional scaling and all that stuff. Wayland is enabled by default on Jetbrains IDEs, so all you need to do is restart them.

The only downside is that those packages weigh some hundreds of MBs, so you may want to skip on Wayland if your OS has limited storage and you’re using many IDEs.

Step 5: Desktop icons

Opening a shell, entering the container, and launching the IDE manually is unnecessarily cumbersome. Let’s fix that with a desktop icon.

Place a file like this in ~/.local/share/applications/goland.desktop:

[Desktop Entry]
Comment=An IDE for Go and Web
Exec=toolbox run --container goland ~/.local/share/JetBrains/Toolbox/apps/goland/bin/goland
Icon=~/.local/share/JetBrains/Toolbox/apps/goland/bin/goland.svg
Name=GoLand [CT]
NoDisplay=false
Path=
PrefersNonDefaultGPU=false
StartupNotify=true
StartupWMClass=jetbrains-goland
Terminal=false
TerminalOptions=
Type=Application
Version=1.0

Now start “GoLand [CT]” from your start menu, and you’re good to go! You may need to logout and back in if you don’t see the menu entry.

Step 6: Enjoy

Thanks for reading! If you have any issue, feel free to leave a comment or contact me.

This article’s cover art includes Apophyllite-Kinoite_(0)_Fond.jpg by Didier Descounes for Wikimedia Commons, distributed under CC-BY-SA 4.0.​​

Comments (rules, privacy)