How to Customize Qt and GTK Themes on Arch Linux

This article explains how to customize Qt and GTK themes on Arch Linux, including how to configure the system to use specific themes for both toolkits.

Arch Linux, known for its simplicity, flexibility, and user control, gives you complete reign over every aspect of your system—including its appearance. Whether you use a GTK-based desktop environment like GNOME or XFCE, or a Qt-based one like KDE Plasma or LXQt, customizing your theme allows you to create a visually cohesive and personalized user experience.

However, theming on Arch Linux can be a bit more involved than on more curated distributions like Ubuntu or Fedora, especially when mixing applications based on different UI toolkits. This guide covers how to customize both GTK and Qt themes on Arch Linux, ensuring consistency across your desktop.


Understanding GTK and Qt Toolkits

Before diving into customization, it helps to understand the distinction between GTK and Qt:

  • GTK (GIMP Toolkit) is used primarily by desktop environments like GNOME, XFCE, MATE, and Cinnamon. GTK apps include Nautilus, Gedit, and Firefox.
  • Qt is the toolkit behind KDE Plasma, LXQt, and applications like Dolphin, Kdenlive, and VLC.

Each toolkit handles theming differently, and settings for one won’t necessarily apply to the other. That’s why configuring both is essential for a consistent look.


1. Setting Up GTK Themes

Step 1: Install GTK Themes

GTK themes are available in both the official Arch repositories and the AUR. Some popular GTK themes include:

  • Adwaita (default for GNOME)
  • Arc
  • Materia
  • Nordic
  • Gruvbox

Install your desired theme using pacman or an AUR helper like yay.

sudo pacman -S arc-gtk-theme
# Or from AUR
yay -S materia-theme

GTK themes are usually stored in:

  • System-wide: /usr/share/themes
  • User-specific: ~/.themes

Step 2: Apply GTK Theme

How you apply a GTK theme depends on your desktop environment:

  • GNOME: Use gnome-tweaks

    sudo pacman -S gnome-tweaks
    

    Open Tweaks → Appearance → Themes, and select your desired theme.

  • XFCE: Go to Settings → Appearance and Window Manager to change the theme.

  • Cinnamon/MATE: Use their respective appearance settings tools.

For standalone window managers like i3, Openbox, or bspwm, you’ll need to manually set GTK variables.

Create or edit ~/.config/gtk-3.0/settings.ini:

[Settings]
gtk-theme-name = Arc-Dark
gtk-icon-theme-name = Papirus-Dark
gtk-font-name = Noto Sans 10

And for GTK2 (older applications), edit or create ~/.gtkrc-2.0:

gtk-theme-name = "Arc-Dark"
gtk-icon-theme-name = "Papirus-Dark"
gtk-font-name = "Noto Sans 10"

2. Setting Up Qt Themes

Qt theming can be slightly more complex, especially outside KDE Plasma. Here’s how to manage it depending on your environment.

Kvantum is a powerful SVG-based theme engine for Qt applications. It provides fine-tuned control and works even when not using KDE.

Install it with:

sudo pacman -S kvantum-qt5 kvantum-theme-arc

You can find more themes in the AUR, such as kvantum-theme-materia.

Step 2: Configure Kvantum

Run the Kvantum Manager:

kvantummanager
  • Choose your desired theme (e.g., Arc-Dark)
  • Apply it
  • Set Kvantum as the Qt style engine

To make Kvantum the default for Qt5/6 apps outside of KDE, export the following environment variable:

export QT_STYLE_OVERRIDE=kvantum

You can place this in your ~/.xprofile, ~/.profile, or ~/.bashrc depending on your session startup mechanism.

For persistent configuration:

echo "export QT_STYLE_OVERRIDE=kvantum" >> ~/.profile

Step 3: For KDE Users (Using Plasma)

If you’re running KDE Plasma, you can configure themes through System Settings → Appearance.

  • Global Theme: Changes everything—colors, icons, cursors, plasma style, and application style.
  • Application Style: Directly influences Qt widget appearance.
  • Plasma Style: For the desktop environment itself (panels, widgets).
  • Colors and Icons: Configurable independently.

KDE Plasma will automatically apply Qt themes system-wide, and Kvantum can still be integrated via System Settings → Application Style → Kvantum.


3. Icon and Cursor Themes

A unified appearance often includes consistent icons and cursors.

Step 1: Install Icon and Cursor Themes

Some popular choices:

  • Papirus: sudo pacman -S papirus-icon-theme
  • Numix: sudo pacman -S numix-icon-theme
  • Tela (AUR): yay -S tela-icon-theme

Cursors:

  • Bibata: yay -S bibata-cursor-theme
  • Capitaine: yay -S capitaine-cursors

Step 2: Apply Icon and Cursor Themes

Set in GTK environments via Tweaks or Appearance settings.

For standalone setups, add to ~/.config/gtk-3.0/settings.ini:

gtk-icon-theme-name = Papirus-Dark
gtk-cursor-theme-name = Bibata-Modern-Ice

And for Qt:

In KDE: System Settings → Appearance → Icons and Cursors.

For non-KDE environments, edit ~/.config/Trolltech.conf or rely on Kvantum’s icon settings.


4. Font Configuration

Fonts complete your theme. You can set fonts via GUI in most DEs, but here’s how to do it manually:

GTK:

gtk-font-name = "Noto Sans 10"

Qt (for non-KDE):

Edit or create ~/.config/Trolltech.conf:

[Qt]
font="Noto Sans,10,-1,5,50,0,0,0,0,0"

Or use qt5ct:

sudo pacman -S qt5ct

Then:

export QT_QPA_PLATFORMTHEME=qt5ct

And run qt5ct to change Qt themes, fonts, and icons.


5. Advanced Tips

Mix GTK and Qt Apps Seamlessly

Even if you’re running KDE (Qt), you might still need GTK apps like Firefox or GIMP. And vice versa in GTK environments.

To harmonize appearance:

  • Match GTK and Kvantum themes (e.g., Arc GTK + Kvantum Arc)
  • Use consistent icons
  • Set QT_QPA_PLATFORMTHEME=qt5ct or kvantum, but avoid conflicts between qt5ct and KDE

Use Theme Matching Tools

Some themes are made for both GTK and Qt, such as:

  • Arc
  • Materia
  • Nordic
  • Adapta

This helps ensure visual consistency across all applications.


6. Troubleshooting

1. Theme Not Applying?

  • Check file ownership and permissions.
  • Ensure themes are located in the correct directories: ~/.themes, /usr/share/themes, or ~/.config/Kvantum.
  • Reboot or relogin after setting environment variables.

2. Kvantum Theme Doesn’t Match GTK?

Some Kvantum themes may not have a GTK counterpart. Search for matching GTK themes or tweak manually.

3. Qt Apps Ignore Theme?

Make sure QT_STYLE_OVERRIDE=kvantum is exported early during session start—use .xprofile or .profile.


Conclusion

Customizing GTK and Qt themes on Arch Linux provides a rewarding way to make your system reflect your personal taste. While it may take some manual configuration—especially when mixing toolkits—the result is a polished, cohesive look across all your applications.

By installing and applying GTK and Kvantum themes, setting icons and cursors, and tuning fonts and environment variables, you can achieve a seamless desktop experience, whether you’re using a full DE like GNOME/KDE or a lightweight WM like i3 or bspwm.

And since it’s Arch, you’re not just customizing—you’re learning how Linux works under the hood. Enjoy the journey!