diff options
author | Ken Moore <ken@ixsystems.com> | 2019-03-23 09:18:50 -0400 |
---|---|---|
committer | Ken Moore <ken@ixsystems.com> | 2019-03-23 09:18:50 -0400 |
commit | 4a4064045db1350c6a6dedb9fe6ecdac7bc8ea37 (patch) | |
tree | d235711c4575e4ee509c6746cd8fa94c137bffe7 /src-qt5/core/lumina-session | |
parent | Ensure that the theme engine and Qt-no-glib environment variables are always ... (diff) | |
download | lumina-4a4064045db1350c6a6dedb9fe6ecdac7bc8ea37.tar.gz lumina-4a4064045db1350c6a6dedb9fe6ecdac7bc8ea37.tar.bz2 lumina-4a4064045db1350c6a6dedb9fe6ecdac7bc8ea37.zip |
Fix up the loading order for initial file copies.
This should ensure the template files are copied before the system settings are loaded to change the templates.
Diffstat (limited to 'src-qt5/core/lumina-session')
-rw-r--r-- | src-qt5/core/lumina-session/session.cpp | 81 | ||||
-rw-r--r-- | src-qt5/core/lumina-session/session.h | 3 |
2 files changed, 49 insertions, 35 deletions
diff --git a/src-qt5/core/lumina-session/session.cpp b/src-qt5/core/lumina-session/session.cpp index 606ab1d9..c3367bc1 100644 --- a/src-qt5/core/lumina-session/session.cpp +++ b/src-qt5/core/lumina-session/session.cpp @@ -18,6 +18,49 @@ #include <LDesktopUtils.h> #include <LuminaSingleApplication.h> +bool LSession::setupFluxboxFiles(){ + QString confDir = QString( getenv("XDG_CONFIG_HOME"))+"/lumina-desktop"; + if(!QFile::exists(confDir)){ QDir dir(confDir); dir.mkpath(confDir); } + if(!QFile::exists(confDir+"/fluxbox-init")){ + QStringList keys = LUtils::readFile(LOS::LuminaShare()+"/fluxbox-init-rc"); + keys = keys.replaceInStrings("${XDG_CONFIG_HOME}", QString( getenv("XDG_CONFIG_HOME"))); + LUtils::writeFile(confDir+"/fluxbox-init", keys, true); + QFile::setPermissions(confDir+"/fluxbox-init", QFile::ReadOwner | QFile::WriteOwner | QFile::ReadUser | QFile::ReadOther | QFile::ReadGroup); + } + if(!QFile::exists(confDir+"/fluxbox-keys")){ + QStringList keys = LUtils::readFile(LOS::LuminaShare()+"/fluxbox-keys"); + keys = keys.replaceInStrings("${XDG_CONFIG_HOME}", QString( getenv("XDG_CONFIG_HOME"))); + LUtils::writeFile(confDir+"/fluxbox-keys", keys, true); + QFile::setPermissions(confDir+"/fluxbox-keys", QFile::ReadOwner | QFile::WriteOwner | QFile::ReadUser | QFile::ReadOther | QFile::ReadGroup); + } + if(!QFile::exists(confDir+"/fluxbox-overlay")){ + QStringList contents; contents << "background: unset"; + LUtils::writeFile(confDir+"/fluxbox-overlay", contents, true); + //Now make sure this overlay file is set within the init file + contents = LUtils::readFile(confDir+"/fluxbox-init"); + contents << "session.styleOverlay: "+confDir+"/fluxbox-overlay"; + LUtils::writeFile(confDir+"/fluxbox-init", contents, true); + } + // FLUXBOX BUG BYPASS: if the ~/.fluxbox dir does not exist, it will ignore the given config file + if(!QFile::exists(QDir::homePath()+"/.fluxbox")){ + QDir dir; dir.mkpath(QDir::homePath()+"/.fluxbox"); + } + return true; +} + +bool LSession::setupComptonFiles(){ + QString set = QString(getenv("XDG_CONFIG_HOME"))+"/lumina-desktop/compton.conf"; + bool replaceconf = !QFile::exists(set); + if(!replaceconf){ replaceconf = (QFileInfo(set).size()<1); } + if( replaceconf ){ + if(QFile::exists(set)){ QFile::remove(set); } + if(QFile::exists(LOS::LuminaShare()+"/compton.conf")){ + QFile::copy(LOS::LuminaShare()+"/compton.conf", set); + } + } + return true; +} + void LSession::stopall(){ stopping = true; for(int i=0; i<PROCS.length(); i++){ @@ -105,15 +148,6 @@ 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"; - bool replaceconf = !QFile::exists(set); - if(!replaceconf){ replaceconf = (QFileInfo(set).size()<1); } - if( replaceconf ){ - if(QFile::exists(set)){ QFile::remove(set); } - 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){ @@ -145,38 +179,13 @@ void LSession::start(bool unified){ if(!unified){ QSettings sessionsettings("lumina-desktop","sessionsettings"); QString WM = sessionsettings.value("WindowManager", "fluxbox").toString(); + QString confDir = QString( getenv("XDG_CONFIG_HOME"))+"/lumina-desktop"; //Window Manager First if(WM=="fluxbox" || WM.endsWith("/fluxbox") || WM.simplified().isEmpty() ){ // FLUXBOX BUG BYPASS: if the ~/.fluxbox dir does not exist, it will ignore the given config file if( !LUtils::isValidBinary("fluxbox") ){ qDebug() << "[INCOMPLETE LUMINA INSTALLATION] fluxbox binary is missing - cannot continue"; }else{ - QString confDir = QString( getenv("XDG_CONFIG_HOME"))+"/lumina-desktop"; - if(!QFile::exists(confDir)){ QDir dir(confDir); dir.mkpath(confDir); } - if(!QFile::exists(confDir+"/fluxbox-init")){ - QStringList keys = LUtils::readFile(LOS::LuminaShare()+"/fluxbox-init-rc"); - keys = keys.replaceInStrings("${XDG_CONFIG_HOME}", QString( getenv("XDG_CONFIG_HOME"))); - LUtils::writeFile(confDir+"/fluxbox-init", keys, true); - QFile::setPermissions(confDir+"/fluxbox-init", QFile::ReadOwner | QFile::WriteOwner | QFile::ReadUser | QFile::ReadOther | QFile::ReadGroup); - } - if(!QFile::exists(confDir+"/fluxbox-keys")){ - QStringList keys = LUtils::readFile(LOS::LuminaShare()+"/fluxbox-keys"); - keys = keys.replaceInStrings("${XDG_CONFIG_HOME}", QString( getenv("XDG_CONFIG_HOME"))); - LUtils::writeFile(confDir+"/fluxbox-keys", keys, true); - QFile::setPermissions(confDir+"/fluxbox-keys", QFile::ReadOwner | QFile::WriteOwner | QFile::ReadUser | QFile::ReadOther | QFile::ReadGroup); - } - if(!QFile::exists(confDir+"/fluxbox-overlay")){ - QStringList contents; contents << "background: unset"; - LUtils::writeFile(confDir+"/fluxbox-overlay", contents, true); - //Now make sure this overlay file is set within the init file - contents = LUtils::readFile(confDir+"/fluxbox-init"); - contents << "session.styleOverlay: "+confDir+"/fluxbox-overlay"; - LUtils::writeFile(confDir+"/fluxbox-init", contents, true); - } - // FLUXBOX BUG BYPASS: if the ~/.fluxbox dir does not exist, it will ignore the given config file - if(!QFile::exists(QDir::homePath()+"/.fluxbox")){ - QDir dir; dir.mkpath(QDir::homePath()+"/.fluxbox"); - } QString cmd = "fluxbox -rc "+confDir+"/fluxbox-init -no-slit -no-toolbar"; startProcess("wm", cmd, QStringList() << confDir+"/fluxbox-init" << confDir+"/fluxbox-keys"); } @@ -205,6 +214,8 @@ void LSession::checkFiles(){ //internal version conversion examples: // [1.0.0 -> 1000000], [1.2.3 -> 1002003], [0.6.1 -> 6001] qDebug() << "[Lumina] Checking User Files"; + setupComptonFiles(); + setupFluxboxFiles(); QSettings sset("lumina-desktop", "sessionsettings"); QString OVS = sset.value("DesktopVersion","0").toString(); //Old Version String qDebug() << " - Old Version:" << OVS; diff --git a/src-qt5/core/lumina-session/session.h b/src-qt5/core/lumina-session/session.h index 8d61df42..0c7ff97c 100644 --- a/src-qt5/core/lumina-session/session.h +++ b/src-qt5/core/lumina-session/session.h @@ -18,6 +18,7 @@ class LProcess : public QProcess{ private: QFileSystemWatcher *watcher; QString id; + private slots: void filechanged(QString path){ //qDebug() << "File Changed:" << path; @@ -63,6 +64,8 @@ private: int wmfails; QTimer *wmTimer; + bool setupFluxboxFiles(); + bool setupComptonFiles(); void setupCompositor(bool force = false); private slots: |