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-DarkAdwaitabreeze/breeze-darkTelaNordzy
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
- Launch
qt6ctfrom your application launcher - Navigate to the Icon Theme tab
- Select your preferred icon theme from the list
- 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
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
| Feature | GTK3 | qt6ct | KDE |
|---|---|---|---|
| Configuration File | ~/.config/gtk-3.0/settings.ini | ~/.config/qt6ct/qt6ct.conf | ~/.config/kdeglobals |
| GUI Tool | GNOME Settings, nwg-look | qt6ct | System Settings |
| Best For | GTK-heavy desktops | Mixed Qt/GTK | KDE Plasma users |
| Icon Cache | GTK icon cache | Qt icon cache | KDE icon cache |
Related Documentation
- Application Theming: Configure color themes for GTK and Qt apps
- Custom Themes: Create custom DMS themes