/u/Da_Viper on Reddit recently asked how to change the plasma icon theme from bash. He’d figured out that [Icons] Theme=breeze in ~/.config/kdeglobals changes when you select an icon theme. However modifying that file doesn’t update running applications until you restart.

If we dive into the code for the System Settings KCM on the GitHub mirror, we can see that a new file, changeicons.cpp, was recently added 6 months ago. Looking at the CMakeLists.txt, that file is used for a new terminal command called plasma-changeicons. It’s not in $PATH however, so we’ll need to call the full filepath.

Run locate plasma-changeicons to find the filepath. For me in Manjaro with Plasma 5.18, it’s /usr/lib/plasma-changeicons.

Now that we know the filepath, we can use the folder names found at /usr/share/icons/ and ~/.local/share/icons/ as arguments for the command.

/usr/lib/plasma-changeicons breeze 
/usr/lib/plasma-changeicons breeze-dark
/usr/lib/plasma-changeicons breath # Manjaro


Breaking down the code, CMakeLists.txt compiles changeicons.cpp, which in turn will call a function in iconssettings.cpp.

It seems iconssettings.cpp will:

  1. Delete ~/.cache/icon-cache.kcache
  2. Notify the change to all KIconLoaders using DBus.
  3. Run kbuildsycoca5

System Settings > Icons: GitHub | All Bugs | New Bug | Phabricator | Pull Requests | New PR (Repo: Plasma Desktop)