From 9815558a1caa65564d02a8be579fbab3477e946d Mon Sep 17 00:00:00 2001 From: Ken Moore Date: Tue, 12 Mar 2019 14:18:42 -0400 Subject: A couple changes for compositing: 1. Always use the glx backend for compton. xrender or hybrid causes flickering. 2. Always copy over the compton.conf and get that setup even if compton is not used. This will also check/replace a blank compton.conf file. --- src-qt5/core/lumina-session/session.cpp | 40 ++++++++++++--------------------- 1 file changed, 14 insertions(+), 26 deletions(-) diff --git a/src-qt5/core/lumina-session/session.cpp b/src-qt5/core/lumina-session/session.cpp index 125cef20..3dcd78fc 100644 --- a/src-qt5/core/lumina-session/session.cpp +++ b/src-qt5/core/lumina-session/session.cpp @@ -103,36 +103,24 @@ void LSession::startProcess(QString ID, QString command, QStringList watchfiles) } void LSession::setupCompositor(bool force){ + //Compton available - check the config file + QString set = QString(getenv("XDG_CONFIG_HOME"))+"/lumina-desktop/compton.conf"; + if(!QFile::exists(set) || LUtils::readFile(set).join("").simplified().isEmpty() ){ + if(QFile::exists(LOS::LuminaShare()+"/compton.conf")){ + QFile::copy(LOS::LuminaShare()+"/compton.conf", set); + } + } + //Compositing manager QSettings settings("lumina-desktop","sessionsettings"); if(settings.value("enableCompositing",false).toBool() || force){ if(LUtils::isValidBinary("compton")){ - //Compton available - check the config file - QString set = QString(getenv("XDG_CONFIG_HOME"))+"/lumina-desktop/compton.conf"; - if(!QFile::exists(set)){ - if(QFile::exists(LOS::LuminaShare()+"/compton.conf")){ - QFile::copy(LOS::LuminaShare()+"/compton.conf", set); - } - } - //Auto-detect if GLX is available on the system and turn it on/off as needed - bool startcompton = true; - bool hasAccel = false; - if(LUtils::isValidBinary("glxinfo")){ - hasAccel =! LUtils::getCmdOutput("glxinfo -B").filter("direct rendering:").filter("Yes").isEmpty(); - qDebug() << "Detected GPU Acceleration:" << hasAccel; - /*QStringList info = LUtils::readFile(set); - for(int i=0; i