How to correctly set QT_QPA_PLATFORMTHEME according to the WM I'm using? My script doesn't seem to work
I created this script at ~/.config/i3/scripts/qt6ct.sh
to set QT_QPA_PLATFORMTHEME
depending on whether I’m using Plasma or I3wm:
<span style="color:#323232;">#!/bin/bash
</span><span style="color:#323232;">CURRENT_DESKTOP=$(echo "$XDG_CURRENT_DESKTOP")
</span><span style="color:#323232;">
</span><span style="color:#323232;">if [ "$CURRENT_DESKTOP" = "i3" ]; then
</span><span style="color:#323232;"> export QT_QPA_PLATFORMTHEME="qt5ct"
</span><span style="color:#323232;">
</span><span style="color:#323232;">elif [ "$CURRENT_DESKTOP" = "KDE" ]; then
</span><span style="color:#323232;"> # Si estás usando Plasma (KDE), comentar la línea que exporta la variable
</span><span style="color:#323232;"> unset QT_QPA_PLATFORMTHEME
</span><span style="color:#323232;">else
</span><span style="color:#323232;"> echo "Gestor de ventanas no es i3 ni kwin: $CURRENT_DESKTOP"
</span><span style="color:#323232;">fi
</span><span style="color:#323232;">
</span><span style="color:#323232;">echo $CURRENT_DESKTOP
</span><span style="color:#323232;">echo $QT_QPA_PLATFORMTHEME
</span>
I created an autostart program and added this to my i3 config file
<span style="color:#323232;">exec ~/.config/i3/scripts/qt6ct.sh
</span><span style="color:#323232;">exec source ~/.config/i3/scripts/qt6ct.sh
</span>
I don’t know what’s wrong with it, but if I run it on a terminal, I get this (screenshot):
<span style="color:#323232;">➤ ~/.config/i3/scripts/qt6ct.sh
</span><span style="color:#323232;">i3
</span><span style="color:#323232;">qt5ct
</span><span style="color:#323232;">➤ echo "$QT_QPA_PLATFORMTHEME"
</span><span style="color:#323232;">
</span><span style="color:#323232;">➤
</span>
So this script doesn’t really export anything at all.
I have searched on every file that I thought could be exporting it as a null value (~/.bashrc
, ~/.profile
, ~/.bash_profile
, ~/.xinitrc
, ~/.Xresources
, /etc/environment
, /root/.profile
, /root/.bashrc
), but everything looks fine (no QT_QPA_PLATFORMTHEME
anywhere, or is commented).
Solution
The only thing we’ll need in.xprofile is sourcing the script:
<span style="color:#323232;">#!/bin/bash
</span><span style="color:#323232;">CURRENT_DESKTOP=$(echo "$XDG_CURRENT_DESKTOP")
</span><span style="color:#323232;">
</span><span style="color:#323232;">if [[ "$CURRENT_DESKTOP" = "i3" ]]; then
</span><span style="color:#323232;"> export QT_QPA_PLATFORMTHEME="qt5ct"
</span><span style="color:#323232;"> export QT_SCREEN_SCALE_FACTORS=1.5 # 1.5
</span><span style="color:#323232;"> export QT_AUTO_SCREEN_SCALE_FACTOR=0
</span><span style="color:#323232;">elif [[ "$CURRENT_DESKTOP" = "KDE" ]]; then
</span><span style="color:#323232;"> unset QT_QPA_PLATFORMTHEME
</span><span style="color:#323232;"> export QT_AUTO_SCREEN_SCALE_FACTOR=1
</span><span style="color:#323232;">
</span><span style="color:#323232;">else
</span><span style="color:#323232;"> echo "Gestor de ventanas no es i3 ni kwin: $CURRENT_DESKTOP"
</span><span style="color:#323232;">fi
</span><span style="color:#323232;">
</span><span style="color:#323232;">echo $CURRENT_DESKTOP
</span><span style="color:#323232;">echo $QT_QPA_PLATFORMTHEME
</span><span style="color:#323232;">echo $QT_SCREEN_SCALE_FACTORS
</span><span style="color:#323232;">echo $QT_AUTO_SCREEN_SCALE_FACTOR
</span>
Add comment