diff --git a/src/cmd/main.cpp b/src/cmd/main.cpp
index 6024854ec21341ce6b567d40cb472f07c44ed008..8dac28dc855f3f49d50e7b5717cc2eaa05e1ec3e 100644
--- a/src/cmd/main.cpp
+++ b/src/cmd/main.cpp
@@ -5,6 +5,7 @@
 #include "../utils.h"
 #include "../cam.h"
 
+#include "qdebug.h"
 #include "qobjectdefs.h"
 #include <QCoreApplication>
 #include <QTimer>
@@ -16,6 +17,9 @@ int main(int argc, char *argv[])
 	QCoreApplication::setApplicationVersion(utils::getVersion());
 	QCoreApplication::setApplicationName("recorder");
 
+	qDebug() << utils::getFirstFileInAppDirEndingWith("json");
+	qDebug() << utils::getFirstFileInAppDirEndingWith("xml");
+
 	//parse args
 	QStringList arguments = a.arguments();
 	for (int i = 1; i < arguments.size(); ++i)
diff --git a/src/utils.cpp b/src/utils.cpp
index 1945ba9e0b55842e99b95452de327abd67a53aa6..b4450d6c8d99763cc0683ef781282de930c6d40d 100644
--- a/src/utils.cpp
+++ b/src/utils.cpp
@@ -157,17 +157,19 @@ QString configFile(QString filename)
 {
 	static QString _configFile;
 	if( _configFile.isEmpty() )
-	{
-		if(filename.isEmpty())
-		{
-			_configFile = QCoreApplication::applicationDirPath() + "/config.json" ; //default
-		}
-		else
-		{
-			_configFile = filename;
-		}
-	}
-	return _configFile;
+		_configFile = filename;
+
+	return _configFile.isEmpty() ? utils::getFirstFileInAppDirEndingWith("json") : _configFile;
+}
+
+QString getFirstFileInAppDirEndingWith( QString const& suffix )
+{
+	QDir dir(QCoreApplication::applicationDirPath());
+	QStringList files = dir.entryList(QStringList() << "*."+suffix, QDir::Files);
+	// QStringList const folders = source.entryList(QDir::NoDot | QDir::NoDotDot | QDir::Dirs);
+	// auto file =  QCoreApplication::applicationDirPath()+QDir::separator()+files.first();
+	auto file =  files.first();
+	return files.isEmpty() || suffix.isEmpty() ? QString() : file;
 }
 
 // optional - only set cam settings when they changed
@@ -175,13 +177,11 @@ QString settingsFile(QString filename)
 {
 	static QString _settingsFile;
 	if( _settingsFile.isEmpty() )
-	{
-		if(filename.isEmpty())
-			_settingsFile = QCoreApplication::applicationDirPath() + "/settings.xml" ; //default
-		else
-			_settingsFile = filename;
-	}
-	return _settingsFile;
-}
+		_settingsFile = filename;
 
+	return _settingsFile.isEmpty() ? utils::getFirstFileInAppDirEndingWith("xml") : _settingsFile;
 }
+
+
+
+} // namespace utils
diff --git a/src/utils.h b/src/utils.h
index dec1dbdca640e8000e79a69adb7ee0869c37bc00..b5b1afc2e35904c68c6c01bd52ba0baa099c85e3 100644
--- a/src/utils.h
+++ b/src/utils.h
@@ -13,9 +13,11 @@ class QDir;
 namespace utils
 {
 
-bool parseConfig(QList<QPair<QString,QString>>& parsedCameras);
+bool parseConfig(QList<QPair<QString,QString>>&);
 QString configFile(QString filename="");
 QString settingsFile(QString filename="");
+QString getFirstFileInAppDirEndingWith( QString const&);
+
 
 const QStringList getVersions();
 const QString getVersion();