aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKen Moore <ken@ixsystems.com>2019-03-23 09:18:50 -0400
committerKen Moore <ken@ixsystems.com>2019-03-23 09:18:50 -0400
commit4a4064045db1350c6a6dedb9fe6ecdac7bc8ea37 (patch)
treed235711c4575e4ee509c6746cd8fa94c137bffe7
parentEnsure that the theme engine and Qt-no-glib environment variables are always ... (diff)
downloadlumina-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.
-rw-r--r--src-qt5/core/lumina-session/session.cpp81
-rw-r--r--src-qt5/core/lumina-session/session.h3
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:
bgstack15