Skip to main content

Icon Theming

██╗ ██████╗ ██████╗ ███╗   ██╗███████╗
██║██╔════╝██╔═══██╗████╗  ██║██╔════╝
██║██║     ██║   ██║██╔██╗ ██║███████╗
██║██║     ██║   ██║██║╚██╗██║╚════██║
██║╚██████╗╚██████╔╝██║ ╚████║███████║
╚═╝ ╚═════╝ ╚═════╝ ╚═╝  ╚═══╝╚══════╝

DankMaterialShell will use the QT6 icon theme system as primary source for application icons. Depending on which platform theme you're using, icons are configured in different locations.

How Icon Theming Works

Qt6 applications, including DankMaterialShell, look for icon themes based on your QT_QPA_PLATFORMTHEME setting. Each platform theme reads icon configuration from a different location:

  • gtk3: Reads from GTK settings (~/.config/gtk-3.0/settings.ini)
  • qt6ct: Reads from qt6ct configuration (~/.config/qt6ct/qt6ct.conf)
  • kde: Reads from KDE Plasma settings (~/.config/kdeglobals)

DMS respects these platform-specific configurations and doesn't override your icon theme choices.

GTK Platform Theme (gtk3)

If you're using the GTK passthrough method for Qt theming, icon themes are controlled via GTK settings.

Configuration

Edit ~/.config/gtk-3.0/settings.ini:

[Settings]
gtk-icon-theme-name=Papirus-Dark

Common icon themes:

  • Papirus / Papirus-Dark
  • Adwaita
  • breeze / breeze-dark
  • Tela
  • Nordzy

Installing Icon Themes

# Arch - Papirus
sudo pacman -S papirus-icon-theme

# Arch - Adwaita (usually pre-installed)
sudo pacman -S adwaita-icon-theme

# Flatpak icon themes (available to all apps)
flatpak install flathub org.kde.PaplirusIconTheme

Qt6ct Platform Theme

When using qt6ct for dedicated Qt control, icon themes are managed through the qt6ct interface or configuration file.

Configuration via GUI

  1. Launch qt6ct from your application launcher
  2. Navigate to the Icon Theme tab
  3. Select your preferred icon theme from the list
  4. Click Apply

Configuration via File

Edit ~/.config/qt6ct/qt6ct.conf:

[Appearance]
icon_theme=Papirus-Dark

KDE Platform Theme

If you're using KDE Plasma or the KDE platform theme, icon themes are managed through KDE's configuration system.

Configuration via File

Edit ~/.config/kdeglobals:

[Icons]
Theme=Papirus-Dark

Installing Icon Themes

Icon themes can be installed system-wide or per-user.

System-wide Installation

# Arch
sudo pacman -S papirus-icon-theme
sudo pacman -S breeze-icons
sudo pacman -S adwaita-icon-theme

# Fedora
sudo dnf install papirus-icon-theme
sudo dnf install breeze-icon-theme
sudo dnf install adwaita-icon-theme

Per-user Installation

Download icon themes and extract to ~/.local/share/icons/:

# Example: Installing from a downloaded archive
mkdir -p ~/.local/share/icons
cd ~/.local/share/icons
tar xf ~/Downloads/Papirus-Dark.tar.gz

Flatpak Icon Themes

Flatpak applications use icon themes from the Flatpak runtime:

# List available icon theme extensions
flatpak search icon

# Install Papirus for Flatpak apps
flatpak install flathub org.kde.PaplirusIconTheme

Verifying Your Configuration

Check which platform theme you're currently using:

echo $QT_QPA_PLATFORMTHEME
note

This variable must be exposed to the dms process. This can be done in ~/.config/environment.d/, in your compositor's configuration file, or in your systemd unit file - depending on how you launch DMS.

Check icon theme for each configuration:

# GTK configuration
cat ~/.config/gtk-3.0/settings.ini | grep icon-theme

# qt6ct configuration
cat ~/.config/qt6ct/qt6ct.conf | grep icon_theme

# KDE configuration
cat ~/.config/kdeglobals | grep -A 1 "\[Icons\]"

Common Icon Theme Recommendations

Material Design Style

  • Papirus / Papirus-Dark: Most popular, excellent coverage
  • Tela: Modern, colorful icons with good app coverage

Gnome or KDE Style

  • Adwaita: GNOME's default, clean and simple
  • breeze: KDE's default, professional appearance

Troubleshooting

Icons not changing

Make sure you've restarted applications after changing icon themes. Qt applications cache icon information and need to be relaunched.

# Restart DMS to apply icon theme changes
dms restart

Missing icons

Some applications might show missing icons if the theme doesn't include all required icons. Install a fallback theme:

# Arch
sudo pacman -S adwaita-icon-theme hicolor-icon-theme

# Fedora
sudo dnf install adwaita-icon-theme hicolor-icon-theme

Wrong theme being used

Verify that your platform theme environment variable matches your configuration:

# Check current setting
echo $QT_QPA_PLATFORMTHEME

If you change QT_QPA_PLATFORMTHEME, you must restart your compositor session for the change to take effect.

qt6ct shows no themes

If qt6ct shows an empty icon theme list, check that icon themes are installed in the correct location:

# Check system icon themes
ls /usr/share/icons/

# Check user icon themes
ls ~/.local/share/icons/

Flatpak apps using different icons

Flatpak applications run in a sandboxed environment and may not see your system icon themes. Install icon themes via Flatpak:

flatpak install flathub org.kde.PaplirusIconTheme

Platform Theme Comparison

FeatureGTK3qt6ctKDE
Configuration File~/.config/gtk-3.0/settings.ini~/.config/qt6ct/qt6ct.conf~/.config/kdeglobals
GUI ToolGNOME Settings, nwg-lookqt6ctSystem Settings
Best ForGTK-heavy desktopsMixed Qt/GTKKDE Plasma users
Icon CacheGTK icon cacheQt icon cacheKDE icon cache