aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src-qt5/core/lumina-session/session.cpp40
1 files 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<info.length(); i++){
- if(info[i].section("=",0,0).simplified()=="backend"){ info[i] = QString("backend = \"")+ (hasAccel ? "glx" : "xrender")+"\""; break; } //replace this line
- }
- LUtils::writeFile(set, info, true);*/
- if( !hasAccel && settings.value("compositingWithGpuAccelOnly",true).toBool() ){ startcompton = false; }
- }
- QString disp = getenv("DISPLAY");
- // Prefer GLX-accel only if that is detected as possible
- if( (startcompton || force) && hasAccel ){ startProcess("compositing","compton --backend glx -d "+disp+" --config "+set, QStringList() << set); }
- //if cannot determine if GLX accel is available, use the hybrid glx/xrender backend for some better auto-setting stuff
- else if(startcompton || force){ startProcess("compositing","compton --backend xr_glx_hybrid -d "+disp+" --config "+set, QStringList() << set); }
- }else if(LUtils::isValidBinary("xcompmgr") && !settings.value("compositingWithGpuAccelOnly",true).toBool() ){ startProcess("compositing","xcompmgr"); }
+ QString disp = getenv("DISPLAY");
+ //Always use the GLX backend for compton - the xrender and hybrid backends cause lots of flickering
+ startProcess("compositing","compton --backend glx -d "+disp+" --config "+set, QStringList() << set);
+ }else if(LUtils::isValidBinary("xcompmgr") && !settings.value("compositingWithGpuAccelOnly",true).toBool() ){
+ startProcess("compositing","xcompmgr");
+ }
}
}
bgstack15